注意:需要提示分发公钥
ansible test -a "free -h"
ansible test -m command -a "free -h"
-m:指定模块
-a:指定参数
test 对应 /etc/ansible/hosts中的[test]
all 对应 /etc/ansible/hosts所有ip
注意:默认模块不支持管道通信
参数 | 解释 |
---|---|
-m | 模块,默认command |
-a | 参数 |
-C,--checks | 检查,预期执行 |
-syntax-checks | 检查剧本,预期执行 |
绿:正常
红:异常
黄:有变动
ansible-doc -v command
chdir参数的使用:
ansible test -m command -a "chdir=/etc pwd"
注意:执行时,各主机本地需要存在shell脚本
与command模块的不同在于,shell模块可以使用变量,管道,定向符号等
当前节点的本地脚本,远程执行
#本地节点脚本文件
cat >/home/centos/sh.sh <<EOF
#!/bin/bash
echo $HOSTMANE
w
ping qq.com -c 2
EOF
#远程执行本地文件
ansible test -m script -a "/home/centos/sh.sh"
脚本文件不具有执行权限,也可以远程执行命令
参数 | 说明 |
---|---|
backup | 是否备份远程已存在的文件 |
content | 可以设定文件的值 |
dest | 远端路径 |
directory_mode | 递归设置目录的权限,默认为系统权限 |
forces | 文件内容存在差异,forces为yes则覆盖,为no,则不覆盖。默认覆盖。别名:thirsty |
src | 路径以/结尾,只复制目录中的文件,否则递归复制所有文件,类似rsync |
mode | 权限位设置 |
owner | 属主 |
group | 属组 |
src 不能和 content一起使用
ansible test -m copy -a "src=/etc/hosts dest=~/ mode=0644 owner=centos group=centos"
ansilbe test -m shell -a "ls -la ~/host*"
原文:https://www.cnblogs.com/anyux/p/12002272.html