Ansible自动化运维

一.简介
在这里插入图片描述ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。无客户端。
工作原理
在这里插入图片描述二.install-部署
1.dns resolve环境
ansible服务器 192.168.152.182
ansible客户机 192.168.152.185
192.168.152.181
在服务器上添加域名解析
vim /etc/hosts
在这里插入图片描述同样操作在客户机上添加

2.install ansible
yum install -y epel-release 安装epel源
yum install -y ansible 安装软件
安装epel源,如果您在非学校环境,请使用下方阿里YUM

rm  -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
检测部署是否完成
	rpm -ql ansible
		列出所有文件
	rpm -qc ansible
		查看配置文件
	ansible --help
		查看ansible帮助
	ansible-doc -l
		看所有模块(A10,华为,docker,EC2,aws等等广大厂商设备)
	ansible-doc -s yum
		看yum模块,了解其功能
			install (`present' or `installed', `latest'), or remove (`absent' or `removed')
			yum list
			 Package name
			enablerepo

三.ssh-key(可选)免密码ssh-key的方式。
ssh-keygen
ssh-copy-id IP地址 推送公钥

四.ansible基础
定义主机清单
vim /etc/ansible/hosts
在这里插入图片描述测试连通性
在这里插入图片描述简洁输出
ansible host1 -m ping -o
know_hosts文件
ansible host2 -m ping 失败了
ansible host2 -m ping -u root -k -o 增加用户名选项 增加密码选项
去掉(yes/no)的询问
vim /etc/ssh/ssh_config
StrictHostKeyChecking no 修改
systemctl restart sshd 重启服务

请注意ping和ssh
	ping
		ICMP:网际消息管理协议
	关闭host1主机的sshd进程,进行ping连通性测试。
	再使用ansible对host1进行联通测试时,却是失败的。
	结论ansible的ping,是探测ssh程序是否连接。不是icmp协议
	ansible host1 -m ping -u root -k

五.Inventory -主机清单
含义:清查;存货清单;财产目录;主机清单
增加主机组
vim /etc/ansible/hosts
[webserver]
hosts1
hosts2
ansible webserver -m ping -o
在这里插入图片描述增加用户名 密码
vim /etc/ansible/hosts 里面添加
[webserver] 密码和范围都可以改
hosts[1:2] ansible_ssh_user=‘root’ ansible_ssh_pass=‘666666’
ansible webservers -m ping -o 免用户名和密码成功
主机和主机的用户名密码不同。如何设置? 挨个添加
增加端口,默认22
vim /etc/ssh/sshd_config
Port 2222
systemctl restart sshd 重启
ansible webservers -m ping -o 默认端口改了就会失败
vim /etc/ansible/hosts
[webserver]
hosts1 ansible_ssh_user=‘root’ ansible_ssh_pass=‘777777’ ansible_ssh_port=‘2222’
hosts2 ansible_ssh_user=‘root’ ansible_ssh_pass=‘666666’
记得把用户名密码和端口恢复原状
组:变量
vim /etc/ansible/hosts
[webserver:vars]
ansible_ssh_user=‘root’
ansible_ssh_pass=‘666666’
常用变量
在这里插入图片描述子分组
将不同的分组进行组合
vim /etc/ansible/hosts
[apache]
hosts[1:2]
[nginx]
hosts[3:4]
[webserver:children] 子分组
apache
nginx
[webserver:vars]
ansible_ssh_user=‘root’
ansible_ssh_pass=‘666666’

自定义主机列表

vim hostlist
[dockers]
host1
host2
[dockers:vars]
ansible_ssh_user=‘root’
ansible_ssh_pass=‘666666’ 注意计算机密码
ansible -i hostlist dockers -m ping -o ping一下看是否成功

六.Ad-Hoc-点对点模式
简介:临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。
1.复制模块
帮助 ansible-doc copy
案例 在这里插入图片描述查看 ls -l /tmp/3.txt
如果文件有多份,可以进行备份。
ansible webserver -m copy -a ‘src=/etc/hosts dest=/tmp/3.txt owner=root group=bin mode=777 backup=yes’ backup备份(改动过的文件)
2.用户模块
帮助 ansible-doc user
创建用户
在这里插入图片描述修改密码
1.生成加密密码
在这里插入图片描述
2.修改密码
ansible webserver -m user -a ‘name=cyx password="$1 2 e c g v / u X 2ecgv/uX 2ecgv/uXERN8LlHkDCnMyfxfALnal/"’

修改shell
ansible webserver -m user -a ‘name=cyx shell=/sbin/nologin append=yes’
删除用户
ansible webserver -m user -a ‘name=cyx state=absent’
3.软件包管理
帮助 ansible-doc yum
ansible host1 -m yum -a ‘name="*" state=latest’ 升级所有包
ansible host2 -m yum -a ‘name=“httpd” state=latest’ 安装apache
客户机查看一下
在这里插入图片描述4.服务模块
帮助 ansible-doc service
ansible webserver -m service -a ‘name=httpd state=started’ 启动
ansible webserver -m service -a ‘name=httpd state=started enabled=yes’ 开机启动
ansible webserver -m service -a ‘name=httpd state=stopped’ 停止

ansible webserver -m service -a ‘name=httpd state=started enabled=no’ 开机不自启
5.文件模块
帮助 ansible-doc file
ansible webserver -m file -a ‘path=/tmp/55.txt mode=777 state=touch’ 创建文件
查看 ls /tmp
ansible webserver -m file -a ‘path=/tmp/99 mode=777 state=directory’ 创建目录
6.收集模块
帮助 ansible-doc setup
ansible webserver -m setup 查询所有信息
ansible webserver -m setup -a ‘filter=ansible_all_ipv4_addresses’ 查看地址
7.shell模块
帮助 ansible-doc shell
ansible webserver -m shell -a ‘hostname’ -o 获取主机名
在这里插入图片描述ansible webserver -m shell -a ‘yum -y install httpd’ -o 部署apache
在这里插入图片描述ansible webserver -m shell -a ‘uptime’ -o 查询系统负载

在这里插入图片描述ansible host3 -m shell -a ‘dh - hT’ -o 查看分区信息
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值