おそらくAnsibleを使用します。これは非常にシンプルな構成管理/オーケストレーションエンジンであり、Puppetよりも使い始めるのがはるかに簡単です(Puppetは以前はこれに適していましたが、Ansibleを発見した今では必ずしもそうではありません)。
ここでのAnsibleの利点は、SSHを介して直接通信することです。そのため、既存のSSH資格情報とワークフローのみを使用して開始できます。
現在、ipmitoolを使用してBMCを構成している場合、次のようなことができます。
Hostsファイルを定義する-これは、どのホストがbmcグループ(この場合)に属し、どのホストで何を実行するかをAnsibleに伝えます。
[bmc]
192.168.1.100
192.168.1.101
192.168.1.102
など...解決可能であれば、そのファイルでホスト名を使用することもできます。
次に、「プレイブック」を作成します。これは、ホストグループ内の各ホストで実行するコマンドのセットです。この種のトップダウンディレクトリレイアウトが必要です。
ansible/
playbooks/
bmc.yml
roles/
bmcconfig/
files/
handlers/
main.yml
tasks/
main.yml
templates/
group_vars/
all
プレイブックにはRolesがあります。これは、構成の小さなセクションであり、分解して再利用できます。
という名前のファイルを作成しますbmc.yml
(すべてのAnsible設定はYAMLファイルにあります)
---
- name: Configure BMC on the hosts
hosts: bmc
user: root
roles:
- bmcconfig
その後roles/bmcconfig/tasks/main.yml
、ipmiと通信するために、各ホストで実行されるコマンドのリストを開始できます。
---
- name: Install ipmitool
apt: pkg=ipmitool state=installed
- name: Run ipmitool config
shell: ipmitool -your -options -go -here
プレイブックを実行するとansible-playbook -i hosts bmc.yml
、tasks/main.yml
各ロールにリストされたコマンドが、ホストbmc
グループ内の各ホストでトップダウンの順序で実行されますhosts
group_vars/all
興味深いファイルです。これにより、プレイブックで使用できる変数と値のキーと値のペアを定義できます。
のようなものを定義することができます
ipmitool_password: $512315Adb
あなたgroup_vars/all
とその結果、あなたは次のようなものを持つことができるでしょう:
shell: ipmitool -your -options -go -here --password=${ipmitool_password}
プレイブックで。
Ansible Documentation Pagesで、「モジュール」の使用方法に関する詳細情報を見つけることができます。これは、物事を行えるAnsibleのコンポーネント、独自の:Dなどの記述方法などです。