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

【自動化運(yùn)維】playbook劇本

這篇具有很好參考價值的文章主要介紹了【自動化運(yùn)維】playbook劇本。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

一、Ansible 的腳本 playbook 劇本

1.1playbooks的組成

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

二、劇本編寫實(shí)驗(yàn)

vim test1.yaml
---     #yaml文件以---開頭,以表明這是一個yaml文件,可省略
- name: first play     #定義一個play的名稱,可省略
  gather_facts: false    #設(shè)置不進(jìn)行facts信息收集,這可以加快執(zhí)行速度,可省略
  hosts: webservers    #指定要執(zhí)行任務(wù)的被管理主機(jī)組,如多個主機(jī)組用冒號分隔
  remote_user: root    #指定被管理主機(jī)上執(zhí)行任務(wù)的用戶
  tasks:     #定義任務(wù)列表,任務(wù)列表中的各任務(wù)按次序逐個在hosts中指定的主機(jī)上執(zhí)行
   - name: test connection    #自定義任務(wù)名稱
     ping:     #使用 module: [options] 格式來定義一個任務(wù)
   - name: disable selinux
     command: '/sbin/setenforce 0'    #command模塊和shell模塊無需使用key=value格式
     ignore_errors: True     #如執(zhí)行命令的返回值不為0,就會報錯,tasks停止,可使用ignore_errors忽略失敗的任務(wù)
   - name: disable firewalld
     service: name=firewalld state=stopped    #使用 module: options 格式來定義任務(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    #這里需要一個事先準(zhǔn)備好的/opt/httpd.conf文件
     notify: "restart httpd"    #如以上操作后為changed的狀態(tài)時,會通過notify指定的名稱觸發(fā)對應(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í)行完某個任務(wù)之后并不會立即去執(zhí)行對應(yīng)的handler,而是在當(dāng)前play中所有普通任務(wù)都執(zhí)行完后再去執(zhí)行handler,這樣的好處是可以多次觸發(fā)notify,但最后只執(zhí)行一次對應(yīng)的handler,從而避免多次重啟。

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
運(yùn)行playbook

ansible-playbook test1.yaml
//補(bǔ)充參數(shù):
-k(–ask-pass):用來交互輸入ssh密碼
-K(-ask-become-pass):用來交互輸入sudo密碼
-u:指定用戶
ansible-playbook test1.yaml --syntax-check    #檢查yaml文件的語法是否正確
ansible-playbook test1.yaml --list-task       #檢查tasks任務(wù)
ansible-playbook test1.yaml --list-hosts      #檢查生效的主機(jī)
ansible-playbook test1.yaml --start-at-task='install httpd'     #指定從某個task開始運(yùn)行

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache

2.1定義、引用變量

- 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"     #在命令行里定義變量

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache

2.2使用遠(yuǎn)程主機(jī)sudo切換用戶

- hosts: dbservers
  remote_user: zhangsan            
  become: yes	                 #2.6版本以后的參數(shù),之前是sudo,意思為切換用戶運(yùn)行
  become_user: root              #指定sudo用戶為root
執(zhí)行playbook時:ansible-playbook test1.yml -k -K 

2.3whenn條件判斷

- name: three play
  hosts: all
  remote_user: root
  tasks:
  - name: create file
    file: path=/opt/abc.txt state=touch
    when: ansible_default_ipv4.address=="192.168.243.103" #通過facts收集的信息過濾出匹配的主機(jī),when中的變量名字,不需要手動加{{}}
    或 
     when: inventory_hostname == "<主機(jī)名>"
	
ansible-playbook test2.yaml

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache

2.4迭代

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

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache

三、Templates 模板

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

1.先準(zhǔn)備一個以 .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行,修改

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache

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

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

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

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
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

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache
【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache

四、Tags模板

  • 可以在一個playbook中為某個或某些任務(wù)定義“標(biāo)簽”,在執(zhí)行此playbook時通過ansible-playbook命令使用–tags選項(xiàng)能實(shí)現(xiàn)僅運(yùn)行指定的tasks。
    playbook還提供了一個特殊的tags為always。作用就是當(dāng)使用always作為tags的task時,無論執(zhí)行哪一個tags時,定義有always的tags都會執(zhí)行。
- name: serve play
  remote_user: root
  hosts: webservers
  tasks:
  - name: touch ddd,txt
    file: path=/opt/ddd.txt state=touch
    tags:  #標(biāo)簽為ddd當(dāng)命令tags標(biāo)簽為ddd,或者沒有標(biāo)簽才執(zhí)行
    - ddd
  - name: touch 123.txt
    file: path=/opt/123.txt state=touch
    tags:
    - always #alwats表示都執(zhí)行
  - name: touch abc.txt
    file: path=/opt/abc.txt state=touch
    tags:
    - aaa #同上

【自動化運(yùn)維】playbook劇本,自動化運(yùn)維,運(yùn)維,自動化,apache文章來源地址http://www.zghlxwxcb.cn/news/detail-617807.html

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

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

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

