安装
apt-get install ansible
配置目录
/etc/ansible/hosts
端口
如果修改了ssh端口,那么加这一行
ansible_ssh_port=8888
sudo
ansible_sudo_pass='123456'
如果sudo免密,那么就不用加这行了 加上 --sudo参数就行
–sudo 表示用sudo到root的方式执行对应的模块
su
ansible_ssh_pass='123456'
举个栗子
[web]
172.25.24.52 ansible_ssh_port=8888 ansible_su_pass=root密码
[new_web]
172.25.24.57 ansible_ssh_port=8888 ansible_ssh_user=ssh用户 ansible_su_pass=root密码 ansible_sudo_pass=sudo密码
# 如果免密的话,这样应该可以,加上--sudo
172.25.24.58 ansible_ssh_port=8888 ansible_ssh_user=ssh用户
上面这个[xxx]这个是group 组的概念,就是说下面的机器是一组,可以一起干,当然也可以拆开单个IP来干
ansible 172.25.24.53 -m script -a '/server/scripts/web53.sh'
实例
# 这个是普通用户直接 su
root@jenkins:~# ansible web -m shell -a 'whoami'
172.25.24.52 | CHANGED | rc=0 >>
root
# 这个是通过 sudo
# --sudo 表示用sudo到root的方式执行对应的模块
root@jenkins:~# ansible new_web -m shell -a 'whoami' --sudo
172.25.24.57 | CHANGED | rc=0 >>
root
常用模块
shell 执行命令
copy 拷贝文件
script 执行脚本
我经常用的就这,举个栗子
ansible web -m copy -a 'src=dist.zip dest=/data/package/'
ansible web -m shell -a 'uptime'
ansible web -m script -a '/tmp/df.sh'