###################### Ansible 自动化运维工具 ######################
1、客户端不用安装,不用做任何操作,是基于SSH协议来管理的
2、Ansible是基于python语言开发的自动化运维工具,2015年被红帽公司以1.5亿美金收购,工作方式为C/S架构,但客户端不用安装任何工具、插件。只要安装了openssh即可。
3、Ansible 自动化工具工作流程和原理: Ansible运维工具是C/S架构,在Server商品安装Ansible软件程序,通过软件程序调用本地模块或插件,读取本地Hosts列表文件(记录客户端的IP列表),基于SSH协议远程连接客户端,将任务发送给客户端,让客户端执行发送的任务,最终返回执行结果。
轻量级, 基于SSH协议 不需要去客户端安装AGENT 批量执行脚本,不用放到被控节点中 基于PYTHON编写,维护更简单 支持sudo普通用户命令 去中心化管理 服务端与客户端互不影响
python 2.6以上
[root@localhost ~]#yum install epel-release [root@localhost ~]#yum install ansible [root@localhost ~]# rpm -qa|grep ansible ansible-2.9.13-1.el7.noarch配置文件 /etc/ansible/ansible-cfg
inventory =/etc/ansible/hosts 被控端IP列表 library =/usr/share/my_modules ansible模块 remote_tmp 定义临时缓存文件 forks =5 并行进程数,即同时操作的被控端数 sudo_user =root sudo远程执行用户名 ask_sudo_pass=true 使用sudo,是否需要输入密码 system_warnings = False deprecation_warnings = False command_warnings = False nocolor=1 1为打开颜色vim /etc/ansible/ansible-cfg
command_name = shell 改默认模块名称 command_warnings=False 支持警告hosts里加[] [root@localhost ~]# cat /etc/ansible/hosts
[lvs] 192.168.1.10 ansible_user=admin ansible_password=123456 192.168.1.11 [mysql] 192.168.0.12 192.168.0.13 [php-fpm] 192.168.0.14 192.168.0.15使用
[root@localhost ~]#ansible php-fpm -m command -a "mysql install -y php-fpm php php-devel"所有机器
ansible all -m command -a "df -h"部分主机,网段
ansible 192.168.0.* -m command -a "df -h"两台
ansible 192.168.0.10,192.168.0.11 -m command -a "df -h"yum模块安装
#ansible lvs -m yum -a "name=epel-release,ntp status=install" -vvvvvvvv 显示详细过程
copy模块
#ansible php -m copy -a "src=/data/autoinstallphp.sh dest=/data/autoinstallphp.sh mode=0755"复制,改权限,改宿主及组,备份旧文件
#ansible php -m copy -a "content='hello' dest=/tmp/aaa mode=644 owner=nginx group=nginx backup=yes"删除文件及目录
#ansible php -m file -a "path=/tmp/212 state=absent"synchronize模块 数据同步 只改变才会覆盖,可增量、可空目录 同步本地文件至php远程机器中
#ansible php -m synchronize -a "src=/tmp/ dest=/tmp/"同步时,删除客户端中源端没有的文件及目录
#ansible php -m synchronize -a "src=/tmp/ dest=/tmp/ delete=yes"另:免密设置
################# 免密钥配置 ############# ssh-keygen 全部回车 ls /-l /root/.ssh/id_rsa 钥匙,私钥 ls /-l /root/.ssh/id_rsa.pub 锁,公钥 ssh-cp-id -i /root/.ssh/id_rsa.pub 192.168.1.142 把锁给别人,自己拿钥匙解锁 #################
----------------------------------end