Anisble中剧本的应用

1.什么是playbook及playbook的组成

1. Playbook 的功能
playbook 是由一个或多个 play 组成的列表
Playboot 文件使用 YAML 来写的
2. YAML
简介:
是一种表达资料序列的格式 类似 XML
Yet Another Markup Language
3. 特点
可读性好
和脚本语言交互性号
易于实现
适用程序执行流梳理方式
可扩展性强
4. 语法简介
次行一般书写文件内容
缩进严格
大小写敏感
key / value 可以多行书写也可一行书写 一行书写用 隔开
value 可以是个字符串 也可是 list
一个 play 需要包括 name tasks
name 是描述
tasks 是动作
一个 name 只能包含一个 task
扩展名称 yml 或者 yaml

vim test.yml 

        - name: test playbook
          hosts: all
          tasks:
            - name: show messages
              debug:
                msg: hello westos

            - name: user
              user:
                name: linux
                state: absent

ansible-playbook test.yml

为了书写方便,我们可以编辑vim设定技巧 

vim ~/.vimrc 

        autocmd FileType yaml setlocal ai ts = 2 sw = 2 et

setlocal 设定当前文件
ai 自动退格对齐 auto indent
ts tab建长度为2空格 tabstop=2
sw 缩进长度为2 shiftwidth=2
et tab键变成空格 expandtab
Playbook 的核心组件
name可选建议使用多用于说明
hosts受控主机列表
tasks
任务
# 用与选择执行部分代码

2.playbook创建用户

在受控主机中创建一个用户 名字为westosuser id为6666,组为6666,附加组为21,密码为westos

vim user.yaml 

- name: create user
  hosts: all
  tasks:
    - name: create group
      group:
        gid: 6666
        name: westosuser
        state: present

    - name: create user
      user:
        name: westosuser
        uid: 6666
        group: 6666
        groups: 21
        password: "{{ westos | password_hash('sha512') }}"

ansible-playbook user.yaml -e westos=westos 

3.列表和字典

YAML 列表
[Linux,C ++ ,Java,Python]
- Linux
- C ++
- Java
- Python
YAML 的字典
字典作用存放键值
name : westos
age : 12
jobs : linux
{name : "westos", age : " 12 ", jobs : "linux"}

例如:刚才的练习可以写为

vim user1.yaml

        - name: create user
          hosts: all
          tasks:
            - group: gid=6666 name=westosuser state=present

            - user: name=westosuser uid=6666 group=6666 groups=21 password="{{ westos | password_hash('sha512') }}"

4.playbook的组成及命令常用参数

playbook 执行命令
ansible - playbook xxx.yml ...
--check|-C检测
--syntax-checkcheck language
--list-hosts 列出hosts
--list-tags 列出tag
--list-tasks 列出task
--limit 指定执行主机
-v -vv现实过程
检测但不执行
ansible-playbook test.yml --check

5.playbook小项目实践之部署ftp服务

给受控主机安装ftp并且使之可以连接

vim vsftpd.yaml

        - name: set ftp server
          hosts: all
          tasks:
            - name: install vsftpd
              dnf:
                name: vsftpd
                state: present

            - name: start vsftpd
              service:
                name: vsftpd
                state: started
                enabled: yes

            - name: config vsftpd.conf
              lineinfile:
                path: /etc/vsftpd/vsftpd.conf
                        regexp: "anonymous_enable=NO"
                line: "anonymous_enable=YES"

            - name: restart vsftpd
              service:
                name: vsftpd
                state: restarted

            - name: config firewalld
              firewalld:
                service: ftp
                state: enabled
                permanent: yes
                immediate: yes

6.playbook实验小项目之部署apache

安装apache并且在默认发布页面显示www.westos.org

vim apache.yaml

        - name: set apache server
          hosts: all
          tasks:
            - name: install apache
              dnf:
                name: httpd
                        state: present

            - name: start apache
              service:
                name: httpd
                state: started
                enabled: yes

            - name: create index.html
              copy:
                dest: /var/www/html/inndex.html
                content: "www.westos.org"

            - name: config firewalld
              firewalld:
                service: http
                state: enabled
                permanent: yes
                immediate: yes

