ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 概述 批量操作多台服务器 ## 安装 ansible ``` yum -y install epel-release yum -y install ansible ``` ## 管理机的秘钥发给其他 节点 ``` # ssh-keygen -t rsa -P '' # ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.111 # ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.229 ``` ## 命令 格式: ![UTOOLS1575621688577.png](http://yanxuan.nosdn.127.net/5de2151adc7253b72e81a968f50a179c.png) ``` - m command:这是个默认模块,不写-m xx模块的时候,默认会当成command模块,表示执行主机指令 copy user group ansible web 指定某个组 ansible all 自定所有节点 ``` ## 场景 先配置参数 ``` # cat /etc/ansible/hosts | grep -v ^# | grep -v ^$ [web] 192.168.0.111 192.168.0.229 ``` ### 批量执行远程脚本命令 ``` ansible web -m shell -a '/bin/echo hello ansible' //nodex 下面的节点 ansible all -m shell -a '/bin/echo hello ansible' //所有节点 ``` ### script 在远程主机上运行本机脚本,只支持用相对路径 ``` ansible web -m script -a 'test.sh' ``` ### 文件操作 ``` ansible web -m copy -a 'src="/home/zing/Documents/源.txt" dest="/home/xxserver/目标.txt" [owner="root"] [mode=640'] ``` ### 发送批量数据 ``` ansible web -a 'echo "hello word"' ``` ### user 操作用户 ``` # 创建用户 ansible local -m user -a 'name="zing1" password="自定义的密码" groups="root,system,sys" home="/home/zing1" ' # 删除用户 ansible local -m user -a 'name="zing1" state=absent fource=yes' ``` ### group 操作用户组 ``` ansible local -m group -a 'name="mysql" gid=306 system=yes ' ansible local -m group -a 'name="mysql" state=absent fource=yes' ``` ### service 指定服务的运行状态 ``` ansible local -m service -a 'name="httpd" enabled=true state=started ' #enable表示是否开机启动 #state 参数有started stopped restarted ```