日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Ansible自动化运维基础-------ploybook

發(fā)布時(shí)間:2025/3/21 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible自动化运维基础-------ploybook 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前提提要:此文是https://blog.csdn.net/kali_yao/article/details/119983133進(jìn)階板


目錄

一.ploybook的介紹及用法介紹

1. Ploubook的概述:

2.YAML是什么??

3.Playbook語法格式要求如下:

二.用法案例

1.編寫第一個(gè)Playbook(劇本)

2.用戶管理,創(chuàng)建系統(tǒng)賬戶、賬戶屬性、設(shè)置密碼

3.使用playbook管理邏輯卷

4.使用playbook管理軟件

5.firewalld模塊配置防火墻策略

6.template模塊

7.Ansible變量應(yīng)用案例

8.定義變量的方法

三.Ansible高級(jí)語法應(yīng)用

1.error錯(cuò)誤處理

2.handlers

3.when條件判斷

4.block任務(wù)塊

5.always語句定義無論block任務(wù)是否成功,都要執(zhí)行的任務(wù)

6.loop循環(huán)

四.Ansible Roles角色

1.roles的簡介

2.roles目錄介紹

3.創(chuàng)建一個(gè)簡單的roles

4.寫一個(gè)稍微難一點(diǎn)的rodes(自動(dòng)部署Web集群)



Ansible ad-hoc可以通過命令行形式遠(yuǎn)程管理其他主機(jī),適合執(zhí)行一些臨時(shí)性簡單任務(wù)。另外還有一種遠(yuǎn)程管理的方式叫Playbook,Ansible Playbook中文名稱叫劇本,它將經(jīng)常需要執(zhí)行的任務(wù)寫入一個(gè)文件,這個(gè)文件就叫劇本。

一.ploybook的介紹及用法介紹

1. Ploubook的概述:

劇本中可以包含多個(gè)任務(wù)

劇本寫后,我們隨時(shí)根據(jù)劇本,執(zhí)行相關(guān)的任務(wù)命令

Playbook劇本要求按照YAML格式編寫

適合執(zhí)行周期性經(jīng)常執(zhí)行的復(fù)雜任務(wù)

2.YAML是什么??

YAML是一個(gè)可讀性高、用來表達(dá)數(shù)據(jù)序列的格式語言

YAML:YAML Ain't a Markup Language

YAML以數(shù)據(jù)為中心,重點(diǎn)描述數(shù)據(jù)的關(guān)系和結(jié)構(gòu)

YAML的格式要求如下:

"#"代表注釋,一般第一行為三個(gè)橫杠(---)

鍵值(key/value)對(duì)使用":"表示,數(shù)組使用"-"表示,"-"后面有空格

key和value之間使用":"分隔,":"后面必須有空格

一般縮進(jìn)由兩個(gè)或以上空格組成

相同層級(jí)的縮進(jìn)必須對(duì)齊,縮進(jìn)代表層級(jí)關(guān)系

全文不可以使用tab鍵

區(qū)分大小寫

擴(kuò)展名為yml或者yaml

跨行數(shù)據(jù)需要使用>或者|,其中|會(huì)保留換行符

YAML 官方網(wǎng)站:http://www.yaml.org

3.Playbook語法格式要求如下:

playbook采用YAML格式編寫

playbook文件中由一個(gè)或多個(gè)play組成每個(gè)play中可以包含: hosts(主機(jī))、tasks(任務(wù))、vars(變量)等元素組成

使用ansible-playbook命令運(yùn)行playbook劇本??????

二.用法案例

1.編寫第一個(gè)Playbook(劇本)

hosts、tasks、name是關(guān)鍵詞(不可修改),ping是模塊,調(diào)用不同模塊完成不同任務(wù)。

vim ~/ansible/test.yml --- - hosts: all????????????????????????????????#hosts定義要遠(yuǎn)程誰?tasks:????????????????????????????????????#tasks定義遠(yuǎn)程后要執(zhí)行的任務(wù)有哪些?- name: This is my first playbook #name后面的具體內(nèi)容可以任意ping:

ansible-playbook ~/ansible/test.yml??? #運(yùn)行

?ansible-playbook ~/ansible/test.yml???? --check #只檢測不運(yùn)行

