ansible
playbook的核心元素:
tasks: 任務
variables: 變數
templates: 模板
handlers: 處理器
roles: 角色
變數:facts
--extra-vars "name=value name=value"
role定義
inventory中的變數:
主機變數
hostname name=value name=value
組變數[groupname:vars]
name=value
name=value
inventory的高階用法:
playbook:
- host:
vars:
remote_user:
tasks:
variables:
handlers:
- host:
- host:
迭代:重複同類task時使用
呼叫:item
定義迴圈列表:with_items
- apache
- php
- mysql-server
注意:with_items中的列表值也可以使字典,但引用時要使用item.key
- -
- tags: 在playbook可以為某個或某些任務定義乙個「標籤」,在執行此playbkook時,通過為ansible-playbook命令使用 --tags選項能實現僅執行指定的tasks而非所有的;
特殊tags:always
roles:
(1) 目錄名同角色名;
(2) 目錄結構有固定格式:
files:靜態檔案
templates:jinjia2模板檔案
tasks:至少有main.yml檔案,定義各tasks;
handlers:至少有main.yml檔案,定義各handlers;
vars:至少有乙個main.yml檔案,定義變數;
meta:定義依賴關係等資訊
(3)site.yml中定義playbook,額外也可以有其他的yml檔案;
簡單示例1:
- hosts:websrvs
remote_user:root
tasks:
- name:create nginx group
group:name=nginx system=yes gid=208
- name:create nginx user
user:name=nginx uid=208 group=nginx system=yes
- hosts:dbsrvs
remote_user:root
tasks:
- name: copy file to dbsrvs
copy: src=/etc/inittab dest=/tmp/inittab.ans
簡單示例2:ansible-playbook apache.yml
簡單示例3:
- host: all
remote_user: root
vars:
- username: user10
tasks:
- name: create } user
user: name=}
when: ansible_fqdn == "zhanx.wang"
ansible基本用法
1 ansible基於ssh基礎的配置管理 部署和任務執行系統 2 anisble是乙個非常簡單的模型驅動的配置管理,多節點部署和遠端任務執行系統。ansible作品通過ssh,不需要安裝任何軟體或守護程序在遠端節點。擴充套件模組可以用任何語言編寫 模組化 呼叫特定的模組,完成特定的任務 基於pyt...
ansible 劇本高階 角色
ansible cache m setup ansible all ipv4 addresses ipv4的所有位址 ansible all ipv6 addresses ipv6的所有位址 ansible date time 獲取到控制節點時間 ansible default ipv4 預設的ip...
Ansible高階之roles詳解
迭 法 with items 迭代 當需要重複性執行的任務時,可以使用迭代機制 對迭代選項的引用,固定變數名為 item 要在task中使用with items給定要迭代的元素列表 列 式 字串 浮點使用字串 host webservs remote user root tasks name cre...