三ansible-playbook简介编写语法检测

【三ansible-playbook简介编写语法检测】一年好景君须记,最是橙黄橘绿时。这篇文章主要讲述三ansible-playbook简介编写语法检测相关的知识,希望能为你提供帮助。
一、ansible-doc的局限?每次只能在被管理节点上执行简单的命令。
日常工作中,我们往往面临的是一系列的复杂操作,例如我们有可能需要安装软件、更新配置、启动服务等等一系列操作的结合。
?在这种场景下,Ansible引进了 、PLAYBOOK 来帮忙我们解决这样复杂问题。
二、Playbook简介??playbook是ansible用于配置、部署和管理托管主机剧本,通过playbook的详细描述,执行其中的一些列tasks,可以让远端主机达到预期状态
?Playbook 也通常被大家翻译成剧本。
可以认为它是Ansible 自定义的一门语言(可以将 Playbook比作Linux中的 shell,Ansible中的Module可以比作为 Linux 中的各种命令)?
(1)playbook是对AD-Hoc的一种编排方式
(2)playbook可以持久运行,而AD-Hoc只能临时运行
(3)playbook适合复杂的任务,而AD-Hoc适合快速简单的任务
(4)playbook能控制任务执行的先后顺序
1、playbook语法格式yaml?playbook遵循yaml语法格式
(1)以#为注释符
(2)以.yml或.yaml结尾
(3)以---开始,以...结束,但是开头和结束符都是可选的
2、基本语法?(1)大小写敏感
?(2)缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成,不能使用tab
(3)冒号 以冒号结尾的除外,其他所有冒号后面所有必须有空格
(4)短横线 表示列表项,使用一个短横杠加一个空格,段哥项使用相同的缩进级别作为同一列表
3?、playbook执行结果使用ansible-playbook运行playbook文件,输出内容为json格式。由不通颜色组成便于识别
?(1)绿色表示执行成功
?(2)红色代表执行失败
?(3)其他颜色表示系统状态发生改变
三、ansible-playbook案例?1、安装apache,端口为8080,默认主页hello world, 启动服务,设置开机自启创建工作目录,配置主机清单
mkdir /project/apache -p
cat /project/apache/hosts
[webserver]
192.168.10.128
[dbserver]
192.168.10.130
[all:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=\'123456\'
?配置playbook文件
cat apache.yaml
---
- hosts: webserver
  remote_user: root
  tasks:
    - name: install the latest version of apache
      yum:
        name: httpd
        state: latest
    - lineinfile:
        path: /etc/httpd/conf/httpd.conf
        regexp: \'^Listen \'
        insertafter: \'^#Listen \'
        line: Listen 8080
    - copy:
        src: index.html
        dest: /var/www/html/index.html
        owner: apache
        group: apache
        mode: \'0644\'
    - service:
        name: httpd
        state: started
        enabled: yes
?cat index.html
hello world
?ansible-playbook apache.yaml -i hosts

三ansible-playbook简介编写语法检测

文章图片

2、给web主机添加用户l4,设置密码123cat /project/apache/user.yaml
---
- hosts: webserver
  remote_user: root
  vars:
    username: l4
  tasks:
    - name: create user "{{ username }}"
      user:
        name: "{{ username }}"
        group: root
        #password: "{{ \'123\'|password_hash( \'sha512\' )}}"
    - shell: echo 123|passwd --stdin "{{ username }}"
四、playbook语法检测检测语法
ansible-playbook webserver --syntax-check myplaybook.yml -i hosts
如何每步跟从调试playbook
ansible-playbook webserver myplaybook.yml --step -i hosts
如何运行测试,会执行完整个playbook,但是所有Task的行为都不会在远程服务器伤执行,所有执行行为都是模拟行为
ansible-playbook webserver myplaybook.yml -i hosts -C
使用python检测yaml
python -c \'import yaml,sys; print yaml.safe_load(sys.stdin)\' < myplaybook.yml 

    推荐阅读