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

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

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

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

Ansible

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

Q&A

解決済

2回答

127閲覧

AnsibleにてPlaybookを成功させたい

falifa

総合スコア8

Linux

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

Ansible

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

0グッド

0クリップ

投稿2024/10/14 23:57

実現したいこと

Amazon Linux環境にてansible-playbookにてテスト用PlayBookを作成してみたのですがエラーが出てしまいました。
ベストプラクティスを考慮した上でPlayBookの内容に「ansible.builtin.include_role」を用いてコマンドを成功させたいです。

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

PlayBookの内容について

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

インベントリファイル

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

roleの内容

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

エラーメッセージ

error

1[root@test1 ansible]# ansible-playbook test-1.yml --syntax-check 2[WARNING]: No inventory was parsed, only implicit localhost is available 3[WARNING]: provided hosts list is empty, only localhost is available. Note that 4the implicit localhost does not match 'all' 5ERROR! 'ansible.builtin.include_role' is not a valid attribute for a Play 6 7The error appears to be in '/home/ansible/test-1.yml': line 2, column 3, but may 8be elsewhere in the file depending on the exact syntax problem. 9 10The offending line appears to be: 11 12--- 13- name: deploy httpd server 14 ^ here 15[root@test1 ansible]# 16[root@test1 ansible]# 17[root@test1 ansible]# ansible-playbook test-1.yml 18[WARNING]: No inventory was parsed, only implicit localhost is available 19[WARNING]: provided hosts list is empty, only localhost is available. Note that 20the implicit localhost does not match 'all' 21ERROR! 'ansible.builtin.include_role' is not a valid attribute for a Play 22 23The error appears to be in '/home/ansible/test-1.yml': line 2, column 3, but may 24be elsewhere in the file depending on the exact syntax problem. 25 26The offending line appears to be: 27 28--- 29- name: deploy httpd server 30 ^ here 31[root@test1 ansible]#

該当のソースコード

特になし

試したこと・調べたこと

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

簡易ではありますが、公式のベストプラクティス に基づいてディレクトリ構成を考えた上でPlayBookを記述したつもりです。

補足

エラーについてもですが、PlayBookの置き場所やhostsの置き場所、/role/httpdディレクトリ配下のmain.ymlの場所についても修正する必要があればご指摘お願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

追加で失礼します。

ロールを呼ぶ Playboook である /home/ansible/test-1.yml 側にも構文エラーがあります。
エラーメッセージに表示されているのはこちらです。

ansible.builtin.include_role モジュールで呼び出すタスクはタスクの一つなので、
以下のように tasks の配下にいれる形に修正してみてください。

yaml

1--- 2- name: deploy httpd server 3 hosts: node-1 4 5 tasks: 6 - name: Include httpd role 7 ansible.builtin.include_role: 8 name: httpd

投稿2024/10/15 00:16

yabusakadeny

総合スコア186

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

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

0

本来ロールとして書かれるべきファイル /home/ansible/roles/httpd/main.yml が、
Playbookとして書かれています。

/home/ansible/roles/httpd/main.yml を以下のようにロールの形式に修正してみてください。

yaml

1- name: install httpd 2 dnf: 3 name: httpd 4 state: latest 5 6- name: start & enabled httpd 7 service: 8 name: httpd 9 state: started 10 enabled: yes

投稿2024/10/15 00:11

編集2024/10/15 00:15
yabusakadeny

総合スコア186

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

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

falifa

2024/10/15 00:30

PlayBookの内容も誤っていましたが、ロールの記述もご指摘の通り誤っていました。 的確なアドバイスありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問