文章目录
一、INI配置ansible清单
cd /etc/ansible
vim hosts #ansible的清单文件
1. 将一台服务器添加到清单中:
a. 用IP连接
vim hosts #编辑清单文件
ansible 172.25.42.2 -m ping #使用ansible的ping模块连接
发现连接失败,是因为ansible并不知道我们要连接的用户和密码
再次编辑ansible清单,写入用户和密码:
此时连接成功!!
b. 用主机名连接
我们还可以不用ip地址去连接,而给每台主机起一个别名:
vim hosts
ansible server2 -m ping #连接成功
c. 免密连接(简化清单书写)
其实也可以不必在清单中写入这么多的信息,我们可以做好免密:
ssh-keygen
ssh-copy-id server1
ssh-copy-id server2
ssh-copy-id server3
ssh-copy-id server4
vim hosts
ansible 172.25.254.3 -m ping #连接成功
使用别名连接:
vim hosts
ansible server3 -m ping #连接成功
2. ansible的分组功能
引言: 做好免密连接后,加入两个IP
vim hosts
写入:
172.25.42.2
172.25.42.3
ansible all -m ping
a. 分组类别一:
写法一:
[A]
172.25.42.2
172.25.42.3
[B]
172.25.42.4
写法二:
[A]
172.25.42.[2:3] # 注意:此处的[2:3]表示2到3,如果你有n台主机,也可以写[2:n]
写法三:使用主机名的方式配置
[A]
servera
serverb
注意: 主机名和别名的区别在于,别名要指定ip地址,而主机名必须写好解析
写法四:
[A]
server[a:b]
b. 分组类别二:
[proA]
172.25.42.3
[proB]
172.25.42.4
[pro:children]
proA
proB
二、YAML语法配置ansible清单
1. YAML语法
YAML:(Yet Another Markup Language)语言(发音/'jaemal/ )是一个类似XML、JSON的标记性语言。YAML强调以数据为中心,并不是以标识语言为重点。因而YAML本身的定义比较简单,号称“一种人性化的数据格式语言”。目的就是方便人类读写。它实质上是一种通用的数据串行化格式
我们可以使用YAML编写配置文件,而ansible的清单也支持YAML的语法,所以我们可以使用YAML语法编写清单,从而管理受管主机
2. YANL配置清单
a. 配置一
INI
172.25.42.2
172.25.42.3
YAML
all:
hosts:
172.25.42.2:
172.25.42.3:
b. 配置二
INI
172.25.42.2
[test1]
172.25.42.3
[test2]
172.25.42.4
YNML
all:
hosts:
172.25.42.2:
children:
test1:
hosts:
172.25.42.3:
test2:
hosts:
172.25.42.4:
c. 配置三
INI
INI:
[proA]
172.25.42.2
[proB]
172.25.42.3
[pro:children]
proA
proB
YAML
all:
children:
pro:
children:
proA:
hosts:
172.25.42.3:
proB:
hosts:
172.25.42.4:
d. 配置四
使用别名的方式配置受管主机
INI
172.25.42.2
serverc ansible_host=172.25.42.3
172.25.42.4
YAML
all:
hosts:
172.25.42.2:
serverc:
ansible_host: 172.25.42.3
172.25.42.4: