Ansibleでcreate databaseをしたときにでたエラーの対処

Ansibleでcreate databaseをしたときにでたエラーの対処

2019.01.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

バンクーバーの塩谷です。

端末(Mac)からEC2インスタンスにインストールされているMySQLにAnsibleを使用してdatabaseを作成しようとしたところ、エラーが発生しました。対処に少しハマってしまったのでメモします。

エラー内容

fatal: [Instance1]: FAILED! => {"changed": false, "msg": "The MySQL-python module is required."}

			
			
fatal: [Instance1]: FAILED! => {"changed": false, "msg": "The MySQL-python module is required."}

PLAY [Instance1] *****************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************
ok: [Instance1]

TASK [create mysql database] *****************************************************************************************************
fatal: [Instance1]: FAILED! => {"changed": false, "msg": "The MySQL-python module is required."}

PLAY RECAP ***********************************************************************************************************************
Instance1 : ok=1 changed=0 unreachable=0 failed=1

		

Playbook側の動きとしては、 ・MySQLのインストール ・MySQL-Pythonのインストール ・データベースの作成 です。

ansibleのバージョンは2.4.3.0。

対処

MySQL-pythonモジュールが必須ですよ、とのエラーですがplaybook側でもちゃんとインストールする様に指定しているし、EC2インスタンス側でもMySQL-pythonは入っているのに何でだろう。。。と思っていたら、

Playbook(一部抜粋)

			
			
- name: Install MySQL-Python module
yum: name=MySQL-python

		

EC2インスタンス

			
			
# yum list installed | grep python
MySQL-python26.x86_64 1.2.3-11.14.amzn1 @amzn-main

		
			
			
# yum install -y MySQL-python
Loaded plugins: priorities, update-motd, upgrade-helper
Package MySQL-python26-1.2.3-11.14.amzn1.x86_64 already installed and latest version
Nothing to do

		

バージョン違いが原因でしたー!

EC2インスタンスで(Amazon Linuxです)、pythonのバージョンを確認すると

			
			
# python --version
Python 2.7.9

		

pythonのバージョンが2.7.9なのに対して、MySQL-python26が入っていました。

			
			
# yum list installed | grep python
MySQL-python26.x86_64 1.2.3-11.14.amzn1 @amzn-main

		

そのため、MySQL-python27をインストールします。

			
			
# yum install MySQL-python27

# yum list installed | grep python
MySQL-python26.x86_64 1.2.3-11.14.amzn1 @amzn-main
MySQL-python27.x86_64 1.2.3-11.14.amzn1 @amzn-main ★入った

		

Playbook側でも、MySQL-python27をインストールするように変更。

			
			
- name: Install MySQL-Python module
yum: name=MySQL-python27

		

playbookを実行し、エラーなく完了しました。

			
			
PLAY [Instance1] *****************************************************************************************************************

TASK [Gathering Facts] ***********************************************************************************************************
ok: [Instance1]

TASK [create mysql database] *****************************************************************************************************
changed: [Instance1]

TASK [create mysql user] *********************************************************************************************************
changed: [Instance1]

PLAY RECAP ***********************************************************************************************************************
Instance1 : ok=3 changed=2 unreachable=0 failed=0

		

以上でーす。

この記事をシェアする

FacebookHatena blogX

関連記事