Brc's blog
首页
前端
后端
运维
  • 工作笔记
  • 分类
  • 标签
  • 归档
关于

Brc

努力中
首页
前端
后端
运维
  • 工作笔记
  • 分类
  • 标签
  • 归档
关于
  • Linux基础

  • Linux进阶

    • shell

    • nginx

    • keepalived

    • LVS

    • ansible

      • Ansible基础快速入门
      • Ansible Playbook
        • 什么是Playbook
        • Playbook与Ad-Hoc
        • Playbook书写格式
        • Playbook案例实战
          • Ansible部署NFS示例
          • Ansible部署Httpd示例
      • Ansible Variables
      • Ansible Facts Variables
      • Ansible Task Control
      • Ansible Advanced
      • python调用ansible模块
    • docker

    • mysql

  • 其他

  • 运维
  • Linux进阶
  • ansible
Brc
2021-12-21
目录

Ansible Playbook

# 什么是Playbook

playbook是一个 由yaml语法编写的文本文件,它由play和task两部分组成。

play: 主要定义要操作主机或者主机组

task:主要定义对主机或主机组具体执行的任务,可以是一个任务,也可以是多个任务(模块)

20220328192813

总结:playbook是由一个或多个play组成,一个play可以包含多个task任务。

可以理解为: 使用多个不同的模块来共同完成一件事情。

# Playbook与Ad-Hoc

  • playbook是对AD-Hoc的一种编排方式。
  • playbook可以持久运行,而Ad-Hoc只能临时运行。
  • playbook适合复杂的任务,而Ad-Hoc适合做快速简单的任务。
  • playbook能控制任务执行的先后顺序。

# Playbook书写格式

playbook是由yml语法书写,结构清晰,可读性强,所以必须掌握yml语法

语法 描述
缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用tabs。
冒号 以冒号结尾的除外,其他所有冒号后面所有必须有空格。
短横线 表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表。

# Playbook案例实战

# Ansible部署NFS示例

  1. 编写安装配置nfs服务的playbook文件

    [root@manager nfs]# cat install_nfs.yml
    - hosts: webservers
      tasks:
        - name: Installed NFS Server
          yum:
            name: nfs-utils
            state: present
        - name: Configure NFS Server
          copy:
            src: ./exports.j2
            dest: /etc/exports
        - name: Init NFS Server
          file:
            path: /data
            state: directory
            owner: nfsnobody
            group: nfsnobody
        - name: Systemd NFS Server
          systemd:
            name: nfs
            state: started
            enabled: yes
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
  2. 准备playbook依赖的exports.j2文件

    [root@manager nfs]# echo "/data 10.0.0.0/24(rw,sync)" > exports.j2
    
    1
  3. 检查playbook语法

    [root@manager nfs]# ansible-playbook install_nfs.yml --syntax-check
    
    playbook: install_nfs.yml
    
    1
    2
    3
  4. 执行playbook文件

    [root@manager nfs]# ansible-playbook install_nfs.yml
    
    1
  5. 客户端执行命令测试

    [root@manager nfs]# showmount -e 10.0.0.12
    Export list for 10.0.0.12:
    /data 10.0.0.0/24
    
    [root@manager nfs]# showmount -e 10.0.0.13
    Export list for 10.0.0.13:
    /data 10.0.0.0/24
    
    1
    2
    3
    4
    5
    6
    7

# Ansible部署Httpd示例

  1. 编写安装配置 httpd 服务的 playbook 文件

    [root@manager httpd]# cat installed_httpd.yml
    #1.定义play
    #2.定义task、(Installed、Configure、Init、Systemd)
    
    - hosts: webservers
      tasks:
        - name: Installed Httpd Server
          yum:
            name: httpd
            state: present
    
        - name: Configure Httpd Server
          copy:
            src: ./httpd.conf.j2
            dest: /etc/httpd/conf/httpd.conf
            owner: "root"
            group: "root"
            mode: '0644'
            backup: yes
          notify: Restart Httpd Server
    
        - name: Init Httpd Server
          copy:
            src: ./index.html.j2
            dest: /var/www/html/test.html
    
        - name: Systemd Httpd Server
          systemd:
            name: httpd
            state: started
            enabled: yes
    
      handlers:
        - name: Restart Httpd Server
          systemd:
            name: httpd
            state: restarted
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
  2. 准备playbook依赖的文件

    httpd.conf.j2 (opens new window)

    index.html.j2 (opens new window)

  3. 检查 playbook 语法

    [root@manager httpd]# ansible-playbook installed_httpd.yml --syntax-check
    
    playbook: installed_httpd.yml
    
    1
    2
    3
  4. 执行playbook文件

    [root@manager httpd]# ansible-playbook installed_httpd.yml
    
    1
  5. 访问服务器对应的 web 页面测试

    image-20220328205909299

#ansible#playbook
Last Updated: 2024/03/29, 17:39:25
Ansible基础快速入门
Ansible Variables

← Ansible基础快速入门 Ansible Variables→

最近更新
01
谷歌云创建GKE集群
07-26
02
ElastiCacheForRedis启用密码
07-26
03
upload-to-gcs
06-29
更多文章>
Theme by Vdoing | Copyright © 2021-2024 Brc | MIT License | 浙ICP备19031881号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式