[解決済み】ansible playbookで1つのタスクだけを実行する方法は?
2022-04-06 03:35:01
質問
ansible playbookで1つのタスクだけを実行する方法はありますか?
例えば
roles/hadoop_primary/tasks/hadoop_master.yml
. 私は
"start hadoop job tracker services"
タスクがあります。 その1つのタスクだけを実行することはできますか?
hadoop_master.yml ファイルを参照してください。
# Playbook for Hadoop master servers
- name: Install the namenode and jobtracker packages
apt: name={{item}} force=yes state=latest
with_items:
- hadoop-0.20-mapreduce-jobtracker
- hadoop-hdfs-namenode
- hadoop-doc
- hue-plugins
- name: start hadoop jobtracker services
service: name=hadoop-0.20-mapreduce-jobtracker state=started
tags:
debug
解決方法は?
を使用する必要があります。
tags:
で説明されているように
https://docs.ansible.com/ansible/latest/user_guide/playbooks_tags.html
大規模なプレイブックがある場合、プレイブック全体を実行することなく、設定の特定の部分を実行できるようにすると便利です。
このため、プレイとタスクの両方が "tags: "属性をサポートしています。
例
tasks:
- yum: name={{ item }} state=installed
with_items:
- httpd
- memcached
tags:
- packages
- template: src=templates/src.j2 dest=/etc/foo.conf
tags:
- configuration
非常に長いプレイブックの「設定」と「パッケージ」の部分だけを実行したい場合、このようにすることができます。
ansible-playbook example.yml --tags "configuration,packages"
一方、特定のタスクなしでプレイブックを実行したい場合は、このようにすることができます。
ansible-playbook example.yml --skip-tags "notification"
また、ロールにタグを適用することもできます。
roles:
- { role: webserver, port: 5000, tags: [ 'web', 'foo' ] }
また、基本的なinclude文のタグ付けも可能です。
- include: foo.yml tags=web,foo
いずれも、include文の中の一つ一つのタスクにタグ付けする機能を持っています。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン