質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

Q&A

解決済

1回答

193閲覧

PlayBookでHTTPDインストールを実現させたい

falifa

総合スコア8

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ansible

Ansibleは、Python で書かれたサーバーの設定を管理するための 構成管理ツールです。

0グッド

0クリップ

投稿2024/10/16 06:28

実現したいこと

Amazon Linux環境2台でやっています。
下記のプレイブックの内容を成功させたいです。

[root@test1 ansible]# cat /home/ansible/test-1.yml --- - name: deploy httpd server hosts: node-1 tasks: - name: Include httpd role ansible.builtin.include_role: name: httpd [root@test1 ansible]#

ロールの中身

[root@test1 ansible]# cat /home/ansible/roles/httpd/main.yml - name: install httpd dnf: name: httpd state: latest - name: start & enabled httpd service: name: httpd state: started enabled: yes [root@test1 ansible]#

インベントリの中身

[root@test1 ansible]# cat /home/ansible/hosts [web] node-1 ansible_host=IPアドレス ansible_user=root ansible_password=falilv0401 [test:vars] node-1 [root@test1 ansible]#

発生している問題・分からないこと

実際に「ansible-playbook -i /home/ansible/hosts test-1.yml」を流すと成功するのですが、ターゲットノードにて「systemctl status httpd」をやってもcould not be foundになってしまいます。

[root@test1 ansible]# ansible-playbook -i /home/ansible/hosts test-1.yml [WARNING]: * Failed to parse /home/ansible/hosts with yaml plugin: We were unable to read either as JSON nor YAML, these are the errors we got from each: JSON: Expecting value: line 1 column 2 (char 1) Syntax Error while loading YAML. did not find expected <document start> The error appears to be in '/home/ansible/hosts': line 2, column 1, but may be elsewhere in the file depending on the exact syntax problem. The offending line appears to be: [web] node-1 ansible_host=172.31.32.127 ansible_user=root ansible_password=falilv0401 ^ here [WARNING]: * Failed to parse /home/ansible/hosts with ini plugin: /home/ansible/hosts:5: Expected key=value, got: node-1 [WARNING]: Unable to parse /home/ansible/hosts as an inventory source [WARNING]: No inventory was parsed, only implicit localhost is available [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all' PLAY [deploy httpd server] ********************************************************** TASK [Gathering Facts] ************************************************************** [WARNING]: Platform linux on host node-1 is using the discovered Python interpreter at /usr/bin/python3.9, but future installation of another Python interpreter could change the meaning of that path. See https://docs.ansible.com/ansible- core/2.15/reference_appendices/interpreter_discovery.html for more information. ok: [node-1] TASK [Include httpd role] *********************************************************** PLAY RECAP ************************************************************************** node-1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 [root@test1 ansible]#
[root@test2 ~]# systemctl status httpd Unit httpd.service could not be found. [root@test2 ~]#

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

hostsファイルの書き方にwarningが出ているのですが書き方をどう変えればよいのか分からず困っています。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

falifa

2024/10/16 07:38

ご指摘の内容を修正したらできました。ありがとうございました。
guest

回答1

0

ベストアンサー

いくつか修正いただきたい点があります。

1. インベントリファイル

test グループへの変数定義をする [test:vars] セクションがありますが、
内容として書式が誤っています。

もしグループ変数の定義が不要であれば、以下の通りです。

ini

1[web] 2node-1 ansible_host=IPアドレス ansible_user=root ansible_password=パスワード

もしグループは作るがグループ変数を定義しない場合は、以下の通りです。

ini

1[web] 2node-1 ansible_host=IPアドレス ansible_user=root ansible_password=パスワード 3 4[test] 5node-1

2. ロールの処理のインデント誤り

dnf のインデントが 1つ多いようです。以下のように修正お願いします。

yaml

1- name: install httpd 2 dnf: 3 name: httpd 4 state: latest

3. ロールの処理のパス

httpd ロールの処理を /home/ansible/roles/httpd/main.yml にかかれていますが、
正しくは /home/ansible/roles/httpd/tasks/main.yml です。

投稿2024/10/16 07:07

yabusakadeny

総合スコア186

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

falifa

2024/10/16 07:38

ご指摘の通りに修正したらできました、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問