2.用戶管理,創(chuàng)建系統(tǒng)賬戶、賬戶屬性、設(shè)置密碼

vim ~/ansible/test_john.yml --- - hosts: webservertasks:- name: Add the user 'johnd' user:name: johnduid: 1040group: daemonshell: /bin/bashgroups: bin,admpassword: "{{ '123' | password_hash('sha512') }}"

3.使用playbook管理邏輯卷

vim ~/ansible/lvm.yml --- - hosts: node2?????????????????????#遠(yuǎn)程node2主機(jī)tasks:- name: Create a new primary partition with a size of 1GiB #任務(wù)的描述信息parted: #調(diào)用parted模塊進(jìn)行分區(qū) device: /dev/vdb #對(duì)/dev/vdb磁盤進(jìn)行分區(qū)(磁盤名稱不要照抄)label: gpt #分區(qū)表類型為gpt,或msdosnumber: 1 #分區(qū)編號(hào)(創(chuàng)建第幾個(gè)分區(qū))state: present #present是創(chuàng)建分區(qū),absent是刪除分區(qū)part_start: 1MiB #分區(qū)的開始位置(默認(rèn)從最開始位置分區(qū))part_end: 1GiB #分區(qū)的結(jié)束位置(不寫就分到磁盤最后位置)- name: Create a volume group on top of /dev/vdb1 #第二個(gè)任務(wù)的描述信息lvg: #調(diào)用lvg模塊,創(chuàng)建VG卷組vg: my_vg #要?jiǎng)?chuàng)建的卷組名稱pvs: /dev/vdb1 #使用哪個(gè)分區(qū)創(chuàng)建PV- name: Create a logical volume of 512m #第三個(gè)任務(wù)的描述信息lvol: #調(diào)用lvol模塊創(chuàng)建LVvg: my_vg #使用哪個(gè)VG創(chuàng)建LVlv: my_lv #需要?jiǎng)?chuàng)建的LV名稱size: 512m #要?jiǎng)?chuàng)建的LV大小,可以不指定單位,默認(rèn)單位m- filesystem: #格式化分區(qū)fstype: ext4 #格式化類型dev: /dev/sdb1 #哪塊磁盤force: true #強(qiáng)制執(zhí)行

4.使用playbook管理軟件

--- - hosts: webserver #需要遠(yuǎn)程的主機(jī)是誰tasks: #定義劇本需要執(zhí)行的任務(wù)- name: Install a list of packages #第一個(gè)任務(wù)的描述信息 yum: #調(diào)用yum模塊安裝軟件name: #安裝軟件的名字,它的值有多個(gè),使用數(shù)組-- httpd #安裝httpd軟件- mariadb #安裝mariadb軟件- mariadb-server #安裝mariadb-server- name: install the 'RPM Development Tools' package group #第二個(gè)任務(wù)的描述信息yum: #調(diào)用yum模塊安裝軟件組包name: "@RPM Development Tools" #安裝哪個(gè)組包,@是關(guān)鍵詞- name: update software #第三個(gè)任務(wù)的描述信息yum: #調(diào)用yum模塊升級(jí)軟件name: '*' #需要升級(jí)哪些軟件state: latest #latest代表升級(jí)軟件

5.firewalld模塊配置防火墻策略

--- - hosts: test #hosts定義需要遠(yuǎn)程的主機(jī)tasks: #tasks定義需要執(zhí)行哪些任務(wù)- name: install firewalld. #name為第一個(gè)任務(wù)定義描述信息yum: #第一個(gè)任務(wù)調(diào)用yum模塊安裝軟件name: firewalld #需要安裝的軟件名稱為firewalldstate: present #state等于present代表安裝軟件- name: run firewalld. #定義第二個(gè)任務(wù)的描述信息service: #第二個(gè)任務(wù)調(diào)用service模塊啟動(dòng)服務(wù)name: firewalld #啟動(dòng)的服務(wù)名稱為firewalldstate: started #state等于started代表啟動(dòng)服務(wù)enabled: yes #enabled等于yes是設(shè)置服務(wù)為開機(jī)自啟動(dòng)- name: set firewalld rule. #第三個(gè)任務(wù)的描述信息firewalld: #第三個(gè)任務(wù)調(diào)用firewalld模塊設(shè)置防火墻規(guī)則port: 80/tcp #在防火墻規(guī)則中添加一個(gè)放行tcp,80端口的規(guī)則permanent: yes #permanent 是設(shè)置永久規(guī)則immediate: yes #immediate 是讓規(guī)則立刻生效state: enabled #state等于enabled是添加防火墻規(guī)則

