anisble使用及常用模塊

###### Ansible總結(jié)

##### 運(yùn)維工作:? 系統(tǒng)安裝(物理機(jī)、虛擬機(jī))-->程序包安裝纺酸、配置震叙、服務(wù)啟動 --> 對主機(jī)批量操作 --> 程序版本更新 -->監(jiān)控

? ? OS Provisioning:

? ? ? ? 物理機(jī):PXE可柿、Cobbler

? ? ? ? 虛擬機(jī):Image、Templates

? ? Configuration:

? ? ? ? puppet工具(ruby開發(fā))

? ? ? ? Saltstack(python開發(fā))

? ? ? ? chef

? ? Command and Concrol:

? ? ? ? fabric

? ? 預(yù)發(fā)布環(huán)境驗(yàn)證:

? ? ? ? 新版本的代碼先發(fā)布到內(nèi)網(wǎng)測試服務(wù)器(跟線上環(huán)境配置完全相同缔莲,只是未介入到調(diào)度器);

? ? 程序發(fā)布:

? ? ? ? 不能影響用戶體驗(yàn)霉旗;

? ? ? ? 系統(tǒng)不能停機(jī)痴奏;

? ? ? ? 不能導(dǎo)致系統(tǒng)故障或造成系統(tǒng)完全不可用;

? ? 灰度發(fā)布:

? ? ? ? 一種發(fā)布模式厌秒;在調(diào)度器上下線一批主機(jī) --> 關(guān)閉服務(wù) --> 部署新版本的應(yīng)用程序 --> 啟動服務(wù) --> 在調(diào)度器上啟用這一批主機(jī)读拆;

? ? ? ? 自動化灰度發(fā)布機(jī)制:可通過腳本或公司自己的發(fā)布平臺發(fā)布;

###### 運(yùn)維工具的分類 :

? ? agent:代理工具:puppet鸵闪,func

? ? agentless:無代理工具:ansible檐晕,fabric;agentless類工具必須依賴ssh服務(wù)岛马;

###### ansible的模塊化:

? ? 模塊化:調(diào)用特定的模塊來完成特定的任務(wù)棉姐;

? ? 基于python語言實(shí)現(xiàn),由paramaiko啦逆、pyYAML和jinja2三個關(guān)鍵模塊

? ? 部署簡單:agentless類工具

? ? 主從模式:

? ? 支持自定義模塊:

? ? 支持playbook:

###### ansible密鑰登陸

? ? ansible是通過ssh實(shí)現(xiàn)配置管理伞矩、應(yīng)用部署、任務(wù)執(zhí)行等功能夏志,因此乃坤,需要事先配置ansible端能基于密鑰認(rèn)證的方式聯(lián)系各個被管理節(jié)點(diǎn);

? ? ? ? ansible管理端做密鑰:ssh-keygen -t rsa -P ‘’

? ? ? ? 將密鑰拷貝到各個被控節(jié)點(diǎn):ssh-copy-id? root@192.168.4.41

? ? ? ? ssh遠(yuǎn)程連接測試:ssh root@192.168.4.41 ##應(yīng)該不需要密碼就可以直接遠(yuǎn)程進(jìn)被控端

######? ansible安裝

? ? ## wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

? ? ## yum -y install ansible

? ? 配置文件:/etc/ansible/ansible.cfg

? ? 主機(jī)清單:/etc/ansible/hosts

###### ansible的簡單使用

? ? 1沟蔑、修改/etc/ansible/hosts文件湿诊,添加ansible被控主機(jī)或被控組;

? ? ? ? ##必須先在hosts文件添加主機(jī)ip瘦材,不然遠(yuǎn)程控制被控端時(shí)會報(bào)錯: [WARNING]: No hosts matched, nothing to do

? ? 2厅须、執(zhí)行一個簡單的ansible命令:

? ? ? ? 在ansible控制端執(zhí)行:

? ? ? ? ansible 192.168.4.41 -m command -a 'ifconfig'會顯示被控端的網(wǎng)卡信息

###### ansible常用模塊

