ansible-playbook 使用详解

1.  playbook参数详解:

hosts:hosts 用于指定要执行指定任务的主机其可以是一个或多个由冒号分隔主机组。
user:root     指定远程主机上执行任务的用户
remote_user:root
vars:变量
tasks:任务
  - name:描述
module:options
如:serverice name=httpd state=running
 shell:/sbin/setenforce 0
handlers:触发条件
files:文件赋权
template:模板

tags 用于让用户选择运行或略过playbook中的部分代码。ansible具有幂等性因此会自动跳过没有变化的部分即便如此有些代码为测试其确实没有发生变化的时间依然会非常地长。

此时如果确信其没有变化就可以通过tags跳过此些代码片断。

循环:

循环with_items:
---
- hosts: testhost
 user: root
 tasks:
   - name: change mod for file
     file: path=/tmp/{{ item }} mode=600 owner=root group=root
     with_items:
       - 1.txt
       - 2.txt
- 3.txt

条件判断使用handlers模块:

---
- hosts: testhost
 remote_user: root
 tasks:
   - name: test copy
     copy: src=/tmp/1.txt dest=/tmp/2.txt
     notify: test handlers   
 handlers:
   - name: test handlers
    shell: echo "111111" >> /tmp/2.txt

如果要使用handlers模块,则需要调用notify: test handlers是handlers模块的name,要保持一致。

从ansible主上拷贝1.txt到远程服务器2.txt,只有到copy完成了,才会执行handlers。

条件判断条件when:

---
- hosts: testhost
 remote_user: root
 gather_facts: True
 tasks:
   - name: use when
     shell: touch /tmp/when.txt
     when: ansible_system_vendor == "IBM"

注意变量要写对,不能写数组,数组的要注意.

cat /tmp/when.yml :

时间: 2024-11-14 12:10:43

ansible-playbook 使用详解的相关文章

ansible常用模块详解

ansible常用模块详解: ansible <host-pattern> [-m module_name] [-a args] [options] #ansible命令格式  指定主机组或ip地址  指定调用模块   传递给模块的参数   ansible-doc -l #列出可用模块 ansible-doc -s model_name #查看指定模块详细用法 command:ansible默认模块,对指定主机执行命令,不能理解特殊字符 例:ansible web -a 'date' #对we

Ansible 常用模块详解(3)

title: Ansible 常用模块详解(3) date: 2018-12-01 15:22:11 tags: Ansible categories: Ansible copyright: true --- Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能,ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是an

ansible 原理及详解

简介 ansible是个什么东西呢?官方的title是"Ansible is Simple IT Automation"--简单的自动化IT工具.这个工具的目标有这么几项: 自动化部署APP: 自动化管理配置项: 自动化的持续交互: 自动化的(AWS)云服务管理: 所有的这几个目标从本质上来说都是在一个台或者几台服务器上,执行一系列的命令而已.通俗的说就是批量的在远程服务器上执行命令.当然,最主要的是它是基于 paramiko 开发的.这个paramiko是什么呢?它是一个纯Pytho

ansible配置安装详解

   前段时间把线上服务器域名的代码存放目录,日志目录,以及常用(nginx,php,nodejs,golang等)服务的安装目录都调整到统一的路径下,为方便使用ansible进行批量管理.以下是我在本地测试环境部署安装ansible的文档,让大家参考以下: 一.基础介绍 ========================================================================================== 1.简介 ansible是新出现的自动化运维

ansible hosts文件详解

# This is the default ansible 'hosts' file.## It should live in /etc/ansible/hosts##   - Comments begin with the '#' character#   - Blank lines are ignored#   - Groups of hosts are delimited by [header] elements#   - You can enter hostnames or ip add

Ansible安装部署及常用模块详解

Ansible命令使用 Ansible语法使用ansible <pattern_goes_here> -m <module_name> -a <arguments> -m NAME,–module-name=NAME:指定执行使用的模块 -u USERNAME,–user=USERNAME:指定远程主机以USERNAME运行命令 -s,–sudo:相当于Linux系统下的sudo命令 -USUDO_USERNAME,–sudo-user=SUDO_USERNAME:使用

ansible 模块之 copy模块详解

ansible copy 模块详解 ansible copy 模块主要用于文件或目录复制.详细如下: src ansible 端源文件或目录,空文件夹不复制 content 用来替代src 用于将指定的文件内容复制到远程文件 dest 客户端目标目录或文件,需要绝对路径 back_up 复制之前备份远程节点上的原始文件 directory_code 用于复制文件夹,新建文件会被复制,旧文件不会被复制 follow 支持link文件复制 force 覆盖远程主机不一致的内容 group 设定远程主

ansible playbook 详解

上篇文章介绍了 ansible 的安装配置及实例:http://msiyuetian.blog.51cto.com/8637744/1748143 下面这篇文章主要介绍 ansible 的 playbook 详解,playbook 就是相当于把模块或函数写入到配置文件里面,然后我们执行该配置文件来达到远程运维自动化的目的. 一.playbook的简单使用 1.创建文件实例 1)编辑配置文件 [[email protected] ~]# cd /etc/ansible/ [[email prote

轻量级自动化运维工具ansible之二:playbook详解

在介绍playbook之前,我们先了解一下YAML语言,因为playbook是用YAML语言编写的 一.YAML 1.YAML是一种可读性高的用来表达资料序列的语言,其语法和其他高阶语言类似,并且可以简单表达清单.散列表.标量等数据结构.所有的yaml文件都以"---"开头表示开始一个document,所有的列表元素以"-"开头,键值对用":",后面的空格是必须的下面是一个示例: ---   #打头符可省略 - name: John Smith