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

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

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

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

Q&A

3回答

2529閲覧

Ansibleでのrolesの実行順序について

y0304

総合スコア11

Ansible

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

0グッド

1クリップ

投稿2020/07/28 06:36

Ansibleでソフトウェアをインストールして、ソフトウェアの設定を自動化しようと思い、以下のようなplaybookを作成しました。

roles: - role: soft-install - tags: soft-install - role: soft-setting - tags: soft-setting

このplaybookを実行すると、soft-settingが先に実行されてしまい、ソフトウェアがインストールされていないため、エラーとなってしまいます。
コメントアウトして1つずつ実行すると、エラーなくソフトウェアのインストールから設定までできたのですが、質問です。

rolesに定義したroleは、並列で実行されているのでしょうか?
並列で実行されてしまう場合、soft-install後に、soft-settingを実行する、といった書き方はできますでしょうか?

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

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

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

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

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

guest

回答3

0

Ansible 自体は role や task を直列に順番に実行しますが、
Ansible の task が呼び出した処理は、
内容によっては別プロセスとして実行され、Ansible と並列で実行される可能性はあります

これを防ぐためには、
並列で実行される原因となる task を突き止め、
そのタスクが呼び出した処理が完了したことを判定するためには
何を確認すればよいかを考えます

例えば:

  • 決まったファイルが出力される
  • ログに決まった文字列が出力される

条件を満たすまで待機するための task がありますので、利用すると実装が楽です:
wait_for – Waits for a condition before continuing — Ansible Documentation

投稿2020/07/28 06:47

y_shinoda

総合スコア3272

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

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

0

tag の付け方がおかしいように思います。書くならこう書きます。

roles: - role: soft-install tags: - soft-install - role: soft-setting tags: - soft-setting

投稿2020/07/28 09:50

SugiTK

総合スコア495

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

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

SugiTK

2021/03/15 07:03 編集

元の質問ですと tags のぶら下げ方が間違っているという指摘がしたかったです。 roles: - role: soft-install - tags: soft-install - role: soft-setting - tags: soft-setting
fugaco

2021/04/05 07:25

失礼しました。階層へのご指摘だったんですね。おっしゃる通りです。
guest

0

wait_forなどと混ぜるならimport_roleかinclude_roleにして、tasksからroleを呼び出す方が良いでしょうね。

tasks: - import_role: name: soft-install tags: soft-install - wait_for: path: /tmp/foo - import_role: name: soft-setting tags: soft-setting

投稿2021/07/27 15:30

hiroyuki_onoder

総合スコア9

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問