私はプレイブックを作成しており、これが私が達成したいものです。
会社には、コンポーネントが複数のサーバーに分散しているバンキングアプリケーションがあります。サービスは単一のスクリプトを介して、またはコンポーネントごとに停止できます。セキュリティパッチ(RHEL)を適用する前にアプリケーションを停止する必要があります。
ユーザーがAIOスクリプトでアプリケーションを停止したいのか、コンポーネントごとにアプリケーションコンポーネントを停止するのかをユーザーから読み取る必要があります。
私が書いたパッケージについて、次のように書いています。
vars_prompt:
- name: deploypackages
prompt: Do you want to deploy Packages
private: no
これでアプリケーションに対してこれを達成する方法があり、次の状況でのみ実行する必要があります。配布パッケージ同じワイ
when
作業前にホストセクションで句を使用できますか?試してみましたが、何もしませんでした。エラーも発生しなかったので、インターネットで検索しましたが、答えが見つかりませんでした。
答え1
尋ねる:「deploypackages」が「y」の場合にのみ実行されます。
A: たとえば、在庫を作成します。
shell> cat hosts
dummy
[multiple_servers]
host1
host2
host3
そしてスクリプト
shell> cat pb.yml
- hosts: "{{ (deploypackages == 'y')|
ternary('multiple_servers', 'dummy') }}"
gather_facts: false
vars_prompt:
- name: deploypackages
prompt: Do you want to deploy Packages
private: no
tasks:
- meta: end_play
when: inventory_hostname == 'dummy'
- debug:
msg: Applying security Patches ...
- もしあなたなら「y」と答えないでください演劇は終わる
shell> ansible-playbook -i hosts pb.yml
Do you want to deploy Packages: no
PLAY [dummy] *********************************************************************************
TASK [meta] **********************************************************************************
PLAY RECAP ***********************************************************************************
- もしあなたなら「はい」と答えてくださいドラマは続くでしょう。
shell> ansible-playbook -i hosts pb.yml
Do you want to deploy Packages: y
PLAY [multiple_servers] **********************************************************************
TASK [meta] **********************************************************************************
skipping: [host1]
TASK [debug] *********************************************************************************
ok: [host1] =>
msg: Applying security Patches ...
ok: [host2] =>
msg: Applying security Patches ...
ok: [host3] =>
msg: Applying security Patches ...
PLAY RECAP ***********************************************************************************
host1 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
host2 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
host3 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0