一,ansible的shell模块和command模块的区别?

shell模块:在远程主机上执行主控端发出的shell/python脚本

command模块:不能调用shell指令,没有bash的环境变量,也不能使用shell的一些操作,在遇到"<",">","|","&"将会终止。

它不支持变量、重定向、管道符等,这些操作需要用shell模块执行.

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

对应的源码可以访问这里获取: https://github.com/liuhongdi/

说明:作者:刘宏缔 邮箱: 371125307@qq.com

二,shell模块执行命令的例子:

1,进入指定的目录后执行指令:

# chdir : 指定一个目录,在执行对应的命令之前,会先进入到 chdir 参数指定的目录下

  1. [liuhongdi@centos8 ~]$ ansible yujian -m shell -a "chdir=/usr/local/soft pwd;"
  2. 121.122.123.47 | CHANGED | rc=0 >>
  3. /usr/local/soft

2,检查nginx服务是否在进程中?

用shell可以使用管道符,比如查看远程受控端nginx服务是否启动

说明;用command模块就会报错,因为不支持管道。

这是shell模块和command模块的主要区别

#grep -v grep 不看包含有grep字符串的进程

  1. [liuhongdi@centos8 ~]$ ansible yujian -m shell -a "ps auxfww | grep nginx: | grep -v grep"
  2. 121.122.123.47 | CHANGED | rc=0 >>
  3. root 7491 0.0 0.0 50412 3340 ? Ss Mar11 0:00 nginx: master process /usr/soft/openresty/nginx/sbin/nginx
  4. nginx 7492 0.0 0.0 82576 7756 ? S Mar11 0:12 \_ nginx: worker process
  5. nginx 7493 0.0 0.0 81892 5940 ? S Mar11 0:00 \_ nginx: worker process
  6. nginx 7494 0.0 0.0 81892 7184 ? S Mar11 0:00 \_ nginx: worker process
  7. nginx 7495 0.0 0.0 81892 5940 ? S Mar11 0:00 \_ nginx: worker process
  8. nginx 7496 0.0 0.0 81892 5940 ? S Mar11 0:00 \_ nginx: worker process
  9. nginx 7497 0.0 0.0 81892 7056 ? S Mar11 0:00 \_ nginx: worker process
  10. nginx 7498 0.0 0.0 81892 5940 ? S Mar11 0:00 \_ nginx: worker process
  11. nginx 7499 0.0 0.0 81892 5940 ? S Mar11 0:00 \_ nginx: worker process

3,把命令执行结果保存到重定向文件

说明:command模块不支持重定向

  1. [liuhongdi@centos8 ~]$ ansible yujian -m shell -a "chdir=/data/site/think_www git status >> /home/webop/work/gitstatus.txt"
  2. 121.122.123.47 | CHANGED | rc=0 >>

登录到受控端,查看生成的结果文件

  1. [root@blog ~]$ cd /home/webop/work
  2. [root@blog work]$ more gitstatus.txt
  3. On branch master
  4. Your branch is up to date with 'origin/master'.
  5.  
  6. nothing to commit, working tree clean

4,常用的一个例子:从受控端使用git发布代码

#warn=no 不理会警告信息

  1. [liuhongdi@centos8 ~]$ ansible yujian -m shell -a "chdir=/data/site/think_www warn=no git pull origin master" --become --become-method=sudo --become-user=root

5,常用的一个例子:查看服务器空间使用情况

  1. [liuhongdi@centos8 work]$ ansible yujian -m shell -a "df -h | grep /dev/vd"
  2. 121.122.123.47 | CHANGED | rc=0 >>
  3. /dev/vda1 100G 14G 87G 14% /
  4. /dev/vdb1 500G 3.6G 497G 1% /databak

三,查看ansible的版本

  1. [root@centos8 liuhongdi]# ansible --version
  2. ansible 2.9.5