###### 可以使用‘a(chǎn)nsible-doc -s 模塊名 ’來查看模塊的詳細(xì)用法

? ? ansible用法:ansible? [-f forks] [-m module_name] [-a args]

? ? user模塊:

? ? ? ? 示例:ansible test -m user -a 'name=wuyongfeng state=present system=yes'

? ? ? ? ? ? 在test組包含的被控端上創(chuàng)建用戶,name為wuyongfeng食棕;

? ? ? ? ? ? state=present表示創(chuàng)建用戶朗和,state=absent時(shí)表示刪除用戶错沽;

? ? ? ? ? ? system=yes表示創(chuàng)建系統(tǒng)用戶;

group模塊:

示例:ansible test -m group -a 'name =testgroup gid=111 state=present system=yes'

在test組包含的被控端上創(chuàng)建組testgroup眶拉;

組id為111千埃;

state=present表示創(chuàng)建組,state=absent時(shí)表示刪除組忆植;

syste=yes表示創(chuàng)建系統(tǒng)組放可,system=no表示創(chuàng)建的不是系統(tǒng)組;

cron模塊:

示例:ansible test -m cron -a 'name="wuyongfeng crontab list" minute="*/20" job="/sbin/ntpdate 192.168.4.40 &>/dev/null"'

在test組包含的被控端添加任務(wù)計(jì)劃朝刊,每20分鐘向192.168.4.40同步時(shí)間耀里,并把輸出丟如/dev/null;

name:計(jì)劃任務(wù)的描述信息坞古;

minute:分鐘备韧;

job:要進(jìn)行的操作;

day:日(1-31痪枫,*织堂,*/2,……);

hour:小時(shí)(0-23奶陈,*易阳,*/2,……)吃粒;

month:月(1-12潦俺,*,*/2徐勃,……)事示;

weekday:周(0-7,*僻肖,……)肖爵;

user:以哪個用戶的身份執(zhí)行;

若要刪除之前在被控端部署的計(jì)劃任務(wù)臀脏,只需指定name和state=absent即可劝堪;

例如:

ansible test -m cron -a 'name="wuyongfeng crontab list" state=absent'

copy模塊:

示例:ansible test -m copy -a 'src=/data/wyf.txt dest=/tmp/wyf.txt mode=600'

復(fù)制ansible控制端的wyf.txt文件到test組所指定的被控端的主機(jī)的/tmp目錄下

src:源路徑

dest:目標(biāo)路徑

mode:文件權(quán)限

file模塊:

專門用來設(shè)定文件屬性;

ansible test -m file -a 'path=/tmp/www state=directory'

在test組定義的被控端的/tmp/下創(chuàng)建www目錄揉稚,state指定文件屬性為目錄

group:定義文件/目錄的屬組

mode:定義文件/目錄的權(quán)限

owner:定義文件/目錄的屬主

path:必選項(xiàng)秒啦,定義文件/目錄的路徑

recurse:遞歸的設(shè)置文件的屬性,只對目錄有效

src:要被鏈接的源文件的路徑搀玖,只應(yīng)用于state=link的情況

dest:被鏈接到的路徑余境,只應(yīng)用于state=link的情況

state:

=directory:如果目錄不存在,創(chuàng)建目錄

=file:即使文件不存在,也不會被創(chuàng)建

=link:創(chuàng)建軟鏈接

=hard:創(chuàng)建硬鏈接

=touch:如果文件不存在葛超,則會創(chuàng)建一個新的文件暴氏,如果文件或目錄已存在,則更新其最后修改時(shí)間

=absent:刪除目錄绣张、文件或者取消鏈接文件

ping模塊:

用于確認(rèn)和對象機(jī)器之間是否能夠ping通,正常情況會返回pong关带;

示例:ansible test -m ping

ping test組定義的被控端侥涵;如果是可以通的則返回pong;

yum模塊:

示例:ansible test -m yum -a 'name=httpd? state=present'

在test組的被控端yum安裝httpd宋雏;

config_file:yum的配置文件

disable_gpg_check:關(guān)閉gpg_check

disablerepo:不啟用某個源

enablerepo:啟用某個源

