Linux自动运维之ansible详细入门

一、安装ansible
1、准备ansible管理机器
yum install epel-release -y
yum install ansible libselinux-python -y
2、检查ansible软件安装情况,查询配置文件和可执行命令
rpm -ql ansible | grep -E '^/etc|^/usr/bin'
3、检查ansible版本
ansible --version
4、被管理机器安装ansible
yum install ansible libselinux-python -y
5、备份管理机备份文件
cp /etc/ansible/hosts{,.ori}
6、添加被管理机器IP
cd /etc/ansible/
vim hosts
最后一行增加
[manage]     名字可改
192.168.188.102 被管理机器IP
tail -3 /etc/ansible/hosts 检查

二、ssh 密码认证方式管理机器
1、管理主机执行如下命令 
-m 指定功能模块,默认就是command模块
-a 告诉模块需要执行的参数
-k 询问密码认证
-u 执行运行用户
ansible 主机列表 -m command -a 'hostname' -k -u root
ansible manage -m command -a 'hostname' -k -u root
注意:此处会报错,需要手工ssh对主机进行一次连接,即可用ansible管理

2、配置免密登陆
在 /etc/ansible/hosts文件中,定义好密码即可,即可实现快速的认证,远程管理主机
参数
ansible host  主机地址
ansible port   端口
ansible user   认证的用户
ansible ssh pass 用户认证的密码
vim /etc/ansible/hosts
[manage]
192.168.188.102 ansible_user=root ansible_ssh_pass=123456

验证:[manage]
ansible manage -m command -a 'ifconfig ens33'

获取所有被管理机器的负载信息
ansible manage -m command -a "uptime"
让客户端机器,先切换到/tmp目录下,然后打印当前的工作目录
ansible manage -m command -a "pwd chdir=/tmp/"

练习creates参数
该参数作用是判断该文件是否存在,存在则跳过,不存在则执行
#判断/chaoge文件夹是否存在,存在则不执行前面的pwa动作,不存在,则执行pwd
ansible 192.168.188.103 -m command -a "pwd creates=/chaoge'

参数removes实践,存在则执行,不存在则跳过
ansible manage -a "ls /opt   removes=/opt"

warn参数,是否提供告警信息
# 执行命令,且忽略告警信息
ansible manage -m command -a"chmod 000 /etc/hosts    warn=False"

三、SHELL模块练习
she11模块支持的参数和解释

chdir   在执行命令之前,通过cd进入该参数指定的目录
Creates 定义一个文件是否存在,如果存在则不执行该命令,如果存在该文件,则执行she11命令
free form 参数信息中可以输入任何的系统指令,实现远程管理
removes 定义一个文件是否存在,如果存在该文件,则执行命令,如果不存在,则跳过
shel模块案例
批量查询进程信息
#ansible manage -m shel1 -a "ps -ef grep vim grep -v grep"

批量远程执行脚本
该需要执行的脚本,必须要求在客户端机器上存在,否则会报错文件不存在,这是she11模块的特点,是因为还有一个专门执行脚本的script模块注意的是这个脚本必须在客户端机器上存在才行
1.创建文件夹
2.创建sh脚本文件,还要写入脚本内容
3.赋予脚本可执行权限
4.执行脚本
5.忽略warning信息
思路分析
最好所有的操作都是在 管理机器上,也就是(老板)这台机器 m01上进行远程的,批量化操作
ansible manage -m shell -a "mkdir -p /server/myscripts/;echo 'hostname' > /server/myscripts/hostname.sh;chmod +x /server/myscripts/hostname.sh;bash
/server/myscripts/hostname.sh  "

四、script模块
应用案例
1.在管理节点上创建脚本
[root@m01 myscripts]# echo -e "pwd\nhostname" > /myscripts/local hostname.sh
[root@m0l myscripts]# cat /myscripts/local_hostname.sh
pwd
hostname
2.授权
chmod +x /myscripts/localhost_name.sh
远程的批量执行脚本,且在客户端上不需要存在该脚本
ansible manage -m script -a "/myscripts/local_hostname.sh'
且该脚本不需要在客户端上存在利用script模块 可以批量让所有被管理的机器执行脚本,

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值