Linuxsshansible远程批量执⾏命令
对于简单的命令,ssh:
# ssh remote_ip "command01 ; command02"
注意:
A. 双引号,必须有。如果不加双引号,第⼆个ls命令在本地执⾏
B. 分号,两个命令之间⽤分号隔开
ansible
ansible命令主要⽤于批量管理,来实现⾃动化管理。常⽤批量操作包括:主机分组管理,实时批量执⾏命令或脚本,实时批量分发⽂件或⽬录,定时同步⽂件等。
⼀. 安装ansible
# yum install ansible
安装完成后 /etc/ansible/ ⽬录下有个 hosts ⽂件,对主机实现批量管理主要是通过配置 hosts ⽂件.
linux循环执行命令脚本
⼆. ansible 命令参数详解
常⽤参数:
-m MODULE_NAME, --module-name=MODULE_NAME,执⾏模块的名字,默认使⽤ command 模块,所以如果是只执⾏单⼀命令可以不⽤ -m参数
-a MODULE_ARGS, --args=MODULE_ARGS  模块的参数,如果执⾏默认COMMAND的模块,即是命令参数,如:“date”,"pwd"等等,module arguments模块参数
-C, --check    don't make any changes; instead, try to predict some  只是测试⼀下会改变什么内容,不会真正去执⾏;相反,试图预测⼀些可能发⽣的变化
-i INVENTORY, --inventory-file=INVENTORY,指定库存主机⽂件的路径,默认为/etc/ansible/hosts,(default=/etc/ansible/hosts)
-k, --ask-pass  ask for SSH password  登录密码,提⽰输⼊SSH密码⽽不是假设基于密钥的验证
常⽤ -m (module) 参数:
shell、copy、script、file、yum、user、service
三. 常⽤批量操作(在免密机器上操作,参数 -k 忽略)
ansible常⽤批量操作⽅式基本可以有 shell、copy 和 script 三个 module 完成。
1. 批量执⾏
⽐如查看 GROUP1 主机组机器的 ssh 进程
# ansible GROUP1 -m shell -a 'ps -ef |grep ssh' -k
shell 模块是使⽤最频繁的,file、yum、user、service 这四个 module 的功能 shell 都可以完成
# ansible GROUP1 -m shell -a 'mkdir -p /root/test/' -k       #file-module,新建⽬录   
# ansible GROUP1 -m shell -a 'yum install vim -y' -k        #yum-module,安装软件
# ansible GROUP1 -m shell -a 'useradd -d /mnt/kwang kwang' -k  #file-module,添加⽤户
# ansible GROUP1 -m shell -a 'service status iptables' -k     #service-module,查看服务状态
2. 批量拷贝⽂件
将 /root/ ⽬录下的 ansible-test.jar 批量拷贝到指定主机组机器上
# ansible GROUP1 -m copy -a 'src=/root/ansible-test.jar dest=/root/' -k
3. 批量执⾏shell脚本
在指定主机组机器上执⾏本机上的 /root/test.sh 脚本
# ansible GROUP1 -m script -a '/root/test.sh' -k
批量执⾏shell脚本脚本,ip.txt⾥包含100个ip地址
# ansible - all -m script -a "fal.sh"
4. 批量替换相同⽂件的指定内容
将主机组机器上的 / ⽂本中的 'ansible script test' 内容替换成 'be replaced',其实批量替换操作是 shell 模块的操作
# ansible GROUP1 -m shell -a "sed -i 's/ansible script test/be replaced/g' /" -k

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。