http://www.ansible.com.cn/docs/intro_installation.html#yum
1.ansible安装
yum -y install epel-release
yum -y install ansible
2.配置文件路径
ansible的默认配置文件路径为/etc/ansible
3.在Ansible主机与被管理机之间做免密登陆,方便管理被管理的机器
生成密钥对,基于密钥认证:# ssh-keygen -t rsa -P ""
ssh-keygen 一路回车
cd /root/.ssh
ssh-copy-id -i id_rsa.pub 远端IP地址 #将生成的公钥拷贝到远程机器上
ssh-copy-id -i id_rsa.pub "-p 22 root@127.0.0.1" 本机机器
ssh-copy-id -i id_rsa.pub -p 22 root@127.0.0.1
4简单使用
/etc/ansible
##默认hosts中可以配置分组,我们可以定义各种ip及规则。在hosts中添加以下内容:
[manage-other]
远端ip地址
127.0.0.1
[root@mail ansible]# ansible manage-other -m shell -a 'df -h' #查看hosts文件中自定义组中机器的磁盘使用情况 [root@mail ansible]# ansible all -m shell -a 'df -h' #查看hosts文件中所有组中机器的磁盘使用情况
二 配置文件介绍
rpm -ql ansible
配置路径 /etc/ansible
执行文件目录 /usr/bin
ansible.cfg配置文件
[privilege_escalation]
#become=True #是否sudo
#become_method=sudo #sudo方式
#become_user=root #sudo后变为root用户
#become_ask_pass=False #sudo后是否验证密码
语法
ansible (IP、hostname、group ) options
-m Name 指定执行使用的模块
-u USERNAME 指定远程主机以username运行命令
-s,--sudo sudo命令
-U SUDO_USERNAME,使用sudo
示例:ansible all -m ping -u jacky
ansible all -m ping -u jacky --sudo
ansible all -m ping -u jacky --sudo --sudo-user lucy
新版本 sudo命令取消,改为-b or --become
ansible-playbook playbook.yml
#复制本地文件到远程
ansible group -m copy -a "src=/etc/fstab dest=/tmp/fstab owner=root group=root mode=644 backup=yes"
返回结果:红色(异常) 绿色 橘黄色
ansible-doc模块文档说明
ansible-doc ping
#批量安装nginx、redis
ansible manage-other -m yum -a "name=nginx state=present"
#检查某台机器安装
ansible 127.0.0.1 -m command -a "nginx -v" 检查是否安装了nginx
#查看hosts分组信息
grep -v ^# /etc/ansible/hosts |grep -v ^$
#获取主机信息
ansible manage-other -m setup