ansible playbook实践(二)-基础相关命令

ansible相关的命令:

ansible  用来执行ansible管理命令

ansible-doc 用来获取模块的帮助文档

ansible-playbook 当有众多任务时,可编写成playbook来运行

ansible的简单使用格式:

ansible HOST-PATTERN -m MOD_NAME -a MOD_ARGS

获取模块列表

ansible-doc -l 里面有众多模块,掌握一些常用的即可满足日常工作

ansible-doc -s modulename # 获取模块简要使用说明

示例:

[[email protected] ~]# ansible-doc -s shell
- name: Execute commands in nodes.
shell:
chdir: # cd into this directory before running the command
creates: # a filename, when it already exists, this step will *not* be run.
executable: # change the shell used to execute the command. Should be an absolute path to the executable.
free_form: # (required) The shell module takes a free form command to run, as a string. There‘s not an actual option named "free form". See the examples!
removes: # a filename, when it does not exist, this step will *not* be run.
stdin: # Set the stdin of the command directly to the specified value.
warn: # if command warnings are on in ansible.cfg, do not warn about this particular line if set to no/false.

里面标明了各个参数的含义,如果你想更详细的解释,可以把命令行中的-s去掉。

[[email protected] ~]# ansible all -m shell -a "chdir=/tmp date"
192.168.40.72 | SUCCESS | rc=0 >>
Thu Feb 8 10:46:45 CST 2018

192.168.40.73 | SUCCESS | rc=0 >>
Thu Feb 8 10:46:45 CST 2018

对于执行单个简单的模块,我们还可以这样用命令行来编写,但是当我们需要连接执行多个模块时,就得需要用到ansible-playbook命令了。我们可以把需要执行的任务写在一个文件中,然后依次执行。

[[email protected] playbook]# cat first_play.yml
---
- hosts: all
  remote_user: root
  gather_facts: no
  tasks:
    - name: ping test
      ping: 

    - name: execute remote shell
      shell: ps -eo pcpu,user,args | sort -r -k1 | head -n3
      register: ret

    - name: output msg
      debug: var=ret.stdout_lines

执行如下,加上-v(-vv -vvv)参数可以有更详细的信息输出:

[[email protected] playbook]# ansible-playbook -v first_play.yml
Using /etc/ansible/ansible.cfg as config file

PLAY [all] ********************************************************************************

TASK [ping test] **************************************************************************
ok: [192.168.40.72] => {"changed": false, "ping": "pong"}
ok: [192.168.40.73] => {"changed": false, "ping": "pong"}

TASK [execute remote shell] ***************************************************************
changed: [192.168.40.73] => {"changed": true, "cmd": "ps -eo pcpu,user,args | sort -r -k1 | head -n3", "delta": "0:00:00.010615", "end": "2018-02-08 11:04:19.939640", "rc": 0, "start": "2018-02-08 11:04:19.929025", "stderr": "", "stderr_lines": [], "stdout": "%CPU USER     COMMAND\n 2.0 root     sshd: [email protected]/0\n 0.6 root     /usr/bin/vmtoolsd", "stdout_lines": ["%CPU USER     COMMAND", " 2.0 root     sshd: [email protected]/0", " 0.6 root     /usr/bin/vmtoolsd"]}
changed: [192.168.40.72] => {"changed": true, "cmd": "ps -eo pcpu,user,args | sort -r -k1 | head -n3", "delta": "0:00:00.013069", "end": "2018-02-08 11:04:19.943902", "rc": 0, "start": "2018-02-08 11:04:19.930833", "stderr": "", "stderr_lines": [], "stdout": "%CPU USER     COMMAND\n 1.0 root     sshd: [email protected]/1\n 0.5 root     /usr/bin/vmtoolsd", "stdout_lines": ["%CPU USER     COMMAND", " 1.0 root     sshd: [email protected]/1", " 0.5 root     /usr/bin/vmtoolsd"]}

TASK [output msg] *************************************************************************
ok: [192.168.40.72] => {
    "ret.stdout_lines": [
        "%CPU USER     COMMAND",
        " 1.0 root     sshd: [email protected]/1",
        " 0.5 root     /usr/bin/vmtoolsd"
    ]
}
ok: [192.168.40.73] => {
    "ret.stdout_lines": [
        "%CPU USER     COMMAND",
        " 2.0 root     sshd: [email protected]/0",
        " 0.6 root     /usr/bin/vmtoolsd"
    ]
}

PLAY RECAP ********************************************************************************
192.168.40.72              : ok=3    changed=1    unreachable=0    failed=0
192.168.40.73              : ok=3    changed=1    unreachable=0    failed=0   

playbook采用yaml语法来编写,下一篇我们就来讲如何编写yaml文件。

原文地址:https://www.cnblogs.com/zejin2008/p/8430641.html

时间: 2024-11-09 21:25:43