6.template模塊

copy模塊可以將一個(gè)文件拷貝給遠(yuǎn)程主機(jī),但是如果希望每個(gè)拷貝的文件內(nèi)容都不一樣呢?如何給所有web主機(jī)拷貝index.html內(nèi)容是各自的IP地址?

Ansible可以利用Jinja2模板引擎讀取變量,之前在playbook中調(diào)用變量,也是Jinja2的功能,Jinja2模塊的表達(dá)式包含在分隔符"{{ }}"內(nèi)。

vim ~/ansible/index.html #創(chuàng)建一個(gè)文件并寫入內(nèi)容 Welcome to {{ansible_hostname}} on {{ ansible_eth0.ipv4.address }}. vim ~/ansible/template.yml --- - hosts: webservertasks:- name: use template copy index.html to webserver.template: #拷貝文件src: ~/ansible/index.html #原文件dest: /tmp/index.html #目標(biāo)

7.Ansible變量應(yīng)用案例

1)setup模塊

ansible_facts用于采集被管理設(shè)備的系統(tǒng)信息,所有收集的信息都被保存在變量中,每次執(zhí)行playbook默認(rèn)第一個(gè)任務(wù)就是Gathering Facts,使用setup模塊可以查看收集到的facts信息。也就是所有環(huán)境變量

ansible test -m setup

2)debug模塊

debug模塊可以顯示變量的值,可以輔助排錯(cuò),通過msg可以顯示變量的值,變量需要使用{{}}擴(kuò)起來。

--- - hosts: testtasks:- debug:msg: "主機(jī)名是:{{ ansible_hostname }}"- debug:msg: "總內(nèi)存大小:{{ ansible_memtotal_mb }}"

8.定義變量的方法

Ansible支持十幾種定義變量的方式,這里我們僅介紹其中一部分變量。

下面是根據(jù)優(yōu)先級(jí)排序的定義方式:

????????Inventory變量 指定主機(jī)清單的變量

????????Host Facts變量?? 主機(jī)事實(shí)變量

????????Playbook變量 劇本里的變量

????????變量文件 優(yōu)先集先從變量文件開始

1))Inventory變量(在主機(jī)清單配置文件中定義變量)清單不是yml格式。

vim ~/ansible/inventory [test] node1 iname="nb" [proxy] node2 [webserver] node[3:4] [webserver:vars](不可改變的變量) iname="dachui" --- - hosts: node1,webserver #定義需要遠(yuǎn)程管理的主機(jī)是誰 tasks: #劇目要完成哪些任務(wù)- name: create a user with var. #劇目中的第一個(gè)任務(wù)描述信息user: #調(diào)用user模塊創(chuàng)建用戶name: "{{ iname }}" #需要?jiǎng)?chuàng)建的用戶名是iname這個(gè)變量

#在ansible劇本中當(dāng)調(diào)用變量時(shí),開始位置就調(diào)用變量,就需要在{{}}外面加雙引號(hào)

#如果是在后面或者中間位置調(diào)用變量{{}}外面可以不加雙引號(hào),也可以加雙引號(hào)

2)Host Facts變量(可以直接調(diào)用ansible收集的系統(tǒng)信息)

--- - hosts: testtasks:- name: create user.user:name: "{{ansible_hostname}}"

#定義劇本,遠(yuǎn)程所有被管理主機(jī),調(diào)用user模塊,創(chuàng)建用戶

#需要?jiǎng)?chuàng)建的用戶名ansible_hostname是一個(gè)ansible_facts變量

3)Playbook變量(使用vars關(guān)鍵詞可以在playbook內(nèi)定義變量)