ansible使用shell模块在受控机上执行命令(ansible2.9.5)的更多相关文章

  1. ansible使用script模块在受控机上执行脚本(ansible2.9.5)

    一,ansible的script模块的用途 script 模块用来在远程主机上执行 ansible 管理主机上的脚本, 即:脚本一直存在于 ansible 管理主机本地, 不需要手动拷贝到远程主机后再 ...

  2. ansible用get_url模块在受控机下载文件(ansible2.9.5)

    一,ansible的get_url模块用途: get_url模块可以在受控机下载文件 可以理解成从受控端执行wget 下载的url支持:http | https | ftp   三种协议 说明:刘宏缔 ...

  3. ansible使用setup模块查看受控机的信息(ansible2.9.5)

    一,ansible的setup模块的用途: 用来获取主机的信息 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的 ...

  4. ansible用user/group模块管理受控机上的用户和组(ansible2.9.5)

    一,ansible的user/group模块的用途: ansible的user模块用来实现:生成用户.删除用户等用户的管理ansible的group模块用来实现:生成组.删除组等组的管理 说明:刘宏缔 ...

  5. ansible使用file模块管理受控机的目录与文件(ansible2.9.5)

    一,ansible的file模块的用途 file 模块实现对文件的基本操作. 例如: 创建文件或目录 删除文件或目录 修改文件权限等 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https:// ...

  6. Ansible快速实战指南----多机自动化执行命令、部署神器

                                      1.需求: 需要在多台主机上,发送文件.执行命令,进行快速部署 2.ansible 远程复制文件 例子:在当前节点(20.88.14 ...

  7. Python3学习之路~9.1 paramiko模块:实现ssh执行命令以及传输文件

    我们一般使用linux的时候,都是在Windows上安装一个ssh客户端连接上去.那么从一台linux如何连接到另一条linux呢?使用ssh命令即可,因为每台linux机器自己都有一个ssh客户端. ...

  8. shell学习笔记3-后台执行命令

    cron 系统调度进程,使用它在每天的某时间或一周.一月的不同时间运行 at 使用它在一个特点的时间允许一些特殊的作业 & 使用它在后台允许一个占用时间不长的进程 Nohup 使用它在后台运行 ...

  9. ansible通过yum/dnf模块给受控机安装软件(ansible2.9.5)

    一,使用yum/dnf模块要注意的地方: 使用dnf软件安装/卸载时,需要有root权限, 所以要使用become参数 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnb ...

随机推荐

  1. 《Java从入门到失业》第四章:类和对象(4.1):初识类和对象

    4类和对象 在第一章曾经简单介绍过,在面向对象的世界里,一切事物皆对象,当解决一个问题的时候,我们先会考虑这个问题会涉及到哪些事物,然后把事物抽象成类,当时还画了一张图如下: 从本章开始,我们一点一点 ...

  2. 解决ExcelReport导出Excel报Number of rules must not exceed 3错误的问题

    报错信息: Number of rules must not exceed 3 [ArgumentException: Number of rules must not exceed 3] NPOI. ...

  3. 解决spark streaming集成kafka时只能读topic的其中一个分区数据的问题

    1. 问题描述 我创建了一个名称为myTest的topic,该topic有三个分区,在我的应用中spark streaming以direct方式连接kakfa,但是发现只能消费一个分区的数据,多次更换 ...

  4. vue简单案例_动态添加删除用户数据

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. JUC使用

    1.什么是JUC 源码 + 官方文档 面试高频问! java.util 工具包.包.分类 业务:普通的线程代码 Thread Runnable 没有返回值.效率相比入 Callable 相对较低! 2 ...

  6. 云计算openstack共享组件——Memcache 缓存系统(4)

    一.缓存系统 一.静态web页面: 1.在静态Web程序中,客户端使用Web浏览器(IE.FireFox等)经过网络(Network)连接到服务器上,使用HTTP协议发起一个请求(Request),告 ...

  7. Arnold变换(猫脸变换)

    Arnold变换是Arnold在遍历理论研究中提出的一种变换.由于Arnold本人最初对一张猫的图片进行了此种变换,因此它又被称为猫脸变换.Arnold变换可以对图像进行置乱,使得原本有意义的图像变成 ...

  8. C++重载>>和<<(输入和输出运算符)详解

    转载:http://c.biancheng.net/view/2311.html 在C++中,标准库本身已经对左移运算符<<和右移运算符>>分别进行了重载,使其能够用于不同数据 ...

  9. SpringBoot-06-模板引擎Thymeleaf

    6. 模板引擎 Thymeleaf Thyme leaf 英译为 百里香的叶子. 模板引擎 ​ 以前开发中使用的jsp就是一个模板引擎,但是springboot 以jar的方式,并且使用嵌入式的tom ...

  10. Oracle 数据库导入数据和编码问题

    配置 control 文件: load data characterset utf8 append into table role_res_gold fields terminated by ';' ...