Ansible Tower導入でつまずいたところ
TL;DR
Ansible
が便利で、Ansible Tower
を使うともっと便利らしいので試しに使おうと思ったら色々つまずきましたので備忘録です。
かなり乱暴に解決しているので、良い方法あればください。
環境
Host PC : Windows 10 Pro
Docker : Version 2.1.0.4
Container : CentOS7:latest
参考にした手順
Host PC : Windows 10 Pro
Docker : Version 2.1.0.4
Container : CentOS7:latest
Mana Blog Next さま,
Ansible Tower を30分でインストールしてみよう
https://www.mana-cat.com/entry/2017/06/16/002910
生じた問題とWork Around
Windows 10 Pro上にDockerでCentOS7を立てて、その上で実行した際に発生した問題と、回避策を書いていきます。
RabbitMQのRestartが走らない
問題
TASK [rabbitmq : start and enable the rabbitmq service] **********************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "value of state must be one of: reloaded, restarted, started, stopped, got: running"}
./ansible-tower-setup-3.1.3/roles/rabbitmq/tasks/main.yml
内の[start and enable the rabbitmq service]
タスクが完了できていないようでした。
真因はわかりませんが、systemctl status rabbitmq-server
のStatusチェック?がreloaded, restarted, started, stopped
とならなければならないところを、running
となってしまい例外となっています。
WA
同じ問題にあたっている人がいたので、回答にあるWA策を参考にして解決。
I resolved this by commenting that check out in the main.yml for rabbit and then restarting the rabbitmq-server service with systemctl during the check where it makes sure its running with a second window.
I dont know why it does that but this work-around fixed it for me.
結局の所、ステータスチェック+サービス起動のタスクなので、以下手順によって手動で実施しています。冪等性とは…
-
./ansible-tower-setup-3.1.3/roles/rabbitmq/tasks/main.yml
内の[start and enable the rabbitmq service]
タスクを削除 -
./setup.sh
実行 -
[wait for rabbitmq service to be running]
タスクで停止することを確認。 - 別セッションから
systemctl restart rabbitmq-server
実行
pycryptodome
モジュール不足
問題
Unable to configure formatter 'json': Cannot resolve 'awx.main.utils.formatters.LogstashFormatter': No module named Crypto.Cipher"
要はCrypto.Cipher
モジュールがないって言われました。
WA(これは普通に解決)
CentOSにpip
を入れて、pip install cryptodome
しました。
ログファイルの権限競合
問題
Traceback (most recent call last):
File "/bin/tower-manage", line 9, in <module>
load_entry_point('ansible-tower==3.1.3', 'console_scripts', 'tower-manage')()
File "/lib/python2.7/site-packages/awx/__init__.py", line 105, in manage
File "/var/lib/awx/venv/tower/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
utility.execute()
File "/var/lib/awx/venv/tower/lib/python2.7/site-packages/django/core/management/__init__.py", line 328, in execute
django.setup()
File "/var/lib/awx/venv/tower/lib/python2.7/site-packages/django/__init__.py", line 17, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "/var/lib/awx/venv/tower/lib/python2.7/site-packages/django/utils/log.py", line 86, in configure_logging
logging_config_func(logging_settings)
File "/usr/lib64/python2.7/logging/config.py", line 803, in dictConfig
dictConfigClass(config).configure()
File "/usr/lib64/python2.7/logging/config.py", line 585, in configure
'%r: %s' % (name, e))
ValueError: Unable to configure handler 'fact_receiver': [Errno 13] Permission denied: '/var/log/tower/fact_receiver.log'
python
のdjango
ライブラリ内のlog.py
モジュールにおける、configure_logging
関数内で、/var/log/tower/fact_receiver.log
を編集する権限がないみたいです。
該当ファイルの権限をchmod 777
にして、再度実行するも失敗。
検索してみると以下ドンピシャの問題があったので参考にして、ログファイルの出力自体を消して、権限の競合を解決しました。
アプリケーションのログの書き込みでのファイルローテーションが発生する場合は、問題ありませんでしたが、スケジュール起動している django command でローテーションが発生すると、ログファイルの所有者が root ユーザーになり、アプリケーションからの書き込みができなくなり、エラーとなりました。
結果
PLAY RECAP ******************************************************************************************************************************************************************************
localhost : ok=112 changed=10 unreachable=0 failed=0 skipped=136 rescued=0 ignored=2
The setup process completed successfully.
PLAY RECAP ******************************************************************************************************************************************************************************
localhost : ok=112 changed=10 unreachable=0 failed=0 skipped=136 rescued=0 ignored=2
The setup process completed successfully.
無事インストールできました😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊😊
めちゃくちゃ時間かかりましたが、失敗要因を探していくのはまあ楽しかったです。インターネットはすごいですね。
何らかで起動失敗したら、おそらく雑なWAが原因なのでまた潜りたいと思います。
Author And Source
この問題について(Ansible Tower導入でつまずいたところ), 我々は、より多くの情報をここで見つけました https://qiita.com/sandshiP/items/dfab700403be5e7be6b0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .