首页 > 其他分享 >Ansible Playbook 简介

Ansible Playbook 简介

时间:2024-12-16 11:56:47浏览次数:10  
标签:tasks name 简介 ansible Ansible hosts Playbook playbook

你每做一件事,相当于扮演了一个角色, 你必须剧本, 做什么,该怎么做,做事的流程

  • Playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。

  • 通过 Playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系列 to-do-list ,而被控节点必须要完成。

  • Playbook 字面意思,即剧本,现实中由演员按照剧本表演,在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情。 

  • playbook常用到的YMAL格式:

    • 文件的第一行应该以 "---" (三个连字符)开始,表明YMAL文件的开始。

    • 在同一行中,#之后的内容表示注释,类似于shell,python和ruby。

    • YMAL中的列表元素以”-”开头然后紧跟着一个空格,后面为元素内容。

    • 同一个列表中的元素应该保持相同的缩进。否则会被当做错误处理。

  • play 中 hosts,variables(vars),roles,tasks等对象的表示方法都是键值中间以":"分隔表示,":"后面还要增加一个空格。

1、Playbook 文件介绍
[root@ansible-server ~]# vim mysql.yaml  vi vim
---
# 安装与运行mysql服务
- hosts: node2
  remote_user:  root 
  tasks:  
    - name: install mariadb-server package
      yum: 
        name: mariadb-server 
        state: present
    - name: starting mariadb service
      service: 
        name: mariadb 
        state: started
        enabled: true
      

- hosts: 192.168.234.102
  remote_user: root
  tasks:
    - name: install epel
      yum: 
        name: epel-release.noarch 
        state;latest
    - name: install nginx
      yum: 
        name: nginx 
        state: latest
    - name: start service
      service: 
        name: nginx 
        state: started 
        enabled: true      
  • 文件名称应该以 .yml/yaml 结尾,上面的例子就是 mysql.yml。其中,有三个部分组成:

1、host 部分
  • 使用 hosts 指示使用哪个主机或主机组来运行下面的 tasks ,

  • 每个 playbook 都必须指定 hosts ,hosts也可以使用通配符格式

  • 主机或主机组在 inventory 清单中指定,可以使用系统默认的/etc/ansible/hosts,也可以自己编辑,在运行的时候加上 -i 选项,指定清单的位置即可。在运行清单文件的时候,–list-hosts 选项会显示那些主机将会参与执行 task 的过程中。

2、remote_user 部分
  • 指定远端主机中的哪个用户来登录远端系统,在远端系统执行 task 的用户,可以任意指定,也可以使用 sudo,但是用户必须要有执行相应 task 的权限。

3、tasks 部分
  • 指定远端主机将要执行的一系列动作。

  • tasks 的核心为 ansible 的模块,前面已经提到模块的用法。

  • tasks 包含 name 和要执行的模块,name 是可选的,只是为了便于用户阅读,不过还是建议加上去,模块是必须的,同时也要给予模块相应的参数。

2、 playbook 使用
  • 使用ansible-playbook运行playbook文件,得到如下输出信息,输出内容为JSON格式。并且由不同颜色组成,便于识别。一般而言

    • | 绿色代表执行成功,系统保持原样

    • | 黄色代表系统代表系统状态发生改变

    • | 红色代表执行失败,显示错误输出 

  • 执行有三个步骤:

    • 收集 facts

    • 执行 tasks

    • 报告结果

2、Playbook 核心元素

  • Hosts:主机组;

  • Tasks:任务列表;

  • Variables:变量,设置方式有四种;

  • Templates:包含了模板语法的文本文件;

  • Handlers:由特定条件触发的任务;

3、Playbook 基本组件

  • Hosts:运行指定任务的目标主机

  • remoute_user:在远程主机上执行任务的用户;

  • sudo_user:

  • tasks:任务列表

  • 格式

tasks:
  – name:  TASK_NAME     # 这一步的名称
   module:  arguments
   notify:  HANDLER_NAME    #触发器后面定义的关键字是自定义(不要用ansible内置的关键字,防止误导程序)

handlers:
  – name:  HANDLER_NAME  # 这一步操作目的(注释)
    module:  argments
  • 模块,模块参数:

  • 格式:

    • action: module arguments

    • module: arguments

    • 注意:shell和command模块后面直接跟命令,而非key=value类的参数列表;

  • handlers:任务,在特定条件下触发;接收到其它任务的通知时被触发;

    • 某任务的状态在运行后为changed时,可通过“notify”通知给相应的handlers;

    • 任务可以通过“tags“打标签,而后可在ansible-playbook命令上使用-t指定进行调用;

