国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ansible的playbook劇本

這篇具有很好參考價(jià)值的文章主要介紹了ansible的playbook劇本。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

PlayBook

1.playbooks 本身由以下各部分組成

  • (1)Tasks:任務(wù),即通過(guò) task 調(diào)用 ansible 的模塊將多個(gè)操作組織在一個(gè) playbook 中運(yùn)行
  • (2)Variables:變量
  • (3)Templates:模板
  • (4)Handlers:處理器,當(dāng)changed狀態(tài)條件滿足時(shí),(notify)觸發(fā)執(zhí)行的操作
  • (5)Roles:角色

2.示例:

vim test1.yaml
---     #yaml文件以---開頭,以表明這是一個(gè)yaml文件,可省略
- name: first play     #定義一個(gè)play的名稱,可省略
  gather_facts: false    #設(shè)置不進(jìn)行facts信息收集,這可以加快執(zhí)行速度,可省略
  hosts: webservers    #指定要執(zhí)行任務(wù)的被管理主機(jī)組,如多個(gè)主機(jī)組用冒號(hào)分隔
  remote_user: root    #指定被管理主機(jī)上執(zhí)行任務(wù)的用戶
  tasks:     #定義任務(wù)列表,任務(wù)列表中的各任務(wù)按次序逐個(gè)在hosts中指定的主機(jī)上執(zhí)行
   - name: test connection    #自定義任務(wù)名稱
     ping:     #使用 module: [options] 格式來(lái)定義一個(gè)任務(wù)
   - name: disable selinux
     command: '/sbin/setenforce 0'    #command模塊和shell模塊無(wú)需使用key=value格式
     ignore_errors: True     #如執(zhí)行命令的返回值不為0,就會(huì)報(bào)錯(cuò),tasks停止,可使用ignore_errors忽略失敗的任務(wù)
   - name: disable firewalld
     service: name=firewalld state=stopped    #使用 module: options 格式來(lái)定義任務(wù),option使用key=value格式
   - name: install httpd
     yum: name=httpd state=latest
   - name: install configuration file for httpd
     copy: src=/opt/httpd.conf dest=/etc/httpd/conf/httpd.conf    #這里需要一個(gè)事先準(zhǔn)備好的/opt/httpd.conf文件
     notify: "restart httpd"    #如以上操作后為changed的狀態(tài)時(shí),會(huì)通過(guò)notify指定的名稱觸發(fā)對(duì)應(yīng)名稱的handlers操作
   - name: start httpd service
     service: enabled=true name=httpd state=started
  handlers:     #handlers中定義的就是任務(wù),此處handlers中的任務(wù)使用的是service模塊
   - name: restart httpd    #notify和handlers中任務(wù)的名稱必須一致
     service: name=httpd state=restarted

==Ansible在執(zhí)行完某個(gè)任務(wù)之后并不會(huì)立即去執(zhí)行對(duì)應(yīng)的handler,而是在當(dāng)前play中所有普通任務(wù)都執(zhí)行完后再去執(zhí)行handler,這樣的好處是可以多次觸發(fā)notify,但最后只執(zhí)行一次對(duì)應(yīng)的handler,從而避免多次重啟。

3.運(yùn)行playbook

ansible-playbook test1.yaml

ansible的playbook劇本,ansible,ansible,apache,網(wǎng)絡(luò)

補(bǔ)充參數(shù):

參數(shù) 含義
-k(–ask-pass) 用來(lái)交互輸入ssh密碼
-K(-ask-become-pass) 用來(lái)交互輸入sudo密碼
-u 指定用戶

ansible-playbook test1.yaml --syntax-check #檢查yaml文件的語(yǔ)法是否正確
ansible-playbook test1.yaml --list-task #檢查tasks任務(wù)
ansible-playbook test1.yaml --list-hosts #檢查生效的主機(jī)
ansible-playbook test1.yaml --start-at-task='install httpd' #指定從某個(gè)task開始運(yùn)行

4.定義、引用變量

- name: second play
  hosts: dbservers
  remote_user: root
  vars:                 #定義變量
   - groupname: mysql   #格式為 key: value
   - username: nginx
  tasks:
   - name: create group
     group: name={{groupname}} system=yes gid=306    #使用 {{key}} 引用變量的值
   - name: create user
     user: name={{username}} uid=306 group={{groupname}} 
   - name: copy file
     copy: content="{{ansible_default_ipv4}}" dest=/opt/vars.txt    #在setup模塊中可以獲取facts變量信息

ansible-playbook test1.yaml -e "username=nginx" #在命令行里定義變量

5.指定遠(yuǎn)程主機(jī)sudo切換用戶

---
- hosts: dbservers
  remote_user: zhangsan            
  become: yes	                 #2.6版本以后的參數(shù),之前是sudo,意思為切換用戶運(yùn)行
  become_user: root              #指定sudo用戶為root

