Apache2.4のインストール、設定、起動を下記のような内容のplaybookで実行しようとしております。
対象サーバはA(host1:192.168.100.251)とB(host3:192.168.100.253)。
※Ansible操作端末も対象サーバもCentOS7です。
YAML
1- hosts: tomcat 2 gather_facts: yes 3 remote_user: root 4 become: true 5 tasks: 6 - name: install Apache 7 yum: 8 name: httpd 9 10 - name: set httpd.conf 11 template: 12 src: /tmp/httpd.conf.j2 13 dest: /etc/httpd/conf/httpd.conf 14 15 - name: run httpd 16 systemd: 17 name: httpd 18 state: started 19 enabled: yes
Apacheの設定ファイルであるhttpd.confファイルで、
サーバA側には「Listen」の項目に「192.168.100.251:80」、「ServerName」の項目に「host1」、
サーバB側には「Listen」の項目に「192.168.100.253:80」、「ServerName」の項目に「host3」を
それぞれ記述したいです。ただし手動での追記ではなくAnsibleを活かしてIPとホスト名をサーバから
それぞれ自動取得しての追記を行いたいのですが、どのようにplaybookを作成していいか分からない為、
ご教示頂きたいです。宜しくお願い致します。
現在のターゲットホストのIPアドレスを取得する
↑を見ると{{ansible_eth0.ipv4.address}} {{inventory_hostname}}辺りを使うのかなと思いますが
どのように組み込むのか分からないです。他にも方法が無いか現在調査中です。
~追記~
インベントリファイルにホスト名の記載が出来ていなかった為、
{{inventory_hostname}}で指定してもホスト名が表示されずIPが追記されてしまったことが分かりました。
すみませんでした。インベントリファイルにホスト名を追記するとhttpd.confの編集は成功しました。
しかし、最後の起動で失敗してしまいます。エラーメッセージは以下です。
ERROR
1[root@hoge tmp]# ansible-playbook Apache.yml -i hosts 2SSH password: 3 4PLAY [tomcat] ************************************************************************************************************************************* 5 6TASK [Gathering Facts] **************************************************************************************************************************** 7ok: [host1] 8ok: [host3] 9 10TASK [apache : install Apache] ******************************************************************************************************************** 11ok: [host3] 12ok: [host1] 13 14TASK [apache : set httpd.conf] ******************************************************************************************************************** 15changed: [host1] 16changed: [host3] 17 18TASK [apache : run httpd] ************************************************************************************************************************* 19fatal: [host1]: FAILED! => {"changed": false, "msg": "Unable to start service httpd: Job for httpd.service failed because the control process exited with error code. See \"systemctl status httpd.service\" and \"journalctl -xe\" for details.\n"} 20fatal: [host3]: FAILED! => {"changed": false, "msg": "Unable to start service httpd: Job for httpd.service failed because the control process exited with error code. See \"systemctl status httpd.service\" and \"journalctl -xe\" for details.\n"} 21 to retry, use: --limit @/tmp/Apache.retry 22 23PLAY RECAP **************************************************************************************************************************************** 24host1 : ok=3 changed=1 unreachable=0 failed=1 25host3 : ok=3 changed=1 unreachable=0 failed=1
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/26 08:17