Misalkan saya memiliki peran yang disebut "apache"
Sekarang saya ingin menjalankan peran itu pada host 192.168.0.10 dari baris perintah dari host yang mungkin
ansible-playbook -i "192.168.0.10" --role "path to role"
Apakah ada cara untuk melakukannya?
ansible
ansible-role
Karl
sumber
sumber
'ERROR! 'async_val' is not a valid attribute for a IncludeRole'.
-a "name=<role_name> public=yes"
, tetapi itu tidak membantu.-m <module-name>
) dengan key = value pair sebagai argumen (-a key=value
)Tidak ada yang namanya Ansible, tetapi jika ini adalah kasus yang sering Anda gunakan, coba skrip ini.
Letakkan di suatu tempat dalam PATH Anda yang dapat dicari di bawah nama
ansible-role
:sumber
ansible localhost -m include_role -a name=myrole
- berhasil untuk saya!ansible localhost -m include_role -a name=myrole
rusak karena kemungkinan 2.8. Itu hanya mencatat pesan kesalahan samar seperti'ERROR! 'async_val' is not a valid attribute for a IncludeRole'.
Anda juga dapat memeriksa repositori ansible-toolbox . Ini akan memungkinkan Anda untuk menggunakan sesuatu seperti
sumber
Saya telah menulis plugin Ansible kecil, bernama
auto_tags
, yang secara dinamis menghasilkan tag dengan nama yang sama untuk setiap peran di buku pedoman Anda. Anda bisa menemukannya di sini .Setelah menginstalnya (petunjuknya ada di inti di atas) Anda kemudian dapat menjalankan peran tertentu dengan:
ansible-playbook -i "192.168.0.10" --tags "name_of_role"
sumber
Sudahkah kamu mencobanya? itu sangat keren. Saya menggunakan 'update-os' alih-alih peran 'apache' untuk memberikan contoh yang lebih bermakna. Saya memiliki peran yang disebut katakanlah
./roles/update-os/
saya./
menambahkan file bernama./role-update-os.yml
yang terlihat seperti:Jadikan file ini dapat dieksekusi (
chmod +x role-update-os.yml
). Sekarang Anda dapat menjalankan dan membatasi apa pun yang Anda miliki di inventaris./update-os.yml -i inventory-dev --limit 192.168.0.10
, batasnya, Anda juga dapat memberikan nama grup.--limit web,db
> web dan db adalah grup yang ditentukan dalam inventaris Anda--limit 192.168.0.10,192.168.0.201
Perhatikan bahwa Anda dapat mengonfigurasi kebijakan ssh-keys dan sudoers agar dapat mengeksekusi tanpa harus mengetikkan kata sandi - ideal untuk otomatisasi, ada implikasi keamanan dengan ini. oleh karena itu Anda harus menganalisis lingkungan Anda untuk melihat apakah itu cocok.
sumber
di 2,8 mungkin bekerja sedikit berbeda
sumber