7.playbook中的tags

tags设定标签

列出所有标签

ansible-playbook apache.yaml --list-tags

运行指定标签

ansible-playbook apache.yaml --tags="install_apache,create_index.html"

跳过指定标签

ansible-playbook apache.yaml --skip-tags="install_apache,create_index.html" 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/227340.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java+Swing: 登录和重置按钮的点击事件 整理6

1. 在Login类中给按钮添加事件 // 按钮添加鼠标点击事件loginButton.addActionListener();resetButton.addActionListener(); 2. 创建一个事件处理的类, 该类实现了ActionListener package com.handler;/*** Author:xiexu* Date:2023/12/7 13…

Python面向对象③:封装【侯小啾Python基础领航计划 系列(二十一)】

Python面向对象③:封装【侯小啾Python基础领航计划 系列(二十一)】 大家好,我是博主侯小啾, 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔…

simulink enable模块——使能子系统案例仿真分析

1.案例分析 仍以一个简单的乘法增益案例分析 分析:可以看到,在满足条件性才条用使能子系统,在t1s和3s时刻,进行增益操作,这和上篇博客中的触发trigger子系统相同的作用。 simulink trigger模块使用——多种调用案例分…

Pixyz Studio 和 Pixyz Scenario Processor 使用入门

介绍 Pixyz产品官网 下载、安装与技术文档 官网介绍:Pixyz 支持超过 45 种工业文件格式,包括 CATIA、JT、STEP、IFC、PVZ、NWD、USD 及 glTF。包括 CAD、曲面细分/网格模型、点云等。Unity 中的资产将实时关联到原始数据,可自动更新文件的修…

HL7/FHIR 是什么

如果你对上面 2 个单词不熟悉的话,那就需要先脑补下了。 HL7 HL7 可以认为是一个标准化的组织,这个组织主要对标准进行控制。 如果你希望在医疗系统中对数据进行交换,通常 HL7 现在就是事实上的标准了。 FHIR FHIR – Fast Health Inter…

华清远见嵌入式学习——QT——作业1

作业要求&#xff1a; 代码&#xff1a; ①&#xff1a;头文件 #ifndef LOGIN_H #define LOGIN_H#include <QWidget> #include <QLineEdit> //行编辑器类 #include <QPushButton> //按钮类 #include <QLabel> //标签类 #include <QM…

Java 实现TCP一对一聊天,UDP协议实现群聊

用TCP编程实现一对一式聊天&#xff0c;并用多线程解决了处于同一线程中的问题。 客户端代码&#xff1a;mport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.ut…

c++ - 警告 : treating ‘c-header‘ input as ‘c++-header‘ when in C++ mode, 此行为已弃用

一、问题出现 在进行多文件编译的时候报错 二、原因 我们多文件编译的时候加了头文件 三、解决办法 去掉头文件&#xff0c;只编译源文件

流星雨效果

文章目录 html css实现jscanvas实现 html css实现 对于 HTML 来说&#xff0c;:root 表示 元素&#xff0c;除了优先级更高之外&#xff0c;与 html 选择器相同。带有前缀 – 的属性名&#xff0c;比如 --example–name&#xff0c;表示的是带有值的自定义属性&#xff0c;其…

Threejs项目实战之一:汽车外观换肤效果三维展示

目录 最终效果1 创建项目2 安装插件3 编写代码3.1 准备工作3.2 代码编写3.2.1 在template标签中构建html页面3.2.2 在style标签中构建页面样式文件3.2.3 在script标签中编写js代码 最终效果 先看下最终实现的效果 接下来&#xff0c;我们就从创建项目开始&#xff0c;一步一步…

ChatGPT/GPT4科研实践篇: AI绘图+论文写作+编程

1、熟练掌握ChatGPT提示词技巧及各种应用方法&#xff0c;并成为工作中的助手。 2、通过案例掌握ChatGPT撰写、修改论文及工作报告&#xff0c;提供写作能力及优化工作 3、熟练掌握ChatGPT融合相关插件的应用&#xff0c;完成数据分析、编程以及深度学习等相关科研项目。 4、…

【Windows本地端口占用脚本自动化】

本地启动多个Java微服务&#xff0c;因为停电或者内存回收原因&#xff0c;IDEA直接退出&#xff1b;再次启动各个服务会提示端口占用。 每次都cmd输入命令手动Kill比较繁琐&#xff0c;可以把此脚本放在桌面上作为一个小工具&#xff0c;运行即可。 代码(核心部分是chatGPT自…

k8s中的Pod网络;Service网络;网络插件Calico

Pod网络&#xff1b;Service网络&#xff1b;网络插件Calico Pod网络 在K8S集群里&#xff0c;多个节点上的Pod相互通信&#xff0c;要通过网络插件来完成&#xff0c;比如Calico网络插件。 使用kubeadm初始化K8S集群时&#xff0c;有指定一个参数–pod-network-cidr10.18.0…

【react】动态页面转换成html文件下载,解决样式问题

需求 今天遇到一个需求&#xff0c;挺恶心人的&#xff0c;将一个在线文档页面&#xff0c;可以导出成为html页面查看。 看到网上有使用fs模块&#xff0c;通过react的ReactDOMServer.renderToStaticMarkup将组件转成html字符串&#xff0c;输出文件了。 但是我尝试了&#x…

返回列表中满足指定条件的连续元素:只返回第一个不符合条件元素之前的各元素itertools.takewhile()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 返回列表中满足指定条件的连续元素&#xff1a; 只返回第一个不符合条件元素之前的各元素 itertools.takewhile() [太阳]选择题 请问以下代码输出的结果是&#xff1f; import itertools a …

在VSCode中运行Python脚本文件时如何传参

以下实验所处的操作系统环境说明&#xff1a; OS版本MacOSMonterey 12.1VSCodeOctober 2023 (version 1.84.2) 一、背景 在 VSCode 中写好 Python 脚本后&#xff0c;如果要运行起来&#xff0c;可以怎么做呢&#xff1f; 一般有以下几种方式&#xff1a; 1、直接在 VSCode…

【ARM Trace32(劳特巴赫) 使用介绍 11 -- Trace32 ARMv8/v9 系统寄存器读写】

文章目录 Trace32 ARMv8/v9 系统寄存器读写 Trace32 ARMv8/v9 系统寄存器读写 本文主要介绍如何使用trace32 来对 ARMv8 的系统寄存器及debug 寄存器进行配置&#xff0c;具体配置方法如下&#xff1a; 步骤1&#xff1a; 步骤2&#xff1a; 步骤3&#xff1a; 步骤4&#xf…

商务与经济统计案例分析:3-1Pelican 商店——python 实现

商务与经济统计案例分析:3-1Pelican 商店 要求Python实现 要求 1.净销售额的描述统计量和各种不同类型顾客的净销售额的描述统计量。 2.关于年龄与净销售额之间关系的描述统计量。 Python实现 0.相关分析&#xff1a;2-1案例 1.净销售额的描述统计量和各种不同类型顾客的净销…

【Docker二】docker网络模式、网络通信、数据管理

目录 一、docker网络模式&#xff1a; 1、概述 2、docker网络实现原理&#xff1a; 3、docker的网络模式&#xff1a; 3.1、bridge模式&#xff1a; 3.2、host模式&#xff1a; 3.3、container模式&#xff1a; 3.4、none模式&#xff1a; 3.5、自定义网络模式&#xf…

stateflow——如何查看状态机中参数变化及状态机断点调试

法一&#xff1a;使用Data Inspector 点击“符号图窗”和“属性”&#xff0c;如图&#xff1b;在选择变量n并右键点击inspector&#xff0c;最后在logging&#xff0c;如图 法二&#xff1a;log active state 和法一类似使用data inspector查看&#xff0c;类似的查看方法和…