87 lines
2.5 KiB
YAML
87 lines
2.5 KiB
YAML
---
|
|
- name: IPMI配置BMC地址
|
|
hosts: "{{ target_hosts | default('all') }}"
|
|
become: yes
|
|
vars:
|
|
# BMC网络配置
|
|
bmc_ip: "10.10.10.100"
|
|
bmc_netmask: "255.255.255.0"
|
|
bmc_gateway: "10.10.10.1"
|
|
# BMC用户配置
|
|
bmc_user: "admin"
|
|
bmc_password: "Admin@123"
|
|
bmc_channel: 1
|
|
# 是否启用DHCP(设为true则忽略上面的静态IP配置)
|
|
bmc_dhcp: false
|
|
|
|
tasks:
|
|
- name: 安装ipmitool
|
|
package:
|
|
name: ipmitool
|
|
state: present
|
|
|
|
- name: 加载IPMI内核模块
|
|
modprobe:
|
|
name: "{{ item }}"
|
|
state: present
|
|
loop:
|
|
- ipmi_devintf
|
|
- ipmi_si
|
|
ignore_errors: yes
|
|
|
|
- name: 查看当前BMC配置
|
|
shell: ipmitool lan print {{ bmc_channel }}
|
|
register: bmc_current
|
|
changed_when: false
|
|
ignore_errors: yes
|
|
|
|
- name: 显示当前BMC信息
|
|
debug:
|
|
msg: "{{ bmc_current.stdout_lines | default(['无法读取BMC信息']) }}"
|
|
|
|
- name: 设置BMC为静态IP
|
|
shell: ipmitool lan set {{ bmc_channel }} ipsrc static
|
|
when: not bmc_dhcp
|
|
|
|
- name: 配置BMC IP地址
|
|
shell: ipmitool lan set {{ bmc_channel }} ipaddr {{ bmc_ip }}
|
|
when: not bmc_dhcp
|
|
|
|
- name: 配置BMC子网掩码
|
|
shell: ipmitool lan set {{ bmc_channel }} netmask {{ bmc_netmask }}
|
|
when: not bmc_dhcp
|
|
|
|
- name: 配置BMC默认网关
|
|
shell: ipmitool lan set {{ bmc_channel }} defgw ipaddr {{ bmc_gateway }}
|
|
when: not bmc_dhcp
|
|
|
|
- name: 设置BMC为DHCP模式
|
|
shell: ipmitool lan set {{ bmc_channel }} ipsrc dhcp
|
|
when: bmc_dhcp
|
|
|
|
- name: 配置BMC用户密码
|
|
shell: |
|
|
ipmitool user set name {{ bmc_channel }} 2 {{ bmc_user }} 2>/dev/null || true
|
|
ipmitool user set password 2 {{ bmc_password }}
|
|
ipmitool user enable 2
|
|
ipmitool channel setaccess {{ bmc_channel }} 2 privilege=4
|
|
no_log: true
|
|
ignore_errors: yes
|
|
|
|
- name: 验证BMC配置
|
|
shell: ipmitool lan print {{ bmc_channel }}
|
|
register: bmc_verify
|
|
changed_when: false
|
|
|
|
- name: 显示最终配置
|
|
debug:
|
|
msg: |
|
|
═══════ BMC配置完成 ═══════
|
|
模式: {{ 'DHCP' if bmc_dhcp else '静态IP' }}
|
|
IP: {{ bmc_ip }}
|
|
掩码: {{ bmc_netmask }}
|
|
网关: {{ bmc_gateway }}
|
|
用户: {{ bmc_user }}
|
|
═══════════════════════════
|
|
{{ bmc_verify.stdout }}
|