文章目录

  • 前言
  • 一、inventory 主机清单
  • 1.1 inventory 中的变量
  • 1.2 主机变量
  • 1.3 组变量
  • 1.4 组嵌套


前言

本篇博客主要解释Ansible主机清单的相关配置知识

一、inventory 主机清单

ansible输出主机名 ansible 主机列表_Ansible

Inventory支持对主机进行分组,每个组内可以定义多个主机,每个主机都可以定义在任何一个或多个主机组内。

如果是名称类似的主机,可以使用列表的方式表示各个主机

vim /etc/ansible/hosts
[dbservers]
192.168.109.131:2222		#冒号后定义远程连接端口,默认是ssh的22端口
192.168.109.13[1:3]			#范围是:192.168.109.131到192.168.109.133

[root@ansible ansible]# ansible dbservers -a 'date'
192.168.109.133 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 14:43:18 CST
192.168.109.132 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 14:43:18 CST
192.168.109.131 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 14:43:18 CST

[dbservers]
db-[a:f].example.org		#支持主机名匹配 a~f

ansible输出主机名 ansible 主机列表_linux_02


ansible输出主机名 ansible 主机列表_ansible输出主机名_03

1.1 inventory 中的变量

Inventory变量名

含义

ansible_host

ansible连接节点时的IP地址

ansible_port

连接对方的端口号,ssh连 接时默认为22

ansible_user

连接对方主机时使用的主机名。不指定时,将使用执行ansible或ansible-playbook命令的用户

ansible_passwd

连接时的用户的ssh密码,仅在未使用密钥对验证的情况下有效

ansible_ssh_private_key_file

指定密钥认证ssh连接时的私钥文件

ansible_ssh_common_args

提供给ssh、sftp、 scp命 令的额外参数

ansible_become

允许进行权限提升

ansible_become_method

指定提升权限的方式,例如可使用sudo/su/runas等方式

ansible_become_user

提升为哪个用户的权限,默认提升为root

ansible_become_password

提升为指定用户权限时的密码

1.2 主机变量

#修改被管理客户端192.168.109.134 ssh配置文件17行修改端口号
systemctl stop firewalld.service
setenforce 0
vim /etc/ssh/sshd_config
Port 2222
systemctl restart sshd
#这台客户端我没有配置免密登录
#修改Ansible管理服务器主机清单配置文件
vim /etc/ansible/hosts
[lhq]
192.168.109.134 ansible_port=2222 ansible_user=root ansible_password=123123
#不建立将密码直接写入配置,不安全
ansible dbservers -a 'date'

ansible输出主机名 ansible 主机列表_linux_04


ansible输出主机名 ansible 主机列表_自动化运维_05


ansible输出主机名 ansible 主机列表_ansible输出主机名_06

1.3 组变量

#删除客户端已有的免密登录密钥文件
#客户端配置
cd
cd .ssh/
rm -rf authorized_keys
#ansible控制端配置
vim /etc/ansible/hosts
[webservers]
192.168.109.131
192.168.109.132
192.168.109.133
[webservers:vars]				
#表示为 webservers 组内所有主机定义变量
ansible_user=root
ansible_password=123456

[root@ansible ansible]# ansible webservers -a 'date'
192.168.109.132 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 17:34:46 CST
192.168.109.134 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 17:34:46 CST
192.168.109.133 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 17:34:46 CST
192.168.109.131 | CHANGED | rc=0 >>
2022年 07月 06日 星期三 17:34:46 CST

ansible输出主机名 ansible 主机列表_自动化运维_07


ansible输出主机名 ansible 主机列表_Ansible_08

1.4 组嵌套

vim /etc/ansible/hosts
[webservers]
192.168.239.20
192.168.239.30
192.168.239.40
[webservers:vars]
ansible_user=root
ansible_password=1999612
[dbservers]
192.168.239.50:2222 ansible_user=root ansible_password=1999612
[webservers1:children]
webservers
dbserers
#表示为 webservers1 主机组中包含了webservers组和dbservers组内的所有主机

ansible输出主机名 ansible 主机列表_服务器_09


ansible输出主机名 ansible 主机列表_linux_10