ansible模块command、shell、raw、script

环境:

ansible端:

ip:192.168.100.129

hostname:node1.lansgg.com

client端:

ip:192.168.100.131

hostname:v2.lansgg.com

ip:192.168.100.132

hostname:v3.lansgg.com

[[email protected] ansible]# pwd
/etc/ansible
[[email protected] ansible]# cat hosts
[testservers]
192.168.100.131
192.168.100.132
[[email protected] ansible]#

1、命令格式

SYNOPSIS
       ansible <host-pattern> [-f forks] [-m module_name] [-a args]

模块命令详细信息查询

ansible-doc moduleName

如:

[[email protected] ansible]# ansible-doc command
less 436
Copyright (C) 1984-2009 Mark Nudelman

less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
> COMMAND

  The [command] module takes the command name followed by a list of
  space-delimited arguments. The given command will be executed on all
  selected nodes. It will not be processed through the shell, so
  variables like `$HOME‘ and operations like `"<"‘, `">"‘, `"|"‘, and
  `"&"‘ will not work (use the [shell] module if you need these
  features).

Options (= is mandatory):

- chdir
        cd into this directory before running the command [Default:
        None]

- creates
        a filename, when it already exists, this step will *not* be
        run. [Default: None]

- executable
        change the shell used to execute the command. Should be an
        absolute path to the executable. [Default: None]

= free_form
        the command module takes a free form command to run.  There is
        no parameter actually named ‘free form‘. See the examples!
        [Default: None]

- removes
        a filename, when it does not exist, this step will *not* be
        run. [Default: None]

- warn
        if command warnings are on in ansible.cfg, do not warn about
        this particular line if set to no/false. [Default: True]

Notes:  If you want to run a command through the shell (say you are using
        `<‘, `>‘, `|‘, etc), you actually want the [shell] module
        instead. The [command] module is much more secure as it‘s not
        affected by the user‘s environment.  `creates‘, `removes‘, and
        `chdir‘ can be specified after the command. For instance, if
        you only want to run a command if a certain file does not
        exist, use this.

EXAMPLES:
# Example from Ansible Playbooks.
- command: /sbin/shutdown -t now

# Run the command if the specified file does not exist.
- command: /usr/bin/make_database.sh arg1 arg2 creates=/path/to/database

# You can also use the ‘args‘ form to provide the options. This command
# will change the working directory to somedir/ and will only run when
# /path/to/database doesn‘t exist.
- command: /usr/bin/make_database.sh arg1 arg2
  args:
    chdir: somedir/
    creates: /path/to/database

解释:command为模块名, chdir、create 等此模块特有的参数

2、ansible模块之command

此模块为ansible默认执行的模块,也是常用模块之一

示例: 查看远程主机的passwd最后两行

[[email protected] ansible]# ansible testservers -m command -a ‘tail -2 /etc/passwd‘
192.168.100.131 | success | rc=0 >>
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

192.168.100.132 | success | rc=0 >>
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin

使用参数,修改当然工作目录

[[email protected] ansible]# ansible testservers -m command -a ‘pwd‘
192.168.100.132 | success | rc=0 >>
/root

192.168.100.131 | success | rc=0 >>
/root

[[email protected] ansible]# ansible testservers -m command -a ‘chdir=/tmp/ pwd‘
192.168.100.131 | success | rc=0 >>
/tmp

192.168.100.132 | success | rc=0 >>
/tmp

关于ansbile工具的shell、command、script、raw模块的区别和使用场景

command模块 [执行远程命令]

[[email protected] ansible]# ansible testservers -m command -a ‘uname -n‘

script模块 [在远程主机执行主控端的shell/python脚本 ]

[[email protected] ansible]# ansible testservers -m script -a ‘/etc/ansible/test.sh

shell模块 [执行远程主机的shell/python脚本]

[[email protected] ansible]# ansible testservers -m shell -a ‘bash /root/test.sh‘

raw模块 [类似于command模块、支持管道传递]

[[email protected] ansible]# ansible testservers -m raw -a "ifconfig eth0 |sed -n 2p |awk ‘{print \$2}‘ |awk -F: ‘{print \$2}‘"
时间: 2024-12-21 08:32:27

ansible模块command、shell、raw、script的相关文章

Ansible 命令相关模块command, shell, raw, expect, script, telnet[转]

本文主要介绍Ansible的几个命令模块,包括: command - 在远程节点上执行命令 shell - 让远程主机在shell进程下执行命令 script - 将本地script传送到远程主机之后执行 raw - 执行低级的和脏的SSH命令 expect - 执行命令并响应提示 telnet - 执行低级的和脏的telnet命令 command模块 简介 command模块用于在给的的节点上运行系统命令,比如echo hello. 它不会通过shell处理命令,因此不支持像$HOME这样的变

ansible之command和raw模块

command模块 command模块为ansible默认模块,不指定-m参数时,使用的就是command模块: comand模块比较简单,常见的命令都可以使用,但其命令的执行不是通过shell执行的,所以,像这些 "<", ">", "|", and "&"操作都不可以,运行中的命令不支持变量使用以及不支持管道: 示例:显示当前用户 [[email protected] ~]# ansible all -

ansible的安装与介绍、host-pattern格式、ansible的command模块、ansible的shell模块、ansible的script模块、ansible的copy模块

一.ansible的安装与介绍 ansible需要安装在管控机上 首先安装wget(如果机器上有可以忽略) 下载安装wget yum install -y wget 将epel源下载安装到本地 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 安装ansible yum install -y ansible ansible的命令格式 Usage: ansible <host-pattern>

ansible之shell和script模块

使用shell模块,在远程命令通过/bin/sh来执行:所以,我们在终端输入的各种命令方式,都可以使用: 但是我们自己定义在.bashrc/.bash_profile中的环境变量shell模块由于没有加载,所以无法识别:如果需要使用自定义的环境变量,就需要在最开始,执行加载自定义脚本的语句: 对shell模块的使用可以分成两块: shell模块用法和command参数一样 [[email protected] ~]# ansible-doc -s shell less 436 Copyright

ansible 模块学习

Ansible通过模块的方式来完成一些远程的管理工作.可以通过ansible-doc -l查看所有模块,可以使用ansible-doc -s module来查看某个模块的参数,也可以使用ansible-doc help module来查看该模块更详细的信息.默认的模块位置在/usr/share/ansible.下面列出一些常用的模块: 1. setup 可以用来查看远程主机的一些基本信息: ansible -i /etc/ansible/hosts test -m setup 2.ping 可以

ansible模块简介

http://openskill.cn/article/130 以上链接是详细介绍 一.copy模块 把主控端文件拷贝到指定节点上:ansible 主机名 -m copy -a 'src=/原路径 dest=/目标路径' 二.file模块 目的:更改指定节点文件属性 ansible 主机名file -a  "dest=/目标路径 mode=755" 其中mode是修改目标路径的属性 三.cron模块 目的:定义计划任务(每三分钟到主机更新一次时间) ansible all -m cro

ansible 模块

一.什么是ansible 什么是ansible?官方的title是"Ansibleis Simple IT Automation"->简单的自动化IT工具.ansible功能:自动化部署APP:自动化管理配置项:自动化的持续交付:自动化的(AWS)云服务管理.其本质就是在一个台或者几台服务器上,批量的执行命令. fabric和ansible有什么差别呢?简单来说fabric像是一个工具箱,提供了很多好用的工具,用来在Remote执行命令,而ansible则是提供了一套简单的流程,

第4天:Ansible模块

Ansible对远程服务器的实际操作实际是通过模块完成的,其工作原理如下: 1)将模块拷贝到远程服务器 2)执行模块定义的操嘴,完成对服务器的修改 3)在远程服务器中删除模块 需要说明的是,Ansible中的模块是幂等的.也就是说,多次执行相同的操作,只有第一次会起作用.这也是在编写自定义Ansible模块的需要注意的地方. Ansible提供了大量的模块,ansible-doc命令用于在命令行查看模块列表,也可以使用该工具在命令行获取模块帮助信息 ansible-doc -l 下面命令用户获取

ansible模块yum、services、setup

ansible模块 yum: [[email protected] ~]# ansible-doc -s yum less 436 Copyright (C) 1984-2009 Mark Nudelman less comes with NO WARRANTY, to the extent permitted by law. For information about the terms of redistribution, see the file named README in the l