相關(guān)文章

  • Ansible自動化運(yùn)維工具---Playbook

    Ansible自動化運(yùn)維工具---Playbook

    playbook是劇本的意思,通過 task 調(diào)用 ansible 的模塊將多個 play 組織在一 個playbook中運(yùn)行。 playbook各部分組成 : Tasks : 任務(wù),即調(diào)用模塊完成的某操作 Variables : 變量 emplates : 模板 Handlers : 處理器,當(dāng)某條件滿足時,觸發(fā)執(zhí)行的操作 Roles : 角色 playbook yaml語法 是換行空兩格,-和

    2024年02月03日
    瀏覽(20)
  • 【運(yùn)維知識進(jìn)階篇】Ansible自動化運(yùn)維-PlayBook詳解

    【運(yùn)維知識進(jìn)階篇】Ansible自動化運(yùn)維-PlayBook詳解

    這篇文章給大家介紹下PlayBook,我們叫它劇本,它是以一種固定的格式,將多個ad-hoc放入yml文件中。在Ansible中,劇本文件是yml結(jié)尾的,在SaltStack中劇本文件是sls結(jié)尾的,但是兩者語法都是使用的yaml語法。 1、PlayBook功能比ad-hoc全,是對ad-hoc的一種編排 2、PlayBook能很好的控制先

    2024年02月06日
    瀏覽(24)
  • ansible自動化運(yùn)維(二)劇本、角色編寫實(shí)戰(zhàn)

    ansible自動化運(yùn)維(二)劇本、角色編寫實(shí)戰(zhàn)

    ??作者簡介:一名運(yùn)維工作人員。 ??宣言:人生就是B(birth)和D(death)之間的C(choise),做好每一個選擇。 ??創(chuàng)作不易,動動小手給個點(diǎn)贊加關(guān)注吧,有什么意見評論區(qū)告訴我。 目錄 一、劇本(playbook) 1、介紹 2、劇本組成 3、劇本編寫規(guī)范 4、實(shí)戰(zhàn)(編寫搭建nginx的

    2024年02月15日
    瀏覽(21)
  • 從小白到大神之路之學(xué)習(xí)運(yùn)維第61天--------Ansible自動化運(yùn)維工具(playbook配置文件深入了解)

    從小白到大神之路之學(xué)習(xí)運(yùn)維第61天--------Ansible自動化運(yùn)維工具(playbook配置文件深入了解)

    第三階段基礎(chǔ) 時 ?間:2023年7月14日 參加人:全班人員 內(nèi) ?容: playbook配置文件 目錄 playbook配置文件 一、playbook配置文件概念 修改hosts文件 建立playbook配置文件 yml腳本寫法注釋: 二、Playbook的核心元素 三、Playbook的用法 四、實(shí)驗(yàn)案例: (一)工作流程 1、語法檢查 ? 2.預(yù)測

    2024年02月16日
    瀏覽(30)
  • 【自動化劇本】Role角色

    【自動化劇本】Role角色

    roles用于層次性、結(jié)構(gòu)化地組織playbook。roles能夠根據(jù)層次型結(jié)構(gòu)自動裝載變量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 簡單來講,roles就是通過分別將變量、文件、任務(wù)、模板及處理器放置于單獨(dú)的目錄中,并可以便捷的include它們的一種

    2024年02月13日
    瀏覽(18)
  • AI:153-開發(fā)一種能夠自動化生成電影劇本的人工智能系統(tǒng)

    本文收錄于專欄:精通AI實(shí)戰(zhàn)千例專欄合集 從基礎(chǔ)到實(shí)踐,深入學(xué)習(xí)。無論你是初學(xué)者還是經(jīng)驗(yàn)豐富的老手,對于本專欄案例和項(xiàng)目實(shí)踐都有參考學(xué)習(xí)意義。 每一個案例都附帶關(guān)鍵代碼,詳細(xì)講解供大家學(xué)習(xí),希望可以幫到大家。正在不斷更新中~ 人工智能(AI)的發(fā)展已經(jīng)

    2024年03月27日
    瀏覽(48)
  • 基于云計(jì)算的自動化部署與自動化運(yùn)維:提高運(yùn)維效率

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)站流量日益增長,用戶對網(wǎng)站功能及其可用性的需求也越來越高,越來越多的人開始擔(dān)憂網(wǎng)站的安全和穩(wěn)定性。因此,如何快速、準(zhǔn)確地處理網(wǎng)站故障、迅速恢復(fù)網(wǎng)站服務(wù)并保障網(wǎng)站高可用,成為企業(yè)必須重點(diǎn)關(guān)

    2024年02月11日
    瀏覽(23)
  • Ansible自動化運(yùn)維

    Ansible自動化運(yùn)維

    目錄 前言 一、概述 常見的開源自動化運(yùn)維工具比較 二、ansible環(huán)境搭建 三、ansible模塊 (一)、hostname模塊 (二)、file模塊 (三)、copy模塊 (四)、fetch模塊 (五)、user模塊 (六)、group模塊 (七)、cron模塊 (八)、yum_repository模塊 (九)、yum模塊 (十)、service模塊

    2024年02月09日
    瀏覽(29)
  • DevOps?自動化運(yùn)維!

    DevOps?自動化運(yùn)維!

    by: 雪月三十 DevOps流程圖 DevOps是Dev和Ops的結(jié)合 Dev(developer開發(fā)) Ops(operation運(yùn)維) 在企業(yè)中dev和ops是有一種天然的矛盾,dev要求的是快速迭代,給公司挖掘出商業(yè)的價值,而ops則是強(qiáng)調(diào)的穩(wěn)定,不讓你如此快的開發(fā),以穩(wěn)定為主,不希望動代碼(if no problem, don’t touch it),所

    2024年02月12日
    瀏覽(27)
  • 自動化運(yùn)維CICD

    自動化運(yùn)維CICD

    目錄 概述 為什么持續(xù)集成和發(fā)布可以提高效率 如何實(shí)現(xiàn) 1、在linux服務(wù)器安裝部署代碼倉庫 2、安裝jenkins 使用shell腳本實(shí)現(xiàn)CICD 使用pipeline實(shí)現(xiàn)CICD 使用Blue Ocean實(shí)現(xiàn)CICD 持續(xù)集成(Continuous Integration,CI)和持續(xù)發(fā)布(Continuous Delivery,CD,又稱持續(xù)交付)是經(jīng)常放在一起提及的兩

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包