1 简介
2安装
2.1 使用pip安装
yum install python-pip
pip install ansible
2.2 使用 yum 安装
yum install epel-release -y
yum install ansible –y
ansible --version
3使用
vim /etc/ansible/hosts
添加
192.168.66.11 ansible_port=22 ansible_user=root ansible_ssh_pass=hadoop
ansible 192.168.66.11 -m ping
当ansible首次去进行ssh连接一个服务器的时候,由于在本机的~/.ssh/known_hosts文件中并有fingerprint key串,ssh第一次连接的时候一般会提示输入yes 进行确认为将key字符串加入到 ~/.ssh/known_hosts 文件中。故回报如上错误。
解决办法:修改/etc/ansible/ansible.cfg文件
在# uncomment this to disable SSH key host checking下
host_key_checking = False默认是注释掉的
打开 host_key_checking = False的注释。同样也可以实现跳过 ssh 首次连接提示验证部分。
4 分组
vim /etc/ansible/hosts
[remote]
192.168.66.11 ansible_port=22 ansible_user=root ansible_ssh_pass=hadoop
创建发送文件
vi test.sh
#!bin/sh
touch ansible.log
echo "test ansible file." > /root/ansible.log
分发脚本:
ansible remote -m copy -a “src=test.sh dest=/root/test.sh”
执行脚本:
ansible remote -m shell -a “sh /root/test.sh chdir=/root”
5免密分发
5.1免密设置
ssh-copy-id node2
ssh-copy-id node3
或
将id_rsa.pub Copy到另台服务器并命名authorized_keys
scp /root/.ssh/id_rsa.pub node2:/root/.ssh/authorized_keys
scp /root/.ssh/id_rsa.pub node3:/root/.ssh/authorized_keys
5.2修改/etc/ansible/hosts
[remote]
192.168.66.11
192.168.66.12
分发脚本:
ansible remote -m copy -a “src=test.sh dest=/root/test.sh”
执行脚本:
ansible remote -m shell -a “sh /root/test.sh chdir=/root”