プロローグ:ansibleで最初のstespを移動しているだけなので、しばらくお待ちください
また、私は答えを 'MySQL-pythonがすでにインストールされているにもかかわらず、AnsibleがMySQL-pythonをインストールすることを要求します' を読んでいます。この質問のおかげで、私の問題はリモート制御されたマシンにあることがわかりました。 私の質問は同じですが、リンクされた質問には私の問題を解決するための回答が含まれていません。
コマンドラインからansibleをテストしています。たとえば、正常にpingできます
~/.ssh$ ansible openvpn -C -m "ping"
192.168.1.225 | SUCCESS => {
"changed": false,
"ping": "pong"
}
apt update
を起動しようとしました。
これが
apt-get update
に相当する正しい構文かどうかはわかりませんが、これは問題ではありません私は
-C
を使用して、予行演習を依頼したときにansibleが私に言っていることを確認しています。
$ ansible openvpn -C -m "apt update-cache=yes"
192.168.1.225 | FAILED! => {
"changed": false,
"msg": "python-apt must be installed to use check mode. If run normally this module can auto-install it."
}
[〜#〜] edit [〜#〜]:@Davide Mazeが示唆したように、python-apt
が欠落していることが原因である可能性があります。確認しましたが、python-apt
があります
$ python -V
Python 2.7.15rc1
$ pip list
... cut ...
python-apt (1.6.2)
... cut ...
$ which python
/usr/bin/python
私の質問は:なぜansibleはpython-aptがインストールされていないことを教えてくれますか、そしてこれを修正する方法を教えてください
正しい方向を示してくれた@David Mazeに感謝
controllerマシンではなく、-controllerマシンで_python-apt
_をチェックしていました。
だから私はパッケージをコントローラからコントローラマシンにインストールしました
_$ ansible openvpn -m "apt name=python-apt state=latest" --become-user realtebo
_
_Sudo apt-get update
_を実行し、オペレーターがパスワードを入力するのを待つ次の形式も使用できます。ユーザーは、ssh経由でログインしたユーザーです。設定を確認してください。私の場合、私はsshキーを使用しています。パスワードログインはまったく無効になっています。
_$ ansible openvpn -m apt -a "update-cache=yes" --become --ask-become-pass
_
ヒント1:この相互作用を回避するためにVaultを利用できますが、まだ試していません。
ヒント2:また、_
--ask-become-pass
_は、おそらく探しているドキュメントのa
にありません。これは、オプションが大文字で_-K
_に短縮されているためです。下を見ます ドキュメントを参照してください
_python-apt
_がリモートで利用できるようになったため、パッケージ_-C
_がリモートで利用できることを確認した後、_python-apt
_オプションが機能し始めました。
_ansible openvpn -C -m "apt name=python state=latest"
192.168.1.225 | SUCCESS => {
"cache_update_time": 1533077635,
"cache_updated": false,
"changed": false
}
_