主机清单inventory
主机清单的基本配置inventory
主机清单用于定义Ansible管理的目标主机及其相关配置
- 主机组
[nodes]
192.168.1.21
192.168.1.22
- 增加配置项
每个主机都可以添加主机名或IP地址、SSH登录信息(如用户名、密码和端口)
常用可定义的配置项
ansible_ssh_host=Ip hostname #指定远程主机,可用IP或主机名
ansible_ssh_port=PORT #指定SSH端口
ansible_ssh_user=UNAME #指定SSH用户名
ansible_ssh_pass=PWD #显式指定SSH密码
ansible_sudo_pass=PwD #显式指定SUDO密码
ansible_sudo_exe=/PATH/CMD #sudo 命令路径(适用于1.8及以上版本)
ansible_connection=localsshlparamikoldocker #与主机的连接类型
ansible_ssh_private_key_file=/PATH/FILE #SSH私钥文件
ansible_shell_type=sh|csh|fish #目标系统的she11类型.默认 sh
ansible_python_interpreter=/PATH/PYTHON #目标主机的python路径用于系统中有多个Python版本,或默认/usr/bin/python不存在
[test1]
node[1:4] ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='12345'
dbserver1 ansible_ssh_host=192.168.1.20 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='12345'
dbserver2 ansible_ssh_host=192.168.1.21 ansible_ssh_user=root ansible_ssh_port=22 ansible_ssh_pass='12345'
- 组和组变量
#嵌套组,关键字children
[cluster:children]
test1
node
# 添加组变量,变量可以在playbook中引用
# 例如,为所有web服务器定义一个默认的web根目录
[webservers:vars]
ansible_web_root=/var/www/html
# 或者为所有数据库服务器定义一个默认的数据库备份目录
[dbservers:vars]
ansible_backup_dir=/backup/db
主机清单分成多个文件
- 创建一个名为inventory的目录
- 创建一个名为webservers.ini的文件来存放所有的Web服务器信息,再创建一个名为dbservers.ini的文件来存放所有的数据库服务器信息。
- 在inventory目录下,还需要一个名为inventory(或者你可以命名为其他名字,但需要在ansible命令中指定)的主inventory文件
# inventory/inventory
# 包含Web服务器组
[webservers:children]
@webservers.ini
# 包含数据库服务器组
[dbservers:children]
@dbservers.ini
- ansible-playbook -i inventory/inventory my_playbook.yml
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库