--- - hosts: testvars: #vars是關(guān)鍵詞,用來定義變量用的iname: heal #具體變量名是iname,值是healipass: '123456' #再定義一個(gè)變量名是ipass,值是123456 #注意密碼必須是字符串,需要引號(hào) tasks: #tasks定義需要執(zhí)行的任務(wù)- name: Use variables create user. #給任務(wù)寫個(gè)描述信息 user: #調(diào)用user模塊創(chuàng)建用戶name: "{{ iname }}" #用戶名的是前面定義的變量password: "{{ ipass | password_hash('sha512') }}"

4)單獨(dú)定義個(gè)變量文件

vim ~/ansible/variables.yml --- iname: cloud ipass: '123456'

在playbook中用vars_files調(diào)用該文件

--- - hosts: testvars_files: variables.yml #當(dāng)變量比較多時(shí),專門定義一個(gè)文件用來存變量tasks:- name: create user.user:name: "{{ iname }}"password: "{{ ipass | password_hash('sha512') }}"

三.Ansible高級(jí)語法應(yīng)用

1.error錯(cuò)誤處理

默認(rèn)ansible在遇到error會(huì)立刻停止playbook,使用ignore_errors可以忽略錯(cuò)誤,繼續(xù)后續(xù)的任務(wù)。

--- - hosts: testtasks:- name: start a service that does not exist.service:name: hehestate: startedignore_errors: true #針對(duì)某一個(gè)任務(wù)忽略錯(cuò)誤(ignore_errors是關(guān)鍵詞) - name: touch a file. # ignored=1(忽略1個(gè))file:path: /tmp/service.txtstate: touch --- - hosts: testignore_errors: true #針對(duì)playbook全局忽略錯(cuò)誤 tasks:- name: start a service that does not exist.service:name: hehestate: started- name: touch a file.file:path: /tmp/service.txtstate: touch

2.handlers

在劇本中tasks用來定義任務(wù)(一定會(huì)執(zhí)行),handlers也可以定義任務(wù)(不一定執(zhí)行),handlers任務(wù)要想執(zhí)行必須要被別人觸發(fā)才能執(zhí)行

--- - hosts: testtasks:(一定安順序執(zhí)行)- 任務(wù)1notify:任務(wù)5(僅當(dāng)?shù)谝粋€(gè)執(zhí)行且為黃色再執(zhí)行【綠色不行】)- 任務(wù)2handlers:(不一定執(zhí)行)(僅當(dāng)前面執(zhí)行且為黃色再執(zhí)行【綠色不行】)- 任務(wù)5(當(dāng)任務(wù)相同只執(zhí)行一次而且是在tasks執(zhí)行完后再執(zhí)行)- 任務(wù)6

3.when條件判斷

when可以定義判斷條件,條件為真時(shí)才執(zhí)行某個(gè)任務(wù)。 常見條件操作符有:==、!=、>、>=、<、<=。多個(gè)條件可以使用and(并且)或or(或者)分割,when表達(dá)式中調(diào)用變量不要使用{{ }}。

--- - hosts: testtasks:- name: check memory size.service:name: NetworkManagerstate: stoppedwhen: ansible_memfree_mb < 700

#被管理端主機(jī)剩余內(nèi)存不足700M則關(guān)閉NetworkManager服務(wù)(也可以關(guān)閉別的不需要的服務(wù))skipped=1(跳過一個(gè))

4.block任務(wù)塊

如果我們需要當(dāng)條件滿足時(shí)執(zhí)行N個(gè)任務(wù),我們可以給N個(gè)任務(wù)后面都加when判斷(但是很麻煩),此時(shí)可以使用block定義一個(gè)任務(wù)塊,當(dāng)條件滿足時(shí)執(zhí)行整個(gè)任務(wù)塊.

任務(wù)塊就是把一組任務(wù)合并為一個(gè)任務(wù)組,使用block語句可以將多個(gè)任務(wù)合并為一個(gè)任務(wù)組。

--- - hosts: testtasks:- name: define a group of tasks.block: #block是關(guān)鍵詞,定義任務(wù)組- name: install httpd #任務(wù)組中的第一個(gè)任務(wù)yum: #調(diào)用yum模塊安裝httpd軟件包name: httpdstate: present- name: start httpd #任務(wù)組中的第二個(gè)任務(wù)service: #調(diào)用service模塊啟動(dòng)httpd服務(wù)name: httpdstate: startedwhen: ansible_distribution == "RedHat" #僅當(dāng)條件滿足再執(zhí)行任務(wù)組

