opsマシンでコマンドを実行すると:
ansible web -b -l 192.168.31.101 -m yum -a "name=gcc state=latest"
以下に示すエラーが返されます。
192.168.31.101 | FAILED! => {
"changed": false,
"failed": true,
"msg": "python2 bindings for rpm are needed for this module. python2 yum module is needed for this module"
}
しかし、コマンドを実行するとSudo yum install gcc
直接192.168.31.101
、正しく実行されました。
ansibleは正しいyumとpythonを使用できないようです
私は解決策を見つけました、ホストファイルへのpythonパスを追加するだけです
ansible_python_interpreter=/usr/bin/python2.7
これは、マシンにpython2.7とpython3がインストールされていたために発生しました。 ansibleはpython3を使用していたため、エラーが発生しました。そのため、makefileターゲットで以下のように明示的に指定する必要がありました/bin/python2.7 /bin/ansible-playbook configure-box.yml
私の状態では、yum
パッケージをインストールし、ターゲットホストにフラグ--system-site-packages
でvirtualenvを再構成してから、ansible環境変数ansible_python_interpreter
を使用する必要があります。
yum install yum
virtualenv --system-site-packages venv