name:要進(jìn)行操作的軟件包的名字芜飘,也可以傳遞一個url或者一個本地的rpm包的路徑

state:狀態(tài)(present安裝,absent卸載磨总,latest最新的)

service模塊:

示例:ansible test -m service -a 'name=httpd state=started enabled=yes'

test組的所有被控端嗦明,啟動httpd服務(wù),開機(jī)啟動(enabled)

enabled:[yes/no] 啟動os后啟動對應(yīng)service的選項(xiàng);是否開機(jī)啟動

name:需要進(jìn)行操作的service名字

state:[stared/stoped/restarted/reloaded] 服務(wù)最終操作后的狀態(tài)蚪燕。

shell模塊:

示例:ansible test -m shell -a 'sh /date/1.sh chdir=/date/www creates=/date/www/1.txt'

執(zhí)行test組所有被控端娶牌,先切換到/date/www目錄,如果/date/www/1.txt不存在馆纳,則執(zhí)行/data/1.sh诗良,

chdir:command一樣的,運(yùn)行shell之前cd到某個目錄鲁驶;

creates:跟command一樣的鉴裹,如果某個文件存在則不運(yùn)行shell;

removes:跟command一樣的钥弯,如果某個文件不存在則不運(yùn)行shell径荔;

script模塊:

可以實(shí)現(xiàn)被控端上可以執(zhí)行ansible控制端的腳本。

示例:ansible test -m script -a '/4.40/www/2.sh'

在test組所有被控端執(zhí)行ansible控制端中/4.40./www/目錄下的2.sh

setup模塊:

用于收集遠(yuǎn)程主機(jī)的一些基本信息脆霎。

示例:ansible test -m setup

收集test組所有主機(jī)的基本信息

###### Ansible Playbooks

#playbook的核心元素:

Tasks:任務(wù)

Variables:變量

Templates:模板

Handlers:處理器

Roles:角色

ansible --yaml語法

一:介紹:

YAML是一個可讀性高的用來表達(dá)資料序列的格式总处。YAML參考了其他多種語言,包括:XML、C語言绪穆、Python辨泳、Perl等。

YAML不是XML玖院,不過菠红,在開發(fā)的這種語言時(shí),YAML的意思其實(shí)是:“Yet? Another Makup Language”(仍是一種標(biāo)記語言)

特點(diǎn):

1难菌、可讀性好

2试溯、和腳本的交互性好

3、使用實(shí)現(xiàn)怨言的數(shù)據(jù)類型

4郊酒、有一個一致的信息模型

5遇绞、易于實(shí)現(xiàn)键袱。

6、可以基于流來處理摹闽。

7蹄咖、表達(dá)能力強(qiáng),擴(kuò)展性好付鹿。

二:yaml語法

yaml的語法和其他高階語言類似澜汤,并且可以簡單表達(dá)清單,散列表舵匾,標(biāo)量等數(shù)據(jù)結(jié)構(gòu)俊抵,其結(jié)構(gòu)通過空格來展示,序列里的項(xiàng)目用“-”來表示坐梯,map里的鍵值對用“:”分隔徽诲,下面是一個示例:

name:john smith

age:41

gender:male

spouse:

name:jane smith

age:37

gender:female

children:

-? name:jimmy smith

age:17

gender:male

-? name:jenny smith

age:14

gender:female

列表: 也叫做序列

列表中的所有元素都用“-”打頭,例如:

- apple

- orange

- mango

字典:

字典通過key與value進(jìn)行標(biāo)識吵血,例如:

---

name:example developer

job:developer

skill:elite

也可以將key:value放置與{}中表示谎替,例如:

{name:example developer,job:developer践瓷,skill:elite}

###### Ansible基礎(chǔ)元素

1.變量

1.1 變量命名

變量名僅能由字母院喜,數(shù)字和下劃線組成,且只能以字母開頭

1.2 facts

facts是由正在通信的遠(yuǎn)程目標(biāo)主機(jī)返回的信息晕翠,這些信息能保存在ansible變量中喷舀,要獲取指定的遠(yuǎn)程主機(jī)所支持的素有的facts,可使用如下命令進(jìn)行