注意:when和block是對(duì)齊的,他們?cè)谝粋€(gè)級(jí)別,當(dāng)條件滿足時(shí)要執(zhí)行的是任務(wù)組(不是某一個(gè)任務(wù))

5.always語句定義無論block任務(wù)是否成功,都要執(zhí)行的任務(wù)

--- - hosts: testtasks:- block:- name: touch a file test1.txtfile:name: /tmp/test1.txt #如果修改為/tmp/xyz/test1.txt就無法創(chuàng)建成功 state: touchrescue:(block成功則rescue失敗)(反之即可)- name: touch a file test2.txtfile:name: /tmp/test2.txtstate: touchalways:(總是執(zhí)行)- name: touch a file test3.txtfile:name: /tmp/test3.txtstate: touch

主:Ansible從上到下執(zhí)行

6.loop循環(huán)

相同模塊需要反復(fù)被執(zhí)行怎么處理?使用loop循環(huán)可以避免重復(fù)

--- - hosts: testtasks:- name: mkdir multi directory.file:path=/tmp/{{item}} #注意,item是關(guān)鍵字,調(diào)用loop循環(huán)的值 state=directory (目前版本還是可以這么寫的)loop: #loop是關(guān)鍵詞,定義循環(huán)的值,下面是具體的值- School- Legend- Life

四.Ansible Roles角色

1.roles的簡介

為了實(shí)現(xiàn)不同的功能,我們會(huì)編寫大量的playbook文件。而且,每個(gè)playbook還可能會(huì)調(diào)用其他文件(如變量文件),對(duì)于海量的、無規(guī)律的文件,管理起來非常痛苦!

Ansible從1.2版本開始支持Role,Role是管理ansible文件的一種規(guī)范(目錄結(jié)構(gòu)),Role(角色)會(huì)按照標(biāo)準(zhǔn)的規(guī)范,自動(dòng)到特定的目錄和文件中讀取數(shù)據(jù)。

如果我們創(chuàng)建了一個(gè)名稱為user.example的Role(角色),則其標(biāo)準(zhǔn)的目錄結(jié)構(gòu)如下

2.roles目錄介紹

defualts/main.yml?????? :定義變量的缺省值,優(yōu)先級(jí)較低
vars/main.yml????????????? :定義變量,優(yōu)先級(jí)高
files目錄????????????????????? :存儲(chǔ)靜態(tài)文件的目錄,如tar包、音樂、視頻等
templates目錄??????????? :存放動(dòng)態(tài)數(shù)據(jù)文件的地方(文件中包含了變量的模板文件)
meta/main.yml??? ???????? :寫作者、版本等描述信息
README.md????????????????:整個(gè)角色(role)的描述信息
handlers/main.yml????????:定義handlers
tasks/main.yml?????????????? :定義任務(wù)的地方

3.創(chuàng)建一個(gè)簡單的roles

公共Roles倉庫(https://galaxy.ansible.com)管理

1)創(chuàng)建目錄
mkdir ~/ansible/roles

2)創(chuàng)建角色

使用ansible-galaxy install可以直接下載Role,也可以編寫requirements.yml文件下載Role。

如:直接 ansible-galaxy init? ~/ansible/roles/issue

劇本

#格式一:可以直接從Ansible Galaxy官網(wǎng)下載 - src: acandid.httpd #格式二:可以從某個(gè)git服務(wù)器下載 - src: http://gitlab.com/xxx/xxx.gitscm: gitversion: 56e00a54name: nginx-acme #格式三:可以指定位置下載tar包,支持http、https、file - src: http://example.com/myrole.tarname: myrole[root@control ansible]# ansible-galaxy install \ -r ~/ansible/roles/requirements.yml \ -p roles # -r后面跟文件名,該文件中包含了需要下載哪些role以及他們的鏈接位置 # -p 指定將下載的role保存到哪個(gè)目錄

?4.寫一個(gè)稍微難一點(diǎn)的rodes(自動(dòng)部署Web集群)

1)創(chuàng)建role角色

