• Ansible-Playbook 剧本语法


    在这里插入图片描述

    1. 简介:

    playbook也叫剧本
    play的主要功能在于将预定义的一组主机,装扮成事先通过ansible中的task定义好的角色。
    通过ansible命令直接调用yml语言写好的playbook,playbook由多条play组成
    每条play都有一个任务(task)相对应的操作,然后调用模块modules,应用在主机清单上,通过ssh远程连接从而控制远程主机或者网络设备

    Task实际是调用ansible的一个module,将多个play组织在一个playbook中,
    即可以让它们联合起来,按事先编排的机制执行预定义的动作
    Playbook采用YAML语言编写。

    2.Yaml简介

    YAML是一个可读性高,用来表达数据序列的格式。YAML参考了其它多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式中获得灵感。Clark Evans在2001年首次发表了这种语言。当前已经有数种编程语言或脚本语言支持这种语言。最新稳定版本为1.2,于2009年发布。YAML文件扩展名为.yaml或.yml。

    具体了解查看 :https://blog.csdn.net/fengbingchun/article/details/88090609

    3.书写playbook

    ansible-playbook useradd.yml -e key=value
    
    • 1

    -e 代表传参数 后面等同于json 键值对

    定义YML

    playbook 的核心元素

    1.Tasks:任务,由模板定义的操作列表
    2.Variables:变量
    3.Templates:模板,即使用模板语法的文件
    4.Handlers:处理器 ,当某条件满足时,触发执行的操作
    5.Roles:角色

    每一个 Play 都要指定操作的目标主机,并且可以指定用哪个身份去完成执行的步骤(Tasks)。例如:

    - hosts: webservers
      remote_user: root
      tasks:
        - name: test connection
          remote_user: yourname
          sudo: yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    hosts:用于指定要执行指定任务的主机,可以是一个或多个,由逗号分隔符分隔的主机组。
    remote_user:用于指定远程主机上执行任务的用户,它也可用于各tasks中。
    sudo:如果设置为 yes 则获取 root 权限去执行该任务,如果需要在使用 sudo 时指定密码,可在运行 ansible-playbook 命令时加上选项 --ask-sudo-pass (-K)。
    connection:通过什么方式连接到远程主机(默认 ssh)。

    在playbook中对于多个重复的取值我们可以把内容定义在配置文件中去在多个yml 以及task都可以获取到

    例如把登录主机用户写在配置文件

    - hosts: webservers
      remote_user: root
      tasks:
        - name: test connection
          remote_user: {{ yourname }} 
          sudo: yes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    配置文件 config.ini

    yourname=user
    
    • 1

    调用方法

    ansible-playbook -i config.ini user.yml -vvv  
    
    • 1

    -v :显示简要的执行过程,-vv显示较为详细的过程,-vvv显示更为详细的执行过程

  • 相关阅读:
    Casdoor + OAuth 实现单点登录 SSO
    跨交换机的VLAN
    java毕业设计城市垃圾分类管理系统mybatis+源码+调试部署+系统+数据库+lw
    Android 基本属性绘制文本对象FontMetrics
    报错:与目标 VM 断开连接, 地址为: ‘‘127.0.0.1:56529‘,传输: ‘套接字‘‘
    雪糕冰淇淋经营配送小程序商城效果如何
    二十五、商城 - 运营商后台审核上下架-注解式事务配置(13)
    基于JavaSwing开发贪吃蛇小游戏(简化版) 课程设计 大作业 毕业设计
    phpstorm去掉升级提示
    4405. 统计子矩阵
  • 原文地址:https://blog.csdn.net/weixin_45185267/article/details/126324178