#ansible hostname -m setup

1.3 register

注冊器:把任務(wù)的輸出定義為變量淋肾,然后用于其他任務(wù)硫麻,示例如下:

tasks:

- shell:/usr/bin/foo

register:foo_result

ignore_errors:True

1.4 通過命令行傳遞變量

在運(yùn)行playbooks的時(shí)候也可以傳遞一些變量供playboo使用:示例如下:

ansible-playbook test.yml --extra-vars"hosts=www user=mageedu"

1.5 通過roles傳遞變量

當(dāng)給一個主機(jī)應(yīng)用角色的時(shí)候可以傳遞變量,然后在角色內(nèi)使用這些變量樊卓,示例如下:

- hosts:webservers

roles:

- common

- { roles:foo_app_instance拿愧,dir:'/web/htdocs/a.com',port 8000 }

2.Inventory

ansible的主要功用在于批量主機(jī)操作,為了便捷地使用其中的部分主機(jī)碌尔,可以在inventory file中將其分組命名浇辜,默認(rèn)的inventory file為/etc/ansible/hosts

Inventory file可以有多個,且也可以通過Dynamic Inventory動態(tài)生成唾戚;

2.1 Inventory文件格式

Inventory文件INI文件風(fēng)格柳洋,中括號中的字符為組名,可以將同一個主機(jī)分配到多個不同的組叹坦,此外熊镣,當(dāng)被控制的主機(jī)使用了非默認(rèn)的ssh 22端口時(shí),還可以在主機(jī)ip或主機(jī)名之后使用冒號加端口號標(biāo)明;示例:

[webservers]? ? ##被控組組名

192.168.1.100? ##使用ip添加被控端主機(jī)

www.mageedu.com:222 ##如果被控端沒有使用默認(rèn)的ssh端口绪囱,可用冒號加端口號注明

如果主機(jī)名稱遵循相似的命名格式测蹲,還可以使用列表的方式標(biāo)識主機(jī),示例:

[webservers]

www[1:50].example.com ##表示www1.example.com-www50.example.com的主機(jī)

2.2 主機(jī)變量

可以在Inventory中定義主機(jī)時(shí)為其添加主機(jī)變量以便于在playbook中使用鬼吵,例如:

[webservers]

www1.mageedu.com http_port-80 maxRequestsPerChild-808

www2.mageedu.com http_port-8080 maxRequestsPerChild-909

2.3 組變量

組變量是指賦予給指定組內(nèi)所有主機(jī)上的在playbook中可用的變量扣甲,例如:

[webservers]

www1.mageedu.com

www2.mageedu.com

[webservers:vars]? :vars是固定寫法,指定下邊兩行都可以分別對應(yīng)給webservers組的兩臺主機(jī)

ntp_server-ntp.mageedu.com

nfs_server-nfs.mageedu.com

2.4 組嵌套

Inventory中齿椅,組還可以包含其他的組文捶,并且也可以向組中的主機(jī)指定變量,不過媒咳,這些變量只能在ansible-playbook中使用,而ansible不支持种远,例如:

[apache]

httpd1.mageedu.com

httpd2.mageedu.com

[nginx]

nginx1.mageedu.com

nginx2.mageedu.com

[webservers:children]? webservers組內(nèi)包含apache和nginx兩個組涩澡,:children表示引用了其他組用來做webservers組的子組

apache

nginx

[webservers:vars]

ntp_server-ntp_mageedu.com

2.5 Inventory參數(shù)

ansible基于ssh連接Inventory中指定的遠(yuǎn)程主機(jī)時(shí),還可以通過參數(shù)指定其交互方式坠敷,這些參數(shù)如下所示:

> ansible_ssh_host

> ansible_ssh_port

> ansible_ssh_user

> ansible_ssh_pass

> ansible_sudo_pass

> ansible_connection

> ansible_ssh_pricate_key_file

> ansible_shell_type

> ansible_python_interpreter

> ansible\_\*\_interpreter

###### Ansible playbooks