執(zhí)行playbook時(shí):ansible-playbook test1.yml -k -K

6.when條件判斷

在Ansible中,提供的唯一一個(gè)通用的條件判斷是when指令,當(dāng)when指令的值為true時(shí),則該任務(wù)執(zhí)行,否則不執(zhí)行該任務(wù)。

//when一個(gè)比較常見(jiàn)的應(yīng)用場(chǎng)景是實(shí)現(xiàn)跳過(guò)某個(gè)主機(jī)不執(zhí)行任務(wù)或者只有滿足條件的主機(jī)執(zhí)行任務(wù)


```bash
vim test2.yaml
---
- hosts: all
  remote_user: root
  tasks:
   - name: shutdown host 
     command: /sbin/shutdown -r now
     when: ansible_default_ipv4.address == "192.168.80.12"      #when指令中的變量名不需要手動(dòng)加上 {{}}
或 
     when: inventory_hostname == "<主機(jī)名>"
ansible-playbook test2.yaml

7.迭代

Ansible提供了很多種循環(huán)結(jié)構(gòu),一般都命名為with_items,作用等同于 loop 循環(huán)。

vim test3.yaml
---
- name: play1
  hosts: dbservers
  gather_facts: false
  tasks: 
    - name: create file
      file:
        path: "{{item}}"
        state: touch
      with_items: [ /opt/a, /opt/b, /opt/c, /opt/d ]


- name: play2
  hosts: dbservers
  gather_facts: false		
  vars:
    test:
    - /tmp/test1
    - /tmp/test2
    - /tmp/test3
    - /tmp/test4
  tasks: 
    - name: create directories
      file:
        path: "{{item}}"
        state: directory
      with_items: "{{test}}"
		
- name: play3
  hosts: dbservers
  gather_facts: false
  tasks:
    - name: add users
      user: name={{item.name}} state=present groups={{item.groups}}
      with_items:
        - name: test1
          groups: wheel
        - name: test2
          groups: root
或
      with_items:
        - {name: 'test1', groups: 'wheel'}
        - {name: 'test2', groups: 'root'}
ansible-playbook test3.yaml

8.Templates 模塊

Jinja是基于Python的模板引擎。Template類是Jinja的一個(gè)重要組件,可以看作是一個(gè)編譯過(guò)的模板文件,用來(lái)產(chǎn)生目標(biāo)文本,傳遞Python的變量給模板去替換模板中的標(biāo)記。

1.先準(zhǔn)備一個(gè)以 .j2 為后綴的 template 模板文件,設(shè)置引用的變量

cp /etc/httpd/conf/httpd.conf /opt/httpd.conf.j2

vim /opt/httpd.conf.j2
Listen {{http_port}}				#42行,修改
ServerName {{server_name}}			#95行,修改
DocumentRoot "{{root_dir}}"          #119行,修改

2.修改主機(jī)清單文件,使用主機(jī)變量定義一個(gè)變量名相同,而值不同的變量

vim /etc/ansible/hosts       
[webservers]
192.168.52.110 http_port=192.168.52.110:80 server_name=www.accp.com:80 root_dir=/etc/httpd/htdocs

[dbservers]
192.168.52.100 http_port=192.168.52.100:80 server_name=www.benet.com:80 root_dir=/etc/httpd/htdocs

3.編寫 playbook

vim apache.yaml
---
- hosts: all
  remote_user: root
  vars:
    - package: httpd
    - service: httpd
  tasks:
    - name: install httpd package
      yum: name={{package}} state=latest
    - name: install configure file
      template: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf     #使用template模板
      notify:
        - restart httpd
    - name: create root dir
	  file: path=/etc/httpd/htdocs state=directory
    - name: start httpd server
      service: name={{service}} enabled=true state=started
  handlers:
    - name: restart httpd
      service: name={{service}} state=restarted
ansible-playbook apache.yaml

9.tags 模塊

可以在一個(gè)playbook中為某個(gè)或某些任務(wù)定義“標(biāo)簽”,在執(zhí)行此playbook時(shí)通過(guò)ansible-playbook命令使用–tags選項(xiàng)能實(shí)現(xiàn)僅運(yùn)行指定的tasks。
playbook還提供了一個(gè)特殊的tags為always。作用就是當(dāng)使用always作為tags的task時(shí),無(wú)論執(zhí)行哪一個(gè)tags時(shí),定義有always的tags都會(huì)執(zhí)行。

vim webhosts.yaml
---
- hosts: webservers
  remote_user: root
  tasks:
    - name: Copy hosts file
      copy: src=/etc/hosts dest=/opt/hosts
      tags:
      - only     #可自定義
    - name: touch file
      file: path=/opt/testhost state=touch
	  tags:
	  - always    #表示始終要運(yùn)行的代碼

ansible-playbook webhosts.yaml --tags="only"
vim dbhosts.yaml
---
- hosts: dbservers
  remote_user: root
  tasks:
    - name: Copy hosts file
      copy: src=/etc/hosts dest=/opt/hosts
      tags:
        - only
    - name: touch file
      file: path=/opt/testhost state=touch
ansible-playbook dbhosts.yaml --tags="only"

//分別去兩臺(tái)被管理主機(jī)上去查看文件創(chuàng)建情況

10.總結(jié)

vim  XXX.yaml
- name:                      #指定play名稱
  hosts:                     #指定主機(jī)組
  remote_user:               #執(zhí)行用戶 
  gather_facts: true|false   #是否收集遠(yuǎn)程主機(jī)facts信息
  vars:                      #定義變量
  tasks:                     #定義task任務(wù)列表
  - name:                 #定義task任務(wù)名稱
    模塊:                 #定義任務(wù)使用的模塊和參數(shù)
    with_items:           #定義循環(huán)列表
    when:                 #定義判斷條件(== != >= > <= <),true則執(zhí)行任務(wù),否則不執(zhí)行任務(wù)
	ignore_errors: true   #忽略任務(wù)失敗
    notify:               #定義task任務(wù)changed狀態(tài)時(shí)觸發(fā)的任務(wù)名
    tags:                 #指定標(biāo)簽,ansible-playbook --tags 僅執(zhí)行擁有指定 tags 標(biāo)簽的任務(wù)(always標(biāo)簽總會(huì)執(zhí)行)
  handlers:                  #定義notify觸發(fā)的任務(wù)列表

task任務(wù)模塊語(yǔ)法格式

橫向格式:
模塊名: 參數(shù)選項(xiàng)1=值  參數(shù)選項(xiàng)2={{變量名}}  ...

縱向格式:
模塊名:
  參數(shù)選項(xiàng)1: 值
  參數(shù)選項(xiàng)2: "{{變量名}}"
  ...

with_items和變量的語(yǔ)法格式

橫向格式:
with_items: ["值1", "值2", "值3"]

值為對(duì)象(鍵值對(duì)字段)時(shí):
with_items:
- {key1: value1, key2: value2, ...}
- {key1: value3, key2: value4, ...}

縱向格式:
with_items:
- 值1
- 值2
- 值3

值為對(duì)象(鍵值對(duì)字段)時(shí):
with_items:
- key1: value1
  key2: value2
- key1: value3
  key2: value4

template模板模塊文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-654407.html

(1)先要準(zhǔn)備一個(gè)xxx.j2模板文件,在文件中使用 {{變量名}} 引用主機(jī)變量 或者 vars 自定義的變量 及 facts 字段的值
(2)在playbook中的tasks中定義template模板配置  template: src=xxx.j2  dest=xxx

到了這里,關(guān)于ansible的playbook劇本的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Ansible劇本--Playbook

    在ansible中,類似“腳本”的文件被稱作“劇本”,英文稱為playbook,用于配置、部署和管理被控節(jié)點(diǎn) 只需要把模塊按照順序編排在playbook劇本中,ansible就會(huì)按照劇本一步一步的執(zhí)行,最終達(dá)到我們需要實(shí)現(xiàn)的效果 playbook是由一個(gè)或多個(gè)\\\'play\\\'組成的列表,當(dāng)我們?cè)诠ぷ髦行枰?/p>

    2024年01月19日
    瀏覽(17)
  • Ansible 的腳本-playbook 劇本

    1.playbooks 本身由以下各部分組成 (1)Tasks:任務(wù),即通過(guò) task 調(diào)用 ansible 的模板將多個(gè)操作組織在一個(gè) playbook 中運(yùn)行 (2)Variables:變量 (3)Templates:模板 (4)Handlers:處理器,當(dāng)changed狀態(tài)條件滿足時(shí),(notify)觸發(fā)執(zhí)行的操作 (5)Roles:角色 2.示例 3.定義、引用變量

    2024年02月06日
    瀏覽(18)
  • 【Ansible 的腳本 --- playbook 劇本】

    【Ansible 的腳本 --- playbook 劇本】

    playbooks 本身由以下各部分組成 將yum安裝的nginx里面的配置文件進(jìn)行修改,后傳輸?shù)綄?duì)應(yīng)的遠(yuǎn)程主機(jī) 解壓wordpress壓縮文件,放入到對(duì)應(yīng)的html網(wǎng)頁(yè)目錄底下 進(jìn)行傳輸?shù)竭h(yuǎn)程主機(jī)里的網(wǎng)頁(yè)頁(yè)面目錄上 使用瀏覽器進(jìn)行訪問(wèn)測(cè)試

    2024年02月14日
    瀏覽(18)
  • Ansible的腳本-playbook 劇本

    ? ?1.playbook介紹 ? ? ? ? playbook是ansible用于配置,部署,和管理被控節(jié)點(diǎn)的劇本。通過(guò)playbook的詳細(xì)描述,執(zhí)行其中的tasks,可以讓遠(yuǎn)端主機(jī)達(dá)到預(yù)期的狀態(tài)。playbook是由一個(gè)或多個(gè)”play”組成的列表。 當(dāng)對(duì)一臺(tái)機(jī)器做環(huán)境初始化的時(shí)候往往需要不止做一件事情,這時(shí)使用

    2024年02月02日
    瀏覽(22)
  • Ansible Playbook劇本配置文件

    Ansible Playbook劇本配置文件

    目錄 一、執(zhí)行文件 修改hosts文件 Playbook的核心元素包含: 用法 實(shí)驗(yàn)案例 1.語(yǔ)法檢查 2.預(yù)測(cè)試 3.列出主機(jī) 4.列出任務(wù) 5.列出標(biāo)簽 6.進(jìn)行測(cè)試 7.測(cè)試查看 二、觸發(fā)器 handlers觸發(fā)器的實(shí)驗(yàn)實(shí)例如下 預(yù)執(zhí)行 執(zhí)行 查看結(jié)果 三、角色 /etc/ansible/roles/為角色集合,該目錄下有自定義的各

    2024年02月16日
    瀏覽(20)
  • Ansible 的腳本 --- playbook 劇本

    Ansible 的腳本 --- playbook 劇本

    playbook是 一個(gè)不同于使用Ansible命令行執(zhí)行方式的模式,其功能更強(qiáng)大靈活。 簡(jiǎn)單來(lái)說(shuō),playbook是一個(gè)非常簡(jiǎn)單的配置管理和多主機(jī)部署系統(tǒng), 不同于任何已經(jīng)存在的模式,可作為一個(gè)適合部署復(fù)雜應(yīng)用程序的基礎(chǔ)。 Playbook可以定制配置,可以按照指定的操作步驟有序執(zhí)行,

    2024年02月10日
    瀏覽(18)
  • Ansible的腳本 --- playbook 劇本

    Ansible的腳本 --- playbook 劇本

    目錄 playbook的簡(jiǎn)介 什么是playbook playbook組成 應(yīng)用實(shí)例 Templates 模塊 tags 模塊 Roles 模塊? Ansible Playbook 是設(shè)定自動(dòng)化任務(wù)的一種藍(lán)圖,可在無(wú)需人工干預(yù)或有限干預(yù)的前提下執(zhí)行復(fù)雜的 IT 操作。Ansible Playbook 對(duì)一組或一類共同構(gòu)成 Ansible 清單的主機(jī)執(zhí)行。 ? ? ? ? Ansible Playbo

    2024年02月21日
    瀏覽(16)
  • Ansible之playbook劇本編寫

    Ansible之playbook劇本編寫

    playbook是 一個(gè)不同于使用Ansible命令行執(zhí)行方式的模式,其功能更強(qiáng)大靈活。簡(jiǎn)單來(lái)說(shuō),playbook是一個(gè)非常簡(jiǎn)單的配置管理和多主機(jī)部署系統(tǒng),不同于任何已經(jīng)存在的模式,可作為一個(gè)適合部署復(fù)雜應(yīng)用程序的基礎(chǔ)。Playbook可以定制配置,可以按照指定的操作步驟有序執(zhí)行,支

    2024年02月14日
    瀏覽(16)
  • 【Linux】Ansible 腳本 playbook 劇本

    提示:文章寫完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔 playbooks 本身由以下各部分組成 (1)Tasks:任務(wù),即通過(guò) task 調(diào)用 ansible 的模板將多個(gè)操作組織在一個(gè) playbook 中運(yùn)行 (2)Variables:變量 (3)Templates:模板 (4)Handlers:處理器,當(dāng)changed狀態(tài)條件滿足時(shí)

    2024年02月14日
    瀏覽(17)
  • 【Ansible】Ansible自動(dòng)化運(yùn)維工具之playbook劇本

    【Ansible】Ansible自動(dòng)化運(yùn)維工具之playbook劇本

    ??簡(jiǎn)單來(lái)說(shuō),playbooks是一種簡(jiǎn)單的配置管理系統(tǒng)與多機(jī)器部署系統(tǒng)的基礎(chǔ)。與現(xiàn)有的其他系統(tǒng)有不同之處,且非常適合復(fù)雜應(yīng)用的部署。 ??Playbooks 可用于聲明配置,更強(qiáng)大的地方在于,playbooks可以編排有序的去執(zhí)行過(guò)程,甚至做到多組機(jī)器間來(lái)回有序的執(zhí)行特別指定的

    2024年02月14日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包