私はAnsibleの比較的新しいユーザーです。 Linuxサーバーのいくつかのグループを調整するために使用します。私は現在、その使用法を拡張して使用しています Ansibleの自作モジュール 。
Homebrewモジュールを使用して、パッケージのリストがmacOSボックスにインストールされていることを表明したいと思います。これまでのところ、私ができる最善のことは、パッケージごとに別々の役割を作成することです。各役割は次のようになります。
- name: "htop"
homebrew:
name: htop
state: present
Ansible aptモジュールを使用するときに以前に見たように、単一のロールでパッケージのリストを提供する方法が必要なようです。
任意のヒント?自作モジュール自体がこの種の操作を明示的にサポートする必要がありますか、それともAnsibleにもっと基本的なものがあるのでしょうか、それともPython自体が私が探しているものを提供するのでしょうか?
PS-私のmacOSマシンはすべてサーバーであると安全に想定できます。
私は多かれ少なかれ解決策を見つけました。私の役割は次のようになり、機能します。
- name: "brew favourites"
homebrew: name={{ item }} state=present
with_items:
- htop
- nmap
- telnet
- wget
- nginx
拡張ノート
どのメカニズムがこの動作に関与しているのか、私にはよくわかりません。私はそれがAnsibleの外にあり、実際にはPythonismであるように感じます(これはLamdaですか?)。それが何であれ、それはこの種のものに対する一般的な解決策のテンプレートとして役立つ可能性があります。
Aptパッケージのリストを定義するために同様の説明があったのを見て、上記を試しました。そのアプローチは次のようになります。
- name: "Asserting apt packages"
apt: pkg={{ item }} state=installed
with_items:
- aptitude
- vim
- htop
- nmap
- curl
- screen
- open-vm-tools
したがって、 apt module で、pkgパラメーターに多くのパッケージをリストしたかったことに注意してください。 homebrew modules 'コンテキストでは、pkgではなく、nameでした。
同様に、両方のAnsibleモジュールにはstateパラメーターがありますが、aptの場合、適切な値はinstalledであり、homebrewではpresentです。
したがって、この種の構文は、グローバルコンテキストのAnsibleに適用されると思います。また、モジュールはこれを認識しないか、明示的にサポートする必要があります。パワフル。