ansible核心功能點就在於playbook,ansible主要的工作都是在與配置管理,它在實際的工作中會大量編寫和使用劇本。
【ansible劇本】
ansible軟體的playbook編寫需要遵循yaml語法。
【1.批量解除安裝所有的nginx】
[root@m01 ~]# ansible chaoge -m yum -a "name=nginx state=absent"【2.檢視乙個yaml檔案】[root@m01 ~]# ansible chaoge -m shell -a "rpm -qa nginx warn=false"
192.168.178.110 | changed | rc=0 >>
192.168.178.111 | changed | rc=0 >>
[root@m01 scripts]# cat nginx.yaml -n【3.解釋如上的playbook**】1 # install nginx yaml ,by chaoge
2 - hosts: all
3 tasks:
4 - name: install nginx package
5 yum: name=nginx state=present
6 - name: copy nginx.conf
7 copy: src=./nginx.conf dest=/etc/nginx/nginx.conf mode=0644
1.表示注釋資訊,可以用#,也可以用 --- 三個短橫線2.定義playbook管理的目標主機,all表示所有的主機,也可以寫 主機組名
3.定義playbok所有的任務集合資訊,比如該檔案,定義了2個任務 ,安裝nginx,拷貝nginx配置檔案
4.定義了任務的名詞,自定義的幫助資訊
5.定義任務的具體操作,比如這裡用yum模組實現nginx的安裝
6.7.第
六、第七兩行作用是使用copy模組,把本地當前的nginx.conf配置檔案,分發給其他所有客戶端機器,且授權
定義劇本的hosts部分,可以有如下多種方式,常見的有
- hosts: 192.168.178.111
tasks:
動作...
# 方式二:定義所管理主機的名字
- hosts: backup01
tasks:
動作...
# 方式三:定義管理主機
- hosts: 192.168.178.111, rsync01
tasks:
動作...
# 方式四:管理所有主機
- hosts: all
tasks:
動作...
變數形式定義task任務
字典形式定義任務
# 方式一:採用變數格式設定任務# 當傳入的引數列表過長時,可以將其分割到多行
tasks:
- name: copy ansible inventory(清單) file to client
copy: src=/etc/ansible/hosts dest=/etc/ansible/hosts
owner=root group=root mode=0644
# 方式二:採用字典格式設定多工
tasks:
- name: copy ansible inventory file to client
copy:
src: /etc/ansible/hosts
dest: /etc/ansible/hosts
owner: root
group: root
mode: 0644
在學習saltstack過程中,第一要點就是states編寫技巧,簡稱sls檔案。這個檔案遵循yaml語法。初學者看這玩意很容易懵逼,來,超哥拯救你學習yaml語法【執行命令】json xml yaml 資料序列化格式
yaml容易被解析,應用於配置檔案
salt的配置檔案是yaml配置檔案,不能用tab
saltstack,k8s,ansible都用的yaml格式配置檔案
語法規則
大小寫敏感
使用縮排表示層級關係
縮排時禁止tab鍵,只能空格
縮排的空格數不重要,相同層級的元素左側對其即可
# 表示注釋行
yaml支援的資料結構
陣列: 一組按次序排列的值,又稱為序列sequence 列表list 短橫線 - list1
純量: 單個不可再分的值
物件:鍵值對
yaml
first_key:
second_key:second_value
python
}
ansible-playboook nginx.yaml【檢視劇本執行詳細輸出】ansible-playbook nginx.yml --verbose【檢視劇本執行影響的主機列表】ansible-playbook nginx.yml --list-hosts【執行playbook指定載入的主機清單檔案】ansible-playbook nginx.yml -i /etc/ansible/hosts【執行playbook時檢查劇本語法】ansible-playbook nginx.yml --syntax-check【除錯playbook任務,模擬執行,不影響主機配置】舉例一鍵建立rsync服務的過程:[root@m01 myyaml]# cat install_rsync.yaml
- hosts: 192.168.178.115
tasks:
- name: step01,install rsync service
yum: name=rsync state=installed
- name: step02,edit rsync conf file
copy: src=/etc/ansible/rsync_conf/rsyncd.conf dest=/etc/rsync/conf/
- name: step03,create user rsync
user: name=rsync state=present createhome=no shell=/sbin/nolgoin
- name: step04,create user auth file
copy: src=/etc/ansible/rsync_conf/rsync.password dest=/etc/rsync/conf/ mode=0600
- name: step05,create backup dir
file: dest=/data_backup/ state=directory owner=rsync group=rsync
- name: step06,run rsync server
shell: rsync --daemon creates=/var/run/rsync.pid
storm核心元件
nimbus 負責資源分配和任務排程。supervisor 負責接受nimbus分配的任務,啟動和停止屬於自己管理的worker程序。通過配置檔案設定當前 supervisor 上啟動多少個 worker worker 執行具體處理元件邏輯的程序。worker執行的任務型別只有兩種,一種是spout...
Openstack核心元件
compute 計算 object storage 物件儲存 identity 身份認證 dashboard 儀錶盤 block storage 塊儲存 network 網路 image service 映象服務 compute 類似計算的記憶體 object storage 類似儲存器 ident...
Spring Cloud 核心元件
spring cloud 核心元件,在微服務架構中,分別扮演的角色 1 eureka 各個服務啟動時,eureka client 都會將服務註冊到 eureka server,並且 eureka client 還可以反過來從 eureka server 拉取登錄檔,從而知道其他服務在 2 ribbo...