ansible部署
ansible原理:
控制端主机自带很多模块(模块就是脚本);
ansible通过ssh远程被管理主机,将控制端的模块(脚本)或命令传输到被管理主机;
在被管理端主机执行模块(脚本)或命令,执行不同的模块或命令可以实现不同的功能;
最后ansible退出ssh远程。
首先创建实验主机(控制端和被控制端)
192.168.4.10 ansible
192.168.4.11 node1
192.168.4.12 node2
配置ssh实验坏境
安装ansible自动化软件
修改ansible配置
1.控制节点10
修改/etc/hosts,在文件中手动添加如下内容,修改文件的目的做域名解析。
#vim /etc/hosts
192.168.4.10 ansible
192.168.4.11 node1
192.168.4.12 node2
2. 创建密钥连接其他主机
#ssh-keygen -f /root/.ssh/id_rsa -N '' -f指定放在那个位置 -N ‘’ 空密码
把密钥传给所有主机
#for i in node1 node2 ;do ssh-copy-id $i;done
验证: 不需要密码
ssh node1
ssh node2
3.安装ansible自动化软件releases.ansible.com
您也可以自己构建RPM。从结帐或tarball的根开始,使用命令来构建可以分发和安装的RPM。make rpm
$ git clone https://github.com/ansible/ansible.git
$ cd ./ansible
$ make rpm
$ sudo rpm -Uvh ./rpm-build/ansible-*.noarch.rpm
#cd ansible/
#ls
ansible-2.8.5-2.el8.noarch.rpm
libsodium-1.0.18-2.el8.x86_64.rpm
python3-bcrypt-3.1.6-2.el8.1.x86_64.rpm
python3-paramiko-2.4.3-1.el8.noarch.rpm
python3-pynacl-1.3.0-5.el8.x86_64.rpm
sshpass-1.06-9.el8.x86_64.rpm
#yum -y install *
4.修改ansible配置文件ansible.cfg。参考模板/etc/ansible/ansible.cfg
ansible配置文件查找顺序
--首先检测ANSIBLE_CONFIG变量定义得配置文件
--其次检查当前目录下的./ansible.cfg文件
--再次检查当前用户家目录下~/ansible.cfg文件
--最后检查/etc/ansible/absible.cfg文件
创建ansible的配置文件
#mkdir ~/ansible
#vim ~/ansible/ansible.cfg
[defaults]
inventory= ~/ansible/hosts #主机清单配置文件,inventory(清单、财产清单)
#forks = 5 #ssh并发数量,一次连接几台
#ask_pass = True #使用密钥还是密码远程,True代表使用密码
#host_key_checking = False #是否校验密钥(第一次ssh时是否提示yes/no)不要提示yes/no
#vim ~/ansible/hosts
[test] #定义主机组(组名称任意)
node1 #定义组中的具体主机,组中包括一台主机node1
[web] #定义web组
node2 #主机node2属于web组
[webserver]
node[3:10] #这里的node[3:10]等同于node3到node10
[cluster:children] #嵌套组(children为关键字),不需要也可以不创建嵌套组
webserver #嵌套组可以在组中包含其他组
test