ansible(4)--ansible的command和shell模块
1. command模块
功能:在远程主机执行 shell
命令;为默认模块,可省略 -m
选项;
注意:不支持管道命令 |
;
command
模块的常用参数如下:
参数 | 说明 |
---|---|
chdir DIR | 执行ansible时,切换到指定的目录 |
creates FILE | 如果文件FILE存在,则不执行命令 |
removes FILE | 如果文件FILE存在,则执行命令 |
示例一:command模块基础用法,在远端主机执行命令:
[root@xuzhichao ~]# ansible 192.168.20.22 -a "id"
192.168.20.22 | CHANGED | rc=0 >>
uid=0(root) gid=0(root) groups=0(root)
示例二:在被控端主机切换到指定目录,执行命令:
[root@xuzhichao ~]# ansible 192.168.20.22 -a "chdir=/tmp pwd"
192.168.20.22 | CHANGED | rc=0 >>
/tmp
示例三:
creates
:指定的文件存在时,不执行对应命令:[root@xuzhichao ~]# ansible 192.168.20.22 -a "creates=/etc/passwd ls"
192.168.20.22 | SUCCESS | rc=0 >>
skipped, since /etc/passwd exists <==跳过,未执行;
示例四:
removes
:与creates相反,指定的文件存在,则执行对应命令:[root@xuzhichao ~]# ansible 192.168.20.22 -a "removes=/etc/passwd ls"
192.168.20.22 | CHANGED | rc=0 >>
49857.html
anaconda-ks.cfg
apache-tomcat-10.0.7.tar.gz
echo-nginx-module
favicon.ico
index.html
lvs_rs.sh
nginx-1.20.1
nginx-1.20.1.tar.gz
redis-4.2.0.tgz
route.txt
valgrind-3.15.0-11.el7.x86_64.rpm
wordpress-3.1-zh_CN.zip
2. shell模块
功能:在远程主机执行 Shell
命令,支持管道等特殊符号的操作,比command模块使用广泛;
shell
模块的常用参数如下:
参数 | 说明 |
---|---|
chdir DIR | 执行ansible时,切换到指定的目录 |
creates FILE | 如果文件FILE存在,则不执行命令 |
removes FILE | 如果文件FILE存在,则执行命令 |
shell模块支持管道命令,在被控主机上创建用户和密码:
[root@xuzhichao ~]# ansible 192.168.20.22 -m shell -a 'useradd xu1'
192.168.20.22 | CHANGED | rc=0 >> [root@xuzhichao ~]# ansible 192.168.20.22 -m shell -a 'echo 123456 | passwd --stdin xu1'
192.168.20.22 | CHANGED | rc=0 >>
Changing password for user xu1.
passwd: all authentication tokens updated successfully.
注意:调用bash
执行命令 类似cat /tmp/stanley.md | awk -F'|' '{print $1,$2}' &> /tmp/example.txt
这些复杂命令,即使使用shell
也可能会失败,解决办法:写到脚本中,copy
到远程,执行,再把需要的结果拉回执行命令的机器。
注意:虽然可以使用shell模块完成绝大多数操作,但是shell
模块无法很好的保证ansible
的幂等性,因此建议使用以下各个专用模块完成特定的功能,可以保证幂等性。
ansible(4)--ansible的command和shell模块的更多相关文章
- Ansible系列(二):选项和常用模块
html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...
- ansible执行shell模块和command模块报错| FAILED | rc=127 >> /bin/sh: lsof: command not found和| rc=2 >> [Errno 2] No such file or directory
命令: ansible -i hosts_20 st -m shell -a 'service zabbix_agentd star' -K --become ansible -i hosts_2 ...
- ansible模块之command、shell、script、file、copy、fetch
前戏 ansible 批量在远程主机上执行命令 openpyxl 操作excel表格 puppet ansible slatstack ansible epel源 第一步: 下载epel源 wget ...
- ansible模块command、shell、raw、script
简介 环境: ansible端: ip:192.168.100.129 hostname:node1.lansgg.com client端: ip:192.168.100.131 hostname:v ...
- ansible使用shell模块在受控机上执行命令(ansible2.9.5)
一,ansible的shell模块和command模块的区别? shell模块:在远程主机上执行主控端发出的shell/python脚本 command模块:不能调用shell指令,没有bash的环境 ...
- ansible command和shell的区别
1.command模块不支持管道符和变量等,如果要使用这些,需要shell模块. 2.在使用ansible中的时候,默认的模块是-m command,从而模块的参数不需要填写,直接使用即可
- ansible shell模块
[root@ftp:/root] > ansible ansible01 -u root -k -m shell -a 'hostname' SSH password: ansible01 | ...
- ansible笔记(6):常用模块之命令类模块
ansible笔记():常用模块之命令类模块 command模块 command模块可以帮助我们在远程主机上执行命令 注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处 ...
- ansible笔记(5):常用模块之命令类模块
1.command模块 它的作用是帮助我们在远程主机上执行命令. [注意]使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令 ...
- Ansible自动化搭建及工具集和常见模块、命令详情(重点)
一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...
随机推荐
- arch linux安装并简单配置zsh
1.安装zsh sudo pacman -S zsh 2.设置默认zsh 列出所有已安装shell chsh -l 要为您的用户设置一个默认值 chsh -s /full/path/to/shell ...
- 使用fiddler抓取HTTPS的数据包(抓取App端的数据包)
众所周知,我们在做接口测试的时候有两种情况: 第一种是先拿到接口测试规范文档,再去做接口测试. 第二种是没有接口文档,只有通过自己抓包. 那么说到抓包,就不得不说抓包工具,对于浏览器web端,我们只需 ...
- ET介绍——分布式Actor模型
Actor模型 Actor介绍 在讨论Actor模型之前先要讨论下ET的架构,游戏服务器为了利用多核一般有两种架构,单线程多进程跟单进程多线程架构.两种架构本质上其实区别不大,因为游戏逻辑开发都需要用 ...
- list集合中的实现类Vector
Vector: 它底层也是用数组来存数据对象的,但它是唯一一个线程安全的,线程安全也就意味着时间长,效率慢,如果是单一线程的话,建议不使用该实现类 add(E element): 将指定的元素追加到此 ...
- #01背包#洛谷 2340 [USACO03FALL]Cow Exhibition G
题目 有\(n\)个物品,对于第\(i\)个物品, 有两种属性,第一种属性为\(x_i\),第二种属性为\(y_i\) 问选择若干个物品使得\(\sum{x_j}\geq 0\)且\(\sum{y_j ...
- AJAX 前端开发利器:实现网页动态更新的核心技术
AJAX AJAX是开发者的梦想,因为你可以: 在不重新加载页面的情况下更新网页 在页面加载后请求来自服务器的数据 在页面加载后接收来自服务器的数据 在后台向服务器发送数据 HTML页面 <!D ...
- HarmonyOS:NativeWindow 开发指导
场景介绍 NativeWindow是HarmonyOS本地平台化窗口,表示图形队列的生产者端.开发者可以通过NativeWindow接口进行申请和提交Buffer,配置Buffer属性信息. 针对 ...
- k8s之hostPath存储卷
一.简介 hostPath:用于将目录从工作节点的文件系统挂载到pod中. 数据的生命周期与节点相同.我们知道,虽然hostPath卷实现pod中数据存储到节点的文件系统中,但是pod的调度不是固定的 ...
- js es6 标签模板还原字符串
前言 模板字符串的功能,它可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串.这被称为"标签模板"功能(tagged template). 举个栗子: function ...
- 一些奇奇怪怪的js知识
0.关于前端为什么typeof null 得到的结果是 object 对于 null 来说,很多人会认为他是个对象类型,其实这是错误的. 虽然 `typeof null` 会输出 `object`,但 ...