ansible playbook实践(二)-基础相关命令的相关文章

Redis(二)相关命令

(一)简介 Redis 命令用于在 redis 服务上执行操作. 要在 redis 服务上执行命令需要一个 redis 客户端.Redis 客户端在我们之前下载的的 redis 的安装包中.Redis 客户端的基本语法为:redis-cli [[email protected] ~]# /usr/local/redis-3.2.9/src/redis-cli  127.0.0.1:6379> ping PONG 127.0.0.1:6379> 远程登录为: [[email protected]

k8s实践(二):基本概念、kubectl命令和资料分享

概念 1. Kubernetes简介 Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括: 基于容器的应用部署.维护和滚动升级 负载均衡和服务发现 跨机器和跨地区的集群调度 自动伸缩 无状态服务和有状态服务 广泛的 Volume 支持 插件机制保证扩展性 Kubernetes 发展非常迅速,已经成为容器编排领域的领导者. 2. Kubernetes核心组件 Kubernetes 主要由以下几个核心组件组成: etcd 保存了整个

ansible使用二(ansible playbook)

ansible playbook ansible playbooks 是使用ansible简单的配置管理部署系统的基础,使用YAML语法格式的配置文件.每一个playbook中包含一系列的任务.使用ansible playbook可以更方便的管理.维护多态主机. 1.yaml语法    yaml是”YAML Ain't a Markup Language”的缩写,即不是一种标记性语言,它是一种直观的能够被电脑识别的数据序列化格式,是一个可读性高并且容易被人类阅读,容易和脚本语言交互,用来表达资料

Linux基础--进程管理相关命令介绍(2)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有top,vmstat等. (1)top ①功能:用来查看CPU,内存以及进程的状态. ②用例: ③相关注释: load average表示负载,三个数值分别表示第1分钟,第5分钟,第10分钟 Cpu中us表示用户空间程序占用百分比,sy表示内核模式占用百分比,ni表示调整NICE值所占用的    CPU百分比,id表示CPU的空闲比例,wa表示等待磁盘IO完成所占用的时间比例,hi表示硬件中断占     据的百分比,si表示软中断所

Shell编程基础教程5--文本过滤、正则表达式、相关命令

5.文本过滤.正则表达式.相关命令    5.1.正则表达式(什么是正则表达式?正则表达式怎么进行匹配?常用命令)        简介:            一种用来描述文本模式的特殊语法            由普通字符(例如字符a到z)以及特殊字符(成为元字符,如/.*.?等)组成            匹配的字符串            文本过滤工具在某种情况下都支持正则表达式        基本元字符集及其含义            ^    只匹配行首,例子 ^a 表示匹配以a开头的

Linux之进程管理(2)相关命令之二

Linux之进程管理(2)相关命令之二 进程监控工具命令使用:uptime  top  vmstat  pmap  dstat uptime  命令 uptime - Tell how long the system has been running. 显示当前已经运行的时长及cpu核心处理状态 说明:显示系统当前时间,系统运行时长,以及当前上线人数,系统平均负载(一般按1.5.10分钟的平均负载,一般不会超过1). 选项及用法: uptime  [option] -p, --pretty  :

Linux基础--进程管理相关命令介绍(1)

本文主要介绍了Linux中进程管理的相关命令,涉及到的主要命令有pstree,ps. (1)pstree ①功能:用来查看进程树 ②用例: (2)ps ①功能:用来显示系统当前进程状态的命令 ②用例: ③相关用法: ps a:显示所有跟终端相关的进程 ps x:显示所有跟终端无关的进程 相关注释: STAT各代码含义: S:可中断的睡眠态 D:不可中断的睡眠态 R:运行或可运行 T:停止 Z:僵死 s:session leader l:多线程进程 +:前台进程 N:低优先级进程 <:高优先级进程

玩转linux第四天之用户及组管理类相关命令(二)

1    前言 本文档主要介绍用户及组管理类相关命令如:useradd .usermod.passwd.userdel.groupadd.groupmod\gpasswd.groupdel.hage,chsh,chfn,.id,w,who,whoami.wck,gourpck.su,并提供相应案例解释其含义. 学习这些基础命令是一个Linux爱好者需要具备的首要条件,让小编带领你们进入Linux的世界看看它的一颦一笑. 读者对象 本文档(本指南)主要适用于以下人员: Linux爱好者 2    

自动化运维Ansible实践(二)

上篇提到了ansible基本安装.配置及命令行使用,这篇分享下ansible的高级用法即playbook,在生产环境如果需要完成负责任务,如大批量服务安装配置等,可以采用playbook方式来完成,高效且易于维护. 第 1 章 Playbook基本使用 使用Playbook的好处特点? 易读的编排语言? 适合配置管理和应用部署? 非常适合部署复杂的工作先来认识一下Playbook自动部署Nginx main.yml hosts: webserversvars:hello: Ansible tas