Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 背景介绍
  • 安装
  • 配置说明
  • 基础命令
  • 常用模块
  • Playbook

    • 简单介绍
    • yaml语法
    • hosts
    • task
    • 运行playbook
      • playbook vs shell scripts
      • playbook示例
        • 安装httpd服务
        • 安装nginx服务
    • handlers
    • tags
    • variables
    • template
    • when条件判断
    • with_items迭代
    • roles
    • 附:jinja2语法
  • Tool-Ansible
  • Playbook
Shetengteng
2022-05-15

运行playbook

语法

ansible-playbook <filename.yml> ... [options]
1

参数

--check -C       只检测可能会发生的改变,但不真正执行操作 
                 (只检查语法,如果执行过程中出现问题,-C无法检测出来)
                 (执行playbook生成的文件不存在,后面的程序如果依赖这些文件,也会导致检测失败)
--list-hosts     列出运行任务的主机
--list-tags      列出tag  (列出标签)
--list-tasks     列出task (列出任务)
--limit 		 主机列表 只针对主机列表中的主机执行
-v -vv -vvv      显示过程
1
2
3
4
5
6
7
8

示例

ansible-playbook hello.yml --check 只检测
ansible-playbook hello.yml --list-hosts  显示运行任务的主机
ansible-playbook hello.yml --limit websrvs  限制主机
1
2
3

# playbook vs shell scripts

安装httpd

SHELL脚本
#!/bin/bash
# 安装Apache
yum install --quiet -y httpd
# 复制配置文件
cp /tmp/httpd.conf /etc/httpd/conf/httpd.conf
cp/tmp/vhosts.conf /etc/httpd/conf.d/
# 启动Apache,并设置开机启动
service httpd start
chkconfig httpd on
1
2
3
4
5
6
7
8
9
10

playbook定义

---
- hosts: all
  remote_user: root
  
  tasks:
    - name: "安装Apache"
      yum: name=httpd      # yum模块:安装httpd
    - name: "复制配置文件"
      copy: src=/tmp/httpd.conf dest=/etc/httpd/conf/  # copy模块: 拷贝文件
    - name: "复制配置文件"
      copy: src=/tmp/vhosts.conf dest=/etc/httpd/conf.d/  
    - name: "启动Apache,并设置开机启动"
      service: name=httpd state=started enabled=yes   # service模块: 启动服务 
1
2
3
4
5
6
7
8
9
10
11
12
13

# playbook示例

# 安装httpd服务

示例:httpd.yml

- hosts: websrvs
  remote_user: root
  
  tasks:
    - name: Install httpd
      yum: name=httpd state=present
    - name: Install configure file
      copy: src=files/httpd.conf dest=/etc/httpd/conf/
    - name: start service
      service: name=httpd state=started enabled=yes
1
2
3
4
5
6
7
8
9
10

注意:files使用的是相对路径,在$HOME目录下创建一个files目录

# 安装nginx服务

示例 nginx.yml

- hosts: all
  remote_user: root

  tasks:
    - name: add group nginx
      user: name=nginx state=present
    - name: add user nginx
      user: name=nginx state=present group=nginx
    - name: Install Nginx
      yum: name=nginx state=present
    - name: Start Nginx
      service: name=nginx state=started enabled=yes
1
2
3
4
5
6
7
8
9
10
11
12
Last Updated: 2022/05/22, 12:42:00
task
handlers

← task handlers→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式