ansible组件-playbook学习笔记

news/2024/7/3 2:51:36

playbook的基础组件

name

定义playbook或者task的名称

hosts

用于指定要执行指定任务的主机

user

用于指定远程主机上的执行任务的用户

task

任务列表

vars

定义变量

vars_files

定义变量文件

notify

任务执行结果如果是发生更改的则触发定义在handler的任务

handlers

用于当前关注资源发生变化时采取一定指定的操作

示例1

> # vim test.yml
> - hosts: all
>   user: root
>   tasks:
>   - name: playbook_test
>     shell: touch /a.txt
>     tags: chuang jian a.txt

参数解释

hosts参数指定了对那些主机进行操作
user参数指定了使用什么用户登陆远程主机操作
tasks指定了一个任务,其下面的name参数同样是对任务的描述,在执行过程中会打印出来
tags给指定的任务定义一个调用标识

语法检测

# ansible-playbook --syntax-check test.yml

测试运行

# ansible-playbook -C test.yml

运行playbook

# ansible-playbook test.yml

只运行指定标记的任务

-t tags
# ansible-playbook -t 标记名称 test.yml

跳过某个被标记的任务

--skip-tags= 标记名称
# ansible-playbook --skip-tags=标记名称 test.yml

从某个任务开始往下运行

--start-at-task 任务名称
# ansible-playbook --start-at-task "任务名称" test.yml

示例2:使用变量

>#vim create_user.yml
>- name: create_user
>  hosts: web1
>  user: root
>  gather_facts: false
>  vars:
>  - user: "tuerqi"
>  tasks:
>  - name: create user
>    user: name="{{ user }}"

示例3:条件执行

># vim when.yml
>- hosts: web1
>  user:root
>  gather_facts: True
>  tasks:
>  - name: use when
>    shell: touch /bali.txt
>    when: ansible_hostname == "web1"

示例4:条件触发

># vim handlers.yml
>- name: handlers test
>  hosts: web1
>  user: root
>  tasks:
>  - name: test copy
>    copy: src=/etc/passwd dest=/tmp/handlers.txt
>    notify: test handlers
>  hanlers:
>  - name: test handlers
>    shell: echo "www.lala.com" >> /tmp/handlers.txt

解释说明

只有 copy 模块真正执行后,才会去调用下面的 handlers 相关的操作

转载于:https://blog.51cto.com/13523939/2074049


http://lihuaxi.xjx100.cn/news/238817.html

相关文章

2018湖湘杯海选复赛Writeup

2018湖湘杯Writeup0x01 签到题0x02 MISC Flow0x03 WEB Code Check0x04 WEB Readflag0x05 WEB XmeO0x06 Reverse Replace0x07 MISC Disk0x08 Crypto Common Crypto0x09 Reverse HighwayHash640x10 Web Mynot0x01 签到题 关注合天智汇公众号,回复hxb2018得到flag。0x…

区块链技术简介

想知道更多区块链技术知识,请百度【链客区块链技术问答社区】链客,有问必答!!我最近看区块链简单介绍的时候会发现有的人就说其有良好的隐私性,但也有人说保护隐私性上有缺陷,今天就简单的对区块链的隐私做…

DELL RAID卡管理工具 MegaRAID Storage Manager(偏重RAID常用管理命令)

前言: 业务生产中大部分服务器RAID控制器使用的LSI产品,例如服务器:DELL、IBM、HP、浪潮、联想、华为。本文主要针对行业主流服务器DELL系列RAID卡管理,借住LSI产品管理软件MegaRAID Storage Manager (以下简称MSM&…

矩阵专职_新的篇章开始了-我将以专职技术作家的身份加入RunCloud

矩阵专职If you used to submit (or read) articles on the freeCodeCamp Medium publication, there is a chance that your article may have been edited by me (or by another member of the team of volunteer editors).如果您以前曾经在freeCodeCamp Medium出版物上提交(…

vue:虚拟dom的实现

Vitual DOM是一种虚拟dom技术,本质上是基于javascript实现的,相对于dom对象,javascript对象更简单,处理速度更快,dom树的结构,属性信息都可以很容易的用javascript对象来表示: let element{tagN…

Mac MySQL配置环境变量的两种方法

第一种: 1.打开终端,输入: cd ~ 会进入~文件夹 2.然后输入:touch .bash_profile 回车执行后, 3.再输入:open -e .bash_profile 会在TextEdit中打开这个文件(如果以前没有配置过环境变量,那么这…

再谈HOST文件

前几天弄了一个关于禁止打开某个网站的文章后,觉得这个HOST文件真的挺有意思的。并且也总是想把自己对它新的理解写下来(也许大家都明白了)以下是HOST文件的内容:# Copyright (c) 1993-1999 Microsoft Corp.## This is a sample H…

Dubbo配置文件详解

为新项目练手,把项目中用到的web service、RMI的服务改用DubboZookeeperSpring,网上找到几篇不错的配置详解 1.此篇博文主要从以下几种配置方式来讲 XML 配置文件方式、XML 配置文件方式、annotation 配置方式 https://www.cnblogs.com/chanshuyi/p/514…