playbooks是一個或多個“play”組成的列表妙同,play的主要功能在于將事先歸并為一組的主機(jī)裝扮成事先通過ansible中的tasks定義好的角色,從根本上來講膝迎,所謂task無非是調(diào)用ansible的一個module粥帚,將多個play組織在一個playbook中,即可以讓他們連同起來按事先編排的機(jī)制同唱一臺大戲限次,下面是一個簡單示例:

- hosts:webservers? ##定義inventory芒涡,主機(jī)組

vars:

http_port:80

max_clients:256

remote_user:root ##定義連接到遠(yuǎn)程主機(jī)時(shí),以哪個用戶的身份執(zhí)行

tasks:

- name:install apache is at the latest version ##描述卖漫,可隨意寫

yum:name=httpd state=latest ##使用yum模塊费尽,指定選項(xiàng),安裝最新版本的httpd

- name: ensure apache is running ##描述信息

service:name=httpd state=started ##使用service模塊羊始,指定httpd狀態(tài)

handlers: ##處理器

- name:restart apache

service:name=httpd state=restarted

playbook組成結(jié)構(gòu):

Inventory

Modules

Ad Hoc Commands

Playbooks

Tasks:任務(wù)旱幼,即調(diào)用模塊完成的某操作

Variables:變量

Templates:模板

Handlers:處理器,在某條件滿足時(shí)突委,會由某事件觸發(fā)執(zhí)行的操作

Roles:角色

hosts和remote_user:

playbook中的每一個play的目的都是為了讓某個或某些主機(jī)以某個指定的用戶身份執(zhí)行任務(wù)柏卤,hosts即用于指定要執(zhí)行指定任務(wù)的主機(jī),其可以是一個或多個由冒號分隔主機(jī)組匀油,remote_user則用于指定遠(yuǎn)程主機(jī)上的執(zhí)行任務(wù)的用戶缘缚,如以上示例中的

- hosts:webservers

remote_user:root

不過,remote_user也可以用于各個tasks中(可能每個tasks指定的用戶不一樣)钧唐,也可以指定其通過sudo的方式在遠(yuǎn)程主機(jī)上執(zhí)行操作忙灼,其可用于play全局或某任務(wù),此外,甚至可以在sudo時(shí)使用sudo_user指定sudo時(shí)切換的用戶该园;

- hosts:webservers

remote_user:mageedu

tasks:

- name:test connection

ping:

remote_user:mageedu

sudo:yes? ##以remote_user指定的用戶切入進(jìn)去酸舍,然后以這個用戶的身份sudo到root用戶去

任務(wù)列表和action:

play的主體部分是task、list里初、task list中的各任務(wù)按次序逐個在hosts中指定的所有主機(jī)上執(zhí)行啃勉,即在所有主機(jī)上完成第一個任務(wù)后再執(zhí)行第二個任務(wù),在運(yùn)行自上而下某playbook時(shí)双妨,如果中途發(fā)生錯誤淮阐,所有已執(zhí)行任務(wù)都可能回滾,因此刁品,在更正playbook后重新執(zhí)行一次即可泣特;

task的目的是使用指定的參數(shù)執(zhí)行模塊,而在模塊參數(shù)中可以使用變量挑随,模塊執(zhí)行是冪等的状您,這意味這多次執(zhí)行是安全的,因?yàn)槠浣Y(jié)果均一致兜挨;

每個task都應(yīng)該有個name膏孟,用于playbook的執(zhí)行結(jié)果輸出,建議其內(nèi)容盡可能清晰地描述任務(wù)執(zhí)行步驟拌汇,如果為提供name柒桑,則執(zhí)行action的結(jié)果將用于輸出;

定義task的可以使用"action:module option"或"module:option"的格式噪舀,推薦使用后者以實(shí)現(xiàn)向后兼容魁淳;

tasks:

- name:make sure apache is running

service:name=httpd state=running

在眾多模塊中,只有command和shell模塊僅需要給定一個列表而無需使用key:value格式傅联,例如:

tasks:

- name:disable selinux

command:/sbin/setenforce 0

如果命令或腳本的退出碼不為零先改,可以使用如下方式替代:

tasks:

- name:run this command and ignore the result

shell:/usr/bin/SOME COMMAND||/bin/true

在執(zhí)行/usr/bin/下的某條命令時(shí),如果報(bào)錯了蒸走,但是這不影響我們本身意愿或者執(zhí)行結(jié)果時(shí)仇奶,可以使用/bin/true將退出碼強(qiáng)制改為true

或者使用ignore_errors來忽略錯誤信息:

tasks:

- name:run this command and ignore the result

shell:/usr/bin/SOME COMMAND

ignore_errors:True

Handlers:處理器

用于當(dāng)關(guān)注的資源發(fā)生變化時(shí)采取一定的操作:

“notify”這個action可用于在每個play的最后被觸發(fā),這樣可以避免多次有改變發(fā)生時(shí)每次都執(zhí)行指定的操作比驻,取而代之该溯,? ? 僅在所有的變化發(fā)生完成后一次性的執(zhí)行指定操作,在notify中列出的操作成為Handlers别惦,也即notify中調(diào)用handlers中定義的操作狈茉;

示例:

- hosts: test? #\\主機(jī)組,在/etc/ansible/hosts定義

remote_user: root # \\遠(yuǎn)端執(zhí)行任務(wù)的用戶

tasks: #\\任務(wù)

- name: install httpd? #\\任務(wù)描述

command: yum -y install httpd? #\\調(diào)用ansible的command模塊安裝httpd

- name: install configuration file for httpd #\\任務(wù)描述

copy: src=/data/httpd.conf dest=/etc/httpd/conf/httpd.conf? #\\調(diào)用ansible的copy模塊復(fù)制ansible管理端的文件到被控端

notify: #\\定義一個notify掸掸,當(dāng)執(zhí)行copy這個模塊的命令時(shí)執(zhí)行notify

- restart httpd #\\? notify引用的handlers的名字為restart httpd(必須跟handlers的名字一樣)

handlers:? #\\ 定義一個handlers

- name: restart httpd? #\\名字為restart httpd

service: name=httpd state=restarted? #\\調(diào)用ansible的service模塊氯庆,重啟httpd服務(wù)

###### playbook的一個簡單實(shí)例:

- hosts: test? ? ? #\\主機(jī)組蹭秋,在/etc/ansible/hosts定義

remote_user: root? ? # \\遠(yuǎn)端執(zhí)行任務(wù)的用戶

tasks:? ? ? ? #\\任務(wù)

- name: install httpd? ? ? #\\任務(wù)描述

command: yum -y install httpd? ? #\\調(diào)用ansible的command模塊安裝httpd

###### 在playbook中使用變量:

- hosts: test? ? ? #\\主機(jī)組,在/etc/ansible/hosts定義

remote_user: root? ? # \\遠(yuǎn)端執(zhí)行任務(wù)的用戶

vars: ##定義變量package和service

- package: httpd

- service: httpd

tasks:? ? #\\任務(wù)

- name: rpm -e httpd

command: rpm -e httpd

- name: install {{ package }}? ? ? #\\任務(wù)描述 調(diào)用變量用{{ }}引用

command: yum -y install httpd? ? ? #\\調(diào)用ansible的command模塊安裝httpd

- name: install configuration file for httpd

copy: src=/data/httpd.conf dest=/etc/httpd/conf/httpd.conf

notify:

- restart httpd

handlers:

- name: restart httpd

service: name=httpd state=restarted

###### Ansible使用條件測試

如果需要根據(jù)變量堤撵、facts或此前任務(wù)的執(zhí)行結(jié)果來做為某task執(zhí)行還是不執(zhí)行的前提時(shí)需要用到條件測試仁讨;

1.when語句

在task后添加when子句即可使用條件測試,when語句支持jinja2表達(dá)式語法实昨,例如:

tasks:

- name: "shutdown debian system"

command: /sbin/shutdown -h now

when: ansible_os_family == "Debian"

當(dāng)系統(tǒng)為debian系統(tǒng)時(shí)洞豁,則關(guān)機(jī)

- hosts: test

remote_user: root

tasks:

