ansible自动化运维

源码安装:
下载安装包:
https://releases.ansible.com/ansible/

yum 安装
·安装epel:
wget https://mirrors.ustc.edu.cn/epel/epel-release-latest-6.noarch.rpm
rpm -ivh epel-release-latest-6.noarch.rpm
yum repolist
·查看ansible信息:
yum info ansible
·安装
yum -y install ansible

查看版本
ansible --version

配置文件
/etc/ansible/ansible.cfg //主配置文件,配置ansible工作特性
/etc/ansible/hosts //主机清单
/etc/ansible/roles //存放角色的目录

程序
/usr/bin/ansible //主程序,临时命令执行工具
/usr/bin/ansible-doc //查看配置文档,模块功能查看工具
/usr/bin/ansible-galaxy //下载/上传优秀代码或Roles模块的官网平台
/usr/bin/ansible-playbook //定制自动化任务,编排剧本工具/usr/bin/ansible-pull远程执行命令的工具
/usr/bin/ansible-vault //文件加密工具
/usr/bin/ansible-console //基于console界面与用户交互的执行工具

加清单
vim /etc/ansible/hosts
最后:
192.168.56.101

探测主机是否存活:
ansible 192.168.56.101 -m ping
报错:
192.168.56.101 | UNREACHABLE! =>

ansible 192.168.56.101 -m ping -k
输入口令
192.168.56.101 | SUCCESS => {
“changed”: false,
“ping”: “pong”
}

说明:
-k 表示输入口令,此方法只适合口令相同的主机

ansible all -m ping -k

说明:
all表示受控的所有主机

hosts文件还支持主机分组
例如:
vim /etc/ansible/hosts
[websrvs]
192.168.30.101
192.168.30.102

[dbsrvs]
192.168.30.101
192.168.30.103:2222

[appsrvs]
192.168.30.10[1:3]

ansible appsrvs -m ping -k

vim /etc/ansible/ansible.cfg

host_key_checking = False //检查对应服务器的host_key,建议取消注释
log_path = /var/log/ansible.log //建议启用日志

查看ansible帮助
ansible-doc -l //列出所有文档
ansible-doc ping
ansible-doc -s ping //简易模式查看帮助

ansible all --list //列出所有管理的主机

ansible all -m ping -u wang -k
说明:
-u 表示以什么用户登录

ansible all -m command -u root -k -a ‘ls /root’
说明:
-m command 可以省略
-a 表示执行的命令参数

ansible all -a ‘ls /root’ -u lx -k -b -K
SSH password:
SUDO password[defaults to SSH password]:

说明:
-b 表示sudo
-K 表示输入sudo的口令
报权限错误
是因为目标主机没有授权sudo命令,需要做如下设置
在受控主机上执行:
visudo
去掉注释
%wheel ALL=(ALL) ALL
把lx用户加入wheel组
usermod -aG wheel lx
ansible all -a ‘ls /root’ -u lx -k -b -K

如果不想输入sudo密码,将visudo中的如下行去注释
%wheel ALL=(ALL) NOPASSWD: ALL

ansible all -a ‘ls /root’ -u lx -k -b

以上方法都要输入密码,可以使用key验证方式,就不用输入密码了
方法如下:
在ansible主机上执行:
ssh-keygen
ssh-copy-id 192.168.56.101

ansible all -a ‘ls /root’

常用模块
·command模块

ansible all -a ‘removes=/etc/fs cat /etc/fstab’
说明:
remove表示如果不存在/etc/fs文件,则跳过不执行cat /etc/fstab

ansible all -a ‘creates=/etc/fs cat /etc/fstab’
说明:
creates表示如果/etc/fs文件不存在,则执行cat /etc/fstab

ansible all -a ‘chdir=/boot ls’
说明:
chdir表示切换到哪个目录,在执行ls

ansible -a ‘/home/lx/f1.sh’

·shell模块
command对于管道符、变量等支持有问题,所以需要用shell代替

ansible -m shell -a ‘echo $HOSTNAME’
ansible -m shell -a ‘echo 123 | passwd --stdin lx’

·script模块

ansible all -m script -a ‘/home/lx/f1.sh’
说明:
/home/lx/f1.sh这个脚本是ansible所在主机的脚本,不是受控端主机的脚本

·copy模块
关闭selinux
getenforce
Enforcing
cp /etc/sysconfig/selinux .
vim selinux
SELINUX=enforcing 改为:
SELINUX=disabled

将该文件上传到所有受控主机

ansible all -m copy -a ‘src=/home/lx/selinux dest=/etc/selinux/config backup=yes’
如果报错:
Aborting, target uses selinux but python bindings (libselinux-python) aren’t installed!
安装即可:
yum install libselinux-python -y

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值