ansible-playbook簡介


playbook是ansible進一步的運用。
中文翻譯是劇本。
用另一種方式可能更容易理解,ansible的各個模塊理解爲linux系統下的各個命令,playbook理解成shell腳本。
playbook包含變量和任務列表:
用變量表示ansible模塊調用時的各個元素,任務列表是要對這些元素的操作。
以下面的playbook爲例,解釋一下playbook的和各個構成,@後面跟註解:
運行方式:
ansible-playbook tomcat.yml -e "host_ip=192.168.1.1"


---                                                                        @playbook文件格式,以---開頭
- hosts: "{{ host_ip }}"                                          @匹配的主機,{{}}以變量形式從命令行中接收,優先級最高
vars:                                                                    @整個book中用的變量
c_url: http://config.xbniao.com
source_path: /tmp
basedir: /usr/local
back_path: /home/xbniao/backup
projects:
- admin
- platform

tasks:                                     @任務列表
- name: stop tomcat               @第一個任務名稱
tomcat: project= tomcat_{{ item }} cmd=stop                  @使用的模塊,和參數
with_items: "{{ projects }}"                                               @循環變量
tags: stop                                                                        @標籤,可用於人工干預playbook的任務的起始位置

- name: Backup Remote Files
command: chdir={{ basedir }}/tomcat_{{ item }}/webapps tar czf {{ back_path }}/{{ item }}-{{ ansible_date_time.date }}{{ ansible_date_time.hour }}.tar.gz ./ROOT
with_items: "{{ projects }}"
tags: bak

- name: Send Code to Remote servers
copy: src={{ source_path }}/xbniao-web-{{ item }}.war dest={{ basedir }}/tomcat_{{ item }}/webapps/ROOT/
with_items: "{{ projects }}"
tags: code

- name: unpack WAR files to ROOT/
command: chdir={{ basedir }}/tomcat_{{ item }}/webapps/ROOT /usr/java/bin/jar xf xbniao-web-{{ item }}.war
register: result
with_items: "{{ projects }}"

- name: Download Config Files
get_url:
url="{{ c_url }}/{{ item }}.config.properties"
dest=/usr/local/tomcat_{{ item }}/webapps/ROOT/WEB-INF/classes/config.properties
force=yes
with_items: "{{ projects }}"
tags: config

- name: Delete war file in ROOT
command: chdir={{ basedir }}/tomcat_{{ item }}/webapps/ROOT rm -f xbniao-web-{{ item }}.war
with_items: " {{ projects }}"
when: result|success

- name: start tomcat
tomcat: project=tomcat_{{ item }} cmd=start
with_items: "{{ projects }}"
tags: start
發佈了90 篇原創文章 · 獲贊 25 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章