아마 Ansible을 사용했을 것입니다 . Puppet보다 시작하기가 매우 간단한 매우 간단한 구성 관리 / 오케스트레이션 엔진입니다.
Ansible의 장점은 SSH를 통해 직접 통신하기 때문에 기존 SSH 자격 증명 및 워크 플로 만 사용하여 시작할 수 있다는 것입니다.
현재 ipmitool을 사용하여 BMC를 구성하는 경우 다음과 같은 작업을 수행 할 수 있습니다.
호스트 파일 정의-이것은 Ansible에게 bmc 그룹 (이 경우)에 어떤 호스트가 있고 어떤 것을 실행할 것인지를 알려줍니다 .
[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
플레이 북에는 역할 이 있습니다.이 역할 은 구성 및 재사용이 가능한 구성 섹션이 거의 없습니다.
그래서 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 작성 방법 등에 대한 자세한 정보를 찾을 수 있습니다 .