Apakah ada cara untuk hanya menjalankan satu tugas di buku pedoman yang dimungkinkan?
Misalnya, dalam roles/hadoop_primary/tasks/hadoop_master.yml
. Saya punya "start hadoop job tracker services"
tugas. Bisakah saya menjalankan satu tugas itu saja?
file 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
Ada caranya, meski tidak terlalu elegan:
ansible-playbook roles/hadoop_primary/tasks/hadoop_master.yml --step --start-at-task='start hadoop jobtracker services'
Perform task: start hadoop jobtracker services (y/n/c)
y
Ctrl-C
sumber
--check
dan-vvv
juga cukup berguna. Ini tidak akan benar-benar melakukan perintah tetapi memberi Anda sangat keluaran apa yang akan terjadi.FWIW dengan Ansible 2.2 orang dapat menggunakan include_role :
buku pedoman
test.yml
:lalu di
roles/test/tasks/other.yml
:Dan aktifkan playbook dengan:
ansible-playbook test.yml
untuk mendapatkan:sumber
Saya akan senang kemampuan untuk menggunakan peran sebagai kumpulan tugas sehingga, dalam buku pedoman saya, saya dapat memilih bagian tugas yang akan dijalankan. Sayangnya, playbook hanya dapat memuat semuanya dan kemudian Anda harus menggunakan
--tags
opsi pada cmdline untuk memilih tugas mana yang harus dijalankan. Masalah dengan ini adalah bahwa semua tugas akan berjalan kecuali Anda ingat untuk mengatur--tags
atau--skip-tags
.Saya telah mengatur beberapa tugas, dengan
when:
klausa yang hanya akan diaktifkan jika var diatur.misalnya
Sekarang, tugas ini tidak akan diaktifkan secara default, tetapi hanya jika saya mengatur
stuff=true
atau di buku pedoman:
sumber
apakah Anda terbiasa dengan penangan ? Saya pikir itu yang Anda cari. Pindahkan restart dari
hadoop_master.yml
keroles/hadoop_primary/handlers/main.yml
:dan sekarang panggil digunakan
notify
dihadoop_master.yml
:sumber
Ini dapat dengan mudah dilakukan menggunakan tag
Contoh tag didefinisikan di bawah ini:
untuk mengeksekusi tag kita menggunakan perintah
sumber