标签:tasks,name,简介,ansible,Ansible,hosts,Playbook,playbook
From: https://blog.csdn.net/o1234567ii/article/details/144503270

相关文章

  • Ansible基础使用-多主机批量执行脚本和一些特性介绍
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录1.基础用法1.1定义清单1.2静态清单指定受控主机1.3验证清单1.4自定义清单文件2管理配置文件2.1配置ansible2.2配置文件优先级2.3管理配置文件中的设置2.4配置连接2.4.1清单位置2.4.2......
  • Pybind简介
    Pybind简介pybind11是一个用于将C++代码与Python代码绑定的库。它使得你能够轻松地将C++编写的函数、类、以及数据结构暴露给Python,从而在Python中使用C++代码。这通常用于加速性能关键的部分,或者利用现有的C++库,同时保留Python的易用性和灵活性。pybind11的核......
  • Derby 数据库介绍(1)--简介
    ApacheDerby是ApacheDB的一个子项目,是一个完全用Java实现的开源关系数据库,采用ApacheLicense2.0许可;本文主要介绍其基本概念及安装。1、Derby特点Derby体积小——基础引擎和嵌入式JDBC驱动程序约3.5MB。Derby基于Java、JDBC和SQL标准。Derby提供嵌入式JD......
  • IPVS简介
    IPVS简介IPVS(IPVirtualServer)是Linux内核中的一个负载均衡模块,它基于Netfilter框架实现。Netfilter是Linux内核中的一个框架,它提供了一系列的钩子(hook)点,允许内核模块在网络数据包通过网络协议栈的不同阶段进行拦截和处理。IPVS利用Netfilter框架在数据包通过网络协议栈时进行......
  • nginx 简介+应用
    文章目录nginx简介nginx二级目录处理二级目录实例列举1.第一个`location/`块2.第二个`location~^/(ui)`块3.第三个`location/api`块第一个`location/`与第二个`location~^/(ui)`是否重复nginx前端部署iframe嵌套配置设置后端服务转发实例......
  • OBJ文件简介、预览与转换
    OBJ文件简介OBJ文件,作为一种文本文件格式,在3D建模领域具有广泛的应用。其优势在于可以直接使用文本编辑器(如写字板)进行查看和编辑,这使得对模型数据的修改变得直观且方便。目前,市面上几乎所有的知名3D软件都支持OBJ文件的读写,尽管部分软件可能需要通过插件来实现这一功能。此外......
  • 拌合站监控系统,水稳拌合站监控,沥青拌合站监控简介方案
    万物拌合站监控系统是湖南万物工业软件有限公司为工程施工企业开发的一套生产、质量、运输、施工的信息化管理系统。拌合站监控系统通过物联网、人工智能、云计算、边缘计算等技术,对工程施工过程中混凝土生产、质量、运输、施工环节进行智能化监管和流程优化,帮助施工企业提高生......
  • 我们来学mysql -- 隔离级别简介(原理篇)
    隔离级别别记题记隔离级别后记系列文章别记烧香拜佛要是有用,还需要我们来过吗…从个人情感角度,巴沙尔·阿萨德辜负了东大对他的期望他可是从正门踏进了灵隐寺俄乌战争即将进入第三年(此时202412)此时的加沙正成为以色列建国初期所宣扬的无人之地,何止!是人间炼狱此时南......
  • 信创版国产组态软件简介
    背景信息技术应用创新产业,简称“信创”,主要围绕基础设施、基础软件、应用软件、信息安全四大领域。信创生态,是国产替换的全面升级,更强调生态构建,覆盖工控上下游各领域,包括芯片、服务器/PC、PLC、操作系统、中间件、数据库、整机厂商等等。2022年9月底,国务院国资委下发了重要的......
  • Ansible实验
    一、实验环境二、实验步骤剧本编写遵循yaml语法:冒号(冒号后面需要空格)短横杠(后面跟空格)缩进(两字符,默认Tab键四个字符)playbook语法:ansible-playbook选项文件路径选项:--list-hosts:列出清单--list-tasks:列出任务--list-tags:列出标签--syntax-check:语法检查核心......