yum 安装
- yum install epel-release -y
- yum install ansible -y
ansible 配置文件
inventory = /etc/ansible/hosts1 这个参数表示资源清单 inventory 文件的位置, 资源清单就是一些 ansible 需要连接管理的主 机列表. 这个参数的配置实例如下:
library = /usr/share/ansible1 ansible 的操作动作, 无论是本地或远程, 都使用一小段代码来执行, 这小段代码称为模块, 这个 library 参数就是指向存放 ansible 模块的目录. 配置实例如下:
ansible 支持多个目录方式, 只要用冒号 ":" 隔开就可以, 同时也会检查当前执行 playbook 位置下的./library 目录.
forks = 51 设置默认情况下 ansible 最多能有多少个进程同时工作, 从 ansible 1.3 开始, fork 数量默认自动设置为主机数量或者潜在的主机数量, 默认设置最多 5 个进程并行处理. 具体需要设置多少个, 可以根据控制主机的性能和被管节点的数量来确定, 可能是 50 或 100. 默认值 5 是非常保守的值.
sudo_user = root1 这是设置默认执行命令的用户, 也可以在 playbook 中重新设置这个参数. 配置实例如下:
remote_port = 221 这是指定连接被管节点的管理端口, 默认是 22. 除非设置了特殊的 SSH 端口, 不然这个参数一般是不需要修改的.
host_key_checking = False1 这是设置是否检查 SSH 主机的密钥. 可以设置为 True 或 False, 关闭后第一次连接没有提示配置实例
timeout = 601 这是设置 SSH 连接的超时间隔, 单位是秒. 配置实例如下:
log_path = /var/log/ansible.log1 统默认是不记录日志的, 如果想把 ansible 系统的输出记录到日志文件中, 需要设置 log_path 来指定一个存储 ansible 日志的文件. 配置实例如下:
ansible 配置公私钥
1, 首先生成秘钥
- ## 执行下条指令后一路回车即可!
- [[email protected] ~]# sudo SSH-keygen -t rsa12
2, 然后向主机分发秘钥:
- ## 所有添加到主机清单中的 IP 地址或者主机名, 全部都要用下条指令执行一遍.
- [[email protected] ~]# sudo SSH-copy-id [email protected] 主机名或 IP 地址 12
3, 如果出现以下情况:
- SSH-copy-id -i ~/.SSH/id_rsa.pub [email protected]
- -bash: SSH-copy-id: command not found
- # 请尝试:
- yum -y install openssh-clientsansible
ansible 主机清单设置 , 编辑 / etc/ansible/hosts, 在 ansible 主机添加其他所有主机的 hostname
- VIM /etc/hosts
- 192.168.123.45 server-1
- 192.168.123.46 server-2
- 192.168.123.47 server-3
- 192.168.123.48 server-4
- 192.168.123.49 server-5
- 192.168.123.50 server-6
如果被控端是 pem 文件就将 pem 文件传到 ansible-server 端指定路径
- VIM /etc/ansible/hosts
- [zhandian1]
- server-1 ansible_ssh_user=CentOS ansible_ssh_private_key_file=/home/CentOS/aws_secret/nginx.pem
- server-2 ansible_ssh_user=CentOS ansible_ssh_private_key_file=/home/CentOS/aws_secret/nginx.pem
- server-4 ansible_ssh_user=CentOS ansible_ssh_private_key_file=/home/CentOS/aws_secret/nginx.pem
- server-5 ansible_ssh_user=CentOS ansible_ssh_private_key_file=/home/CentOS/aws_secret/nginx.pem
- server-6 ansible_ssh_user=CentOS ansible_ssh_private_key_file=/home/CentOS/aws_secret/nginx.pem
如 SSH 端口有修改还需添加 ansible_ssh_port=3333
开放安全组, 22 端口
ansible 命令集
- /usr/bin/ansible # Ansibe AD-Hoc 临时命令执行工具, 常用于临时命令的执行
- /usr/bin/ansible-doc # ansible 模块功能查看工具
- /usr/bin/ansible-galaxy # 下载 / 上传优秀代码或 Roles 模块 的官网平台, 基于网络的
- /usr/bin/ansible-playbook # ansible 定制自动化的任务集编排工具
- /usr/bin/ansible-pull # ansible 远程执行命令的工具, 拉取配置而非推送配置 (使用较少, 海量机器时使用, 对运维的架构能力要求较高)
- /usr/bin/ansible-vault # ansible 文件加密工具
- /usr/bin/ansible-console # ansible 基于 Linux Consoble 界面可与用户交互的命令执行工具
ansible 常用命令
执行远程家目录脚本 ansible all -m shell -a 'sudo sh aaa.sh'
指定节点上的权限, 属主和数组为 root ansible '*' -m file -a "dest=/tmp/t.sh mode=755 owner=root group=root"
指定节点上定义一个计划任务, 每隔 3 分钟到主控端更新一次时间 ansible '*' -m cron -a 'name="custom job"minute=*/3 hour=* day=* month=* weekday=* job="/usr/sbin/ntpdate 172.16.254.139"' 指定节点上创建一个组名为 aaa,gid 为 2017 的组 ansible all -m group -a'gid=2017 name=a' 在节点上创建一个用户 aaa, 组为 aaa ansible all -m user -a'name=aaa groups=aaa state=present' 删除用户示例 ansible all -m user -a'name=aaa groups=aaa remove=yes' 在节点上安装 httpd ansible all -m yum -a"state=present name=httpd" 在节点上启动服务, 并开机自启动 ansible all -m service -a'name=httpd state=started enabled=yes' 检查主机连接 ansible'*' -m ping
执行远程命令 ansible '*' -m command -a 'uptime'
执行主控端脚本 ansible '*' -m script -a '/root/test.sh'
执行查看 zabbix ansible '*' -m shell -a 'ps aux|grep zabbix'
类似 shell ansible '*' -m raw -a "ps aux|grep zabbix|awk'{print \$2}'" 创建软链接 ansible'*'-m file -a"src=/etc/resolv.conf dest=/tmp/resolv.conf state=link" 删除软链接 ansible'*'-m file -a"path=/tmp/resolv.conf state=absent" 复制文件到远程服务器 ansible'*'-m copy -a"src=/etc/ansible/ansible.cfg dest=/tmp/ansible.cfg owner=root group=root mode=0644" 节点上运行 hostname ansible all -m raw -a'hostname|tee' 将指定 url 上的文件下载到 / tmp ansible all -m get_url -a'url=http://10.1.1.116/favicon.ico dest=/tmp'
![](https://s1.51cto.com/images/blog/202001/11/e984a040a871de7ff58f52935e4bcf8f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
来源: http://www.bubuko.com/infodetail-3376979.html