Ansible高階用法

2021-12-30 05:52:33 字數 2234 閱讀 4847

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...