?ansible-galaxy? init? ~/ansible/roles/http

2)修改roles配置文件,準(zhǔn)備2臺(tái)http網(wǎng)站的素材

vim roles/http/tasks/main.yml --- - name: install httpdyum:name: httpdstate: present - name: create index.htmlcopy:content: "{{ansible_hostname}}"(不拷貝文件拷貝內(nèi)容)(等同于劇本先讀取變量成直)dest: /var/www/html/index.html - name: set firewalldfirewalld:service: httpstate: enabledpermanent: yesimmediate: yes - name: start httpdservice:name: httpdstate: startedenabled: yes

#文件中包含多個(gè)任務(wù),每個(gè)任務(wù)可以設(shè)置一個(gè)name名字(也可以沒有name)

#第一個(gè)任務(wù)調(diào)用yum模塊安裝httpd軟件包

#第二個(gè)任務(wù)調(diào)用copy模塊創(chuàng)建一個(gè)新的網(wǎng)頁文件(index.html)

????????#調(diào)用copy模塊時(shí)可以在沒有源文件的情況下,直接使用content指定文件的內(nèi)容

????????#將該內(nèi)容直接拷貝到被管理主機(jī)的某個(gè)文件中(/var/www/html/index.html)

#第三個(gè)任務(wù)調(diào)用firewalld模塊,設(shè)置防火墻規(guī)則,允許訪問http服務(wù)

#第四個(gè)任務(wù)調(diào)用service模塊將httpd服務(wù)啟動(dòng),并設(shè)置開機(jī)自啟。

3)編寫Playbook調(diào)用role,并執(zhí)行Playbook。

vim web.yml --- - hosts: webserverroles:- http [root@control ansible]# ansible-playbook web.yml

4)部署nginx代理服務(wù)器

? ????????????? (1)? 創(chuàng)建roles角色

ansible-galaxy init ~/ansible/roles/proxy

???????????????? (2) 準(zhǔn)備代理服務(wù)器需要的素材并安裝

vim ~/ansible/roles/proxy/files/nginx_install.sh #!/bin/bash dnf -y install net-tools psmisc gcc make pcre-devel openssl-devel wget https://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz/download?use_mirror=udomain

????????????????? (3)新建一個(gè)Nginx代理服務(wù)器的配置文件模板

vim ~/ansible/roles/proxy/files/nginx.conf worker_processes 2; #error_log logs/error.log; events {worker_connections 65535; }http {include mime.types;default_type application/octet-stream;sendfile on;tcp_nopush on;keepalive_timeout 65;#gzip on; upstream webs {server 192.168.4.13;server 192.168.4.14; }server {listen 80;server_name localhost;location / {proxy_pass http://webs;root html;index index.html index.htm;}error_page 404 /404.html;error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}} }

? ????????????????(4)修改role配置文件

vim roles/proxy/tasks/main.yml --- - name: install nginx through shell script.script: nginx_install.shargs:creates: /usr/local/nginx/sbin/nginx- name: copy nginx.conf to destination host.copy:src: nginx.confdest: /usr/local/nginx/conf/nginx.conf- name: run nginx service.shell: /usr/local/nginx/sbin/nginxargs:creates: /usr/local/nginx/logs/nginx.pid #nginx.pid存在,說明nginx已經(jīng)啟動(dòng)。如果該文件存在,則不再啟動(dòng)nginx。 - name: set firewalldfirewalld:service: httpstate: enabledpermanent: yesimmediate: yes

#執(zhí)行源碼編譯安裝腳本,如果已經(jīng)安裝nginx,則不再執(zhí)行安裝腳本.

#args是關(guān)鍵詞,設(shè)置script模塊的參數(shù),通過creates參數(shù)做判斷,creates也是關(guān)鍵詞 #creates后面跟文件名,如果creates判斷文件存在的話就不再執(zhí)行script模塊對(duì)應(yīng)的命令。

???????????????? (5)編寫Playbook調(diào)用role,并執(zhí)行Playbook

[root@control ansible]# vim proxy.yml --- - hosts: proxyroles:- proxy [root@control ansible]# ansible-playbook proxy.yml

總結(jié)

以上是生活随笔為你收集整理的Ansible自动化运维基础-------ploybook的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。