Ansible playbook 基本案例

更多关注:http://www.mknight.cn/

一、构建目录结构

1、新建目录结构

[root@localhost]# mkdir -pv /etc/ansible/roles/service_tomcat/{vars,tasks}
mkdir: 已创建目录 "/etc/ansible/roles/service_tomcat"
mkdir: 已创建目录 "/etc/ansible/roles/service_tomcat/vars"
mkdir: 已创建目录 "/etc/ansible/roles/service_tomcat/tasks"
  • defaults 默认寻找路径
  • tasks 存放playbooks路径
  • files 存放文件和脚本,copy模块文件搜索路径
  • templates 模版存放路径
  • handlers notify调用部分playbook存放路径
  • vars roles内变量存放路径
  • 关于这个主目录,建议自建,也可以使用系统默认
  • 这里由于简单示范,只创建部分目录,仅供参考。

2、目录结构

[root@localhost service_tomcat]# tree
.
├── tasks
│   ├── main.yml
│   ├── push.yml
│   └── restart.yml
└── vars

其中总调度文件为/etc/ansible/service_tomcat.yml ,vars 目录里可以写一些变量

二、playbook

1、总调度文件service_tomcat.yml

---
- name: 就是想试试tags的用法
  hosts: 192.168.1.7
  vars:
    listen_port: 8410
    tomcat_root: /data/qsc_user/car/web
  roles:
    - { role: service_tomcat }

此处的vars可以转移到vars目录

2、tasks/main.yml

---
- include: restart.yml
  tags:
    - tag2
- include: push.yml
  tags:
    - tag1
  • 关于tags:主要目的是单独执行指定的tag,使用-t 或者--tags 表示。
  • 旧版本不是这样写的,会直接在include后面加上tags=xxx,但是在新版本的ansible执行时虽然不报错,但是也不执行该tag。

3、tasks/restart.yml

---
- name: stop tomcat.
  shell: su -c  {{ tomcat_root }}/bin/shutdown.sh qsc_user
- name: 验证服务是否关闭
  wait_for: port={{ listen_port }} delay=3 state=stopped timeout=10
- name: start tomcat.
  shell: su -c  {{ tomcat_root}}/bin/startup.sh qsc_user
- name: 等待服务启动
  wait_for: port={{ listen_port }} delay=5 timeout=30
- name: tags 测试正常
  shell: echo "hello "

4、执行

[root@localhost ansible]# ansible-playbook service_tomcat.yml --tags  tag2  -vvv

这样这个小项目就完成啦。

更多关注:http://www.mknight.cn/

你可能感兴趣的:(Ansible playbook 基本案例)