Ansible核心元件playbook

2022-05-07 01:12:07 字數 3969 閱讀 9843

ansible核心功能點就在於playbook,ansible主要的工作都是在與配置管理,它在實際的工作中會大量編寫和使用劇本。

【ansible劇本】

ansible軟體的playbook編寫需要遵循yaml語法。

【1.批量解除安裝所有的nginx】

[root@m01 ~]# ansible chaoge -m yum -a "name=nginx state=absent"

[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 >>

【2.檢視乙個yaml檔案】

[root@m01 scripts]# cat nginx.yaml -n

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

【3.解釋如上的playbook**】

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...