一、安装
安装erpl.repo
[root@hadoop102 ~]# cd /etc/yum.repos.d
[root@hadoop102 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum 或编译安装
[root@hadoop102 ~]#yum -y install ansible
[root@hadoop102 ~]# ansible —version
注意:管理节点的服务器环境python>=2.6 (Centos系统自带python2.7)
被管理节点的服务器环境python>=2.4
二、相关文件
1. 配置文件
/etc/ansible/ansible.cfg 主配置文件,配置ansible工作特性(一般无需修改)
/etc/ansible/hosts 主机清单(将被管理的主机放到此文件)
/etc/ansible/roles/ 存放角色的目录
2. 程序
/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界面与用户交互的执行工具
三、Ansible 配置文件
ansible 配置文件:
/etc/ansible/ansible.cfg (一般保持默认)
cat /etc/ansible/ansible.cfg
[defaults]#inventory = /etc/ansible/hosts # 主机列表配置文件#library = /usr/share/my_modules/ # 库文件存放目录#remote_tmp = $HOME/.ansible/tmp # 临时py命令文件存放在远程主机目录#local_tmp = $HOME/.ansible/tmp # 本机的临时命令执行目录#forks = 5 # 默认并发数,同时可以执行5次#sudo_user = root # 默认sudo 用户#ask_sudo_pass = True # 每次执行ansible命令是否询问ssh密码#ask_pass = True # 每次执行ansible命令是否询问ssh口令#remote_port = 22 # 远程主机的端口号(默认22)建议优化项:host_key_checking = False # 检查对应服务器的host_key,建议取消注释log_path = /var/log/ansible.log # 日志文件,建议取消注释module_name = command # 默认模块
四、SSH 免密
环境:
管理节点:192.168.10.102 hadoop102
被管理节点:192.168.10.103 hadoop103
被管理节点:192.168.10.104 hadoop104
1. 管理节点中创建密钥对
[root@hadoop102 ~]# ssh-keygen -t rsa
2. 将管理节点的公钥传输到被管理节点
[root@hadoop102 ~]# ssh-copy-id root@192.168.10.103
[root@hadoop102 ~]# ssh-copy-id root@192.168.10.104
五、与被管理节点的连通性测试
在管理节点上:
测试1:
[root@hadoop102 ~]# ansible all -i 192.168.10.103,192.168.10.104 -m ping
测试2:
[root@hadoop102 ~]# touch /tmp/test.conf
[root@hadoop102 ~]# ansible all -i 192.168.10.103,192.168.10.104 -m copy -a “src=/tmp/test.conf dest=/tmp/test.conf”
在192.168.10.103、192.168.10.104的/tmp/下查看,test.conf已传输成功
参数说明:
-m:指定模块
all:匹配指定的所有资产
-i:指定被管理节点的主机列表,⼀定要加⼀个英⽂逗号(,),告知是List
比如:ansible all -i 192.168.10.103, -m ping,如果不加逗号,返回结果会报错
-a:指定模块的参数
