操作手册模板
将自己创建的playbook公开。
将其标准化为项目单位
-
- handler
-
- プロジェクトのhandlerを /path/to/pj/handlers/main.yml に集約
-
- roles
- プロジェクトのroles を /path/to/pj/roles/
规格
-
- tasksを開始する前に,ターゲットのホストネームとインベントリに書いてある名前と照らし合わせて,一致しなければ,止まる
- .ansible_build_is_done ファイルが存在したら,止まる
由于playbook中存在不具备幂等性的任务,保证playbook不会再次执行。
-
- playbook最後まで行けたら,.ansible_build_is_done ファイル作成する
- rolesを実行条件によって,グルーピングする
---
- hosts: hogehoge
become: true
handlers:
- include: handlers/main.yml
pre_tasks:
- name: check target hostname
local_action: command test {{ inventory_hostname }} = {{ ansible_hostname }}
become: false
tags: always
tasks:
- name: check - is ansible build done
command: test ! -e .ansible_build_is_done
become: false
- block:
- name: build foo1
include_role:
name: foo1
- name: build foo2
include_role:
name: foo2
- name: build foo3
include_role:
name: foo3
when:
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version == '7'
- name: install foo4
include_role:
name: foo4
when:
- foo4_enabled == 'yes'
- ansible_distribution == 'CentOS'
- ansible_distribution_major_version == '7'
tags: 1.2.0
- name: flag - ansible build is done.
file: path=.ansible_build_is_done mode=0600 state=touch
become: false