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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ansible Playbook核心元素以及组件

發布時間:2025/1/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ansible Playbook核心元素以及组件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Playbook核心元素

  • Hosts 執行的遠程主機列表
  • Tasks 任務集
  • Variables 內置變量或自定義變量在playbook中調用
  • Templates 模板,可替換模板文件中的變量并實現一些簡單邏輯的文件
  • Handlers 和 notify 結合使用,由特定條件觸發的操作,滿足條件方才執行,否則不執行
  • tags 標簽 指定某條任務執行,用于選擇運行playbook中的部分代碼。ansible具有冪等性,因此會自動跳過沒有變化的部分,即便如此,有些代碼為測試其確實沒有發生變化的時間依然會非常地長。此時,如果確信其沒有變化,就可以通過tags跳過此些代碼片斷
hosts 組件

Hosts:playbook中的每一個play的目的都是為了讓特定主機以某個指定的用戶身份執行任務。hosts用于指定要執行指定任務的主機,須事先定義在主機清單中

one.example.com one.example.com:two.example.com 192.168.1.50 192.168.1.* Websrvs:dbsrvs #或者,兩個組的并集 Websrvs:&dbsrvs #與,兩個組的交集 webservers:!phoenix #在websrvs組,但不在dbsrvs組

案例:

- hosts: websrvs:appsrvs
remote_user 組件

remote_user: 可用于Host和task中。也可以通過指定其通過sudo的方式在遠程主機上執行任務,其可用于play全局或某任務;此外,甚至可以在sudo時使用sudo_user指定sudo時切換的用戶

- hosts: websrvsremote_user: roottasks:- name: test connectionping:remote_user: magedusudo: yes #默認sudo為rootsudo_user:wang #sudo為wang
task列表和action組件

play的主體部分是task list,task list中有一個或多個task,各個task 按次序逐個在hosts中指定的所有主機上執行,即在所有主機上完成第一個task后,再開始第二個task
task的目的是使用指定的參數執行模塊,而在模塊參數中可以使用變量。模塊執行是冪等的,這意味著多次執行是安全的,因為其結果均一致
每個task都應該有其name,用于playbook的執行結果輸出,建議其內容能清晰地描述任務執行步驟。如果未提供name,則action的結果將用于輸出

task兩種格式:
(1) action: module arguments
(2) module: arguments 建議使用

注意:shell和command模塊后面跟命令,而非key=value

范例:

--- - hosts: websrvsremote_user: roottasks:- name: install httpdyum: name=httpd - name: start httpdservice: name=httpd state=started enabled=yes
其它組件

某任務的狀態在運行后為changed時,可通過“notify”通知給相應的handlers
任務可以通過"tags“打標簽,可在ansible-playbook命令上使用-t指定進行調用

ShellScripts VS Playbook 案例
#SHELL腳本實現 #!/bin/bash # 安裝Apache yum install --quiet -y httpd # 復制配置文件 cp /tmp/httpd.conf /etc/httpd/conf/httpd.conf cp/tmp/vhosts.conf /etc/httpd/conf.d/ # 啟動Apache,并設置開機啟動 systemctl enable --now httpd #Playbook實現 --- - hosts: websrvsremote_user: roottasks:- name: "安裝Apache"yum: name=httpd- name: "復制配置文件"copy: src=/tmp/httpd.conf dest=/etc/httpd/conf/- name: "復制配置文件"copy: src=/tmp/vhosts.conf dest=/etc/httpd/conf.d/- name: "啟動Apache,并設置開機啟動"service: name=httpd state=started enabled=yes

本文鏈接:http://www.yunweipai.com/34656.html

總結

以上是生活随笔為你收集整理的Ansible Playbook核心元素以及组件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。