Linux —— ansible自动化运维(二)

目录

playbook

1. yaml介绍 

2. playbook基本用法

2.1 安装apache服务

2.2 确保服务开机启动 

2.3 输出详细程度 

2.4 语法检测 

2.5 空运行 

2.6 ansible-doc命令

3. 实验

4. playbook语法

5. 实验 


playbook

playbooks是 一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是playbook是通过YAML格式来进行描述定义的。

1. yaml介绍 

以yml为拓展名,虽然对缩进没有严格要求,但是要遵守以下规则:

  • 处于同一层级结构中的同一级别的数据元素必须具有相同的缩进量
  • 如果项目属于其他项目的子项,那么其缩进量就必须大于父项 

Linux —— ansible自动化运维(二)_第1张图片

2. playbook基本用法

2.1 安装apache服务

vim webserver.yml
###
---
- name: Setup Webserver
  hosts: servera.dsd.com
  tasks:
    - name: Http Install
      yum:
        name: httpd
        state: latest
...
###
ansible-playbook webserver.yml

Linux —— ansible自动化运维(二)_第2张图片

Linux —— ansible自动化运维(二)_第3张图片

2.2 确保服务开机启动 

vim service.yml
###
---
- name: Setup Webserver
  hosts: servera.dsd.com
  tasks:
    - name: Apache is enabled
      service:
        name: httpd
        enabled: true

    - name: Vsftpd is enabled
      service:
        name: vsftpd
        enabled: true
...
###
ansible-playbook service.yml

Linux —— ansible自动化运维(二)_第4张图片

Linux —— ansible自动化运维(二)_第5张图片

Linux —— ansible自动化运维(二)_第6张图片

2.3 输出详细程度 

ansible-playbook 默认输出不提供详细任务执行信息。

参数 功能
-v 显示任务结果
-vv 显示任务结果和任务配置
-vvv 包含关于与受管主机的连接信息
-vvvv 增加连接插件相关的额外详细程度选项(包括受管主机上用于执行脚本的用户以及所执行的脚本)

2.4 语法检测 

检测正确: 

检测错误:

Linux —— ansible自动化运维(二)_第7张图片

2.5 空运行 

ansible-playbook -C webserver.yml
## 空运行,只是相当于一个预览,而不会改变目标主机当前状态
   可以用来测试操作将会在目标主机上产生怎样的效果

Linux —— ansible自动化运维(二)_第8张图片

2.6 ansible-doc命令

参数 功能
ansible-doc -l 列出所有模块
ansible-doc yum 列出yum的用法和示例
ansible-doc -s yum 终端中输出yum模块中各参数的用法

3. 实验

安装apahce,并且启动它,最后修改apche的默认发布页面

vim ansible.cfg
###
[defaults]
inventory = ./inventory
###

vim inventory
###
[control_node]
localhost
[web]
servera.dsd.com
###

vim apache.yml
###
---
- name: Install Modify Start Apache
  hosts: web
  tasks:
    - name: Apache is present
      yum:
        name: httpd
        state: present

    - name: Change index.html
      copy:
        src: files/index.html
        dest: /var/www/html/index.html

    - name: Start Apache
      service:
        name: httpd
        state: started
        enabled: true
...
###

ansible-playbook --syntax-check apache.yml  ## 测试play
ansible-playbook -C apache.yml              ## 空运行查看结果
ansible-playbook apache.yml                 ## 执行play

Linux —— ansible自动化运维(二)_第9张图片

测试结果:

  • 多play情况可以直接使用模板替换即

Linux —— ansible自动化运维(二)_第10张图片

4. playbook语法

  • playbook注释

  • playbook字符串
this is a string
'this is a string'
"this is a string"

5. 实验 

实验环境:servera中没有httpd 

Linux —— ansible自动化运维(二)_第11张图片

vim ansible.cfg
###
[defaults]
inventory = ./inventory
###

vim inventory
###
[web]
servera.dsd.com
###
vim servera.yml

Linux —— ansible自动化运维(二)_第12张图片

Linux —— ansible自动化运维(二)_第13张图片

Linux —— ansible自动化运维(二)_第14张图片

 

你可能感兴趣的:(ansible自动化运维)