- name: yum httpd

command: yum -y install httpd

when: ansible_fqdn == "wwww"

當(dāng)test組的某臺主機(jī)的主機(jī)名為wwww時(shí),才給符合條件的主機(jī)安裝httpd

###### Ansible playbook使用迭代(循環(huán))

當(dāng)有需要重復(fù)性執(zhí)行的任務(wù)時(shí)荒给,可以使用迭代機(jī)制丈挟,其使用格式為將需要迭代的內(nèi)容定義為item變量引用,并通過with_item語句來指明迭代的元素列表即可志电,例如:

- hosts: test

remote_user: root

tasks:

- name: touch file

file: name={{ item }} state=directory? ##循環(huán)創(chuàng)建ietm曙咽,而item對應(yīng)的值為with_items中指定的

with_items:? ##列出item索要對應(yīng)的值

- file1

- file2

事實(shí)上,with_items中可以使用元素還可為hashes挑辆,例如:

- hosts: test

remote_user: root

tasks:

- name: touch file

user: name={{ item.name}} state=present groups={{ item.groups }}? ##在各個主機(jī)創(chuàng)建用戶桐绒,以及指定用戶的基本組

with_items:

- { name: 'testuser1', groups: 'nginx' }

- { name: 'testuser2', groups: 'apache' }

###### Ansible中使用Templates

http://blog.csdn.net/modoo_junko/article/details/45460693

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市之拨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咧叭,老刑警劉巖蚀乔,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異菲茬,居然都是意外死亡吉挣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門婉弹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睬魂,“玉大人,你說我怎么就攤上這事镀赌÷认” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵商佛,是天一觀的道長喉钢。 經(jīng)常有香客問我,道長良姆,這世上最難降的妖魔是什么肠虽? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮玛追,結(jié)果婚禮上税课,老公的妹妹穿的比我還像新娘闲延。我一直安慰自己,他們只是感情好韩玩,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布垒玲。 她就那樣靜靜地躺著,像睡著了一般啸如。 火紅的嫁衣襯著肌膚如雪侍匙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天叮雳,我揣著相機(jī)與錄音想暗,去河邊找鬼。 笑死帘不,一個胖子當(dāng)著我的面吹牛说莫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寞焙,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼储狭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了捣郊?” 一聲冷哼從身側(cè)響起辽狈,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎呛牲,沒想到半個月后刮萌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡娘扩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年着茸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琐旁。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡涮阔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出灰殴,到底是詐尸還是另有隱情敬特,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布牺陶,位于F島的核電站擅羞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏义图。R本人自食惡果不足惜减俏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碱工。 院中可真熱鬧娃承,春花似錦奏夫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梳猪,卻和暖如春麻削,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背春弥。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工呛哟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人匿沛。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓扫责,卻偏偏與公主長得像,于是被迫代替她去往敵國和親逃呼。 傳聞我的和親對象是個殘疾皇子鳖孤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 作為背鍋俠運(yùn)維工作的基本流程 運(yùn)維工具的分類 : ansible的模塊化: ansible密鑰登陸 ansible...
    二郎5閱讀 4,155評論 0 10
  • 一.ansible (1) ansible: ansible是一款新出現(xiàn)的自動化運(yùn)維系統(tǒng),基于python開發(fā)并集...
    楠人幫閱讀 1,941評論 0 8
  • 本文主要內(nèi)容均收集于網(wǎng)絡(luò)上的博文資料抡笼,僅以此文作為學(xué)習(xí)總結(jié)苏揣。BTW,目前Ansible對python3的支持還不是...
    qiuyi943閱讀 18,233評論 1 15
  • 1. 什么是Ansible推姻,它有什么用腿准? Ansible它是個集配置管理和應(yīng)用部署于一體的自動化運(yùn)維工具。 應(yīng)用情...
    午覺不眠Orz閱讀 1,518評論 0 0
  • Ansible簡介 Ansible是2013年推出的一款I(lǐng)T自動化和DevOps軟件拾碌,目前由Redhat已簽署An...
    魏鎮(zhèn)坪閱讀 2,368評論 1 6