Ansible 管理大專案

2021-10-09 08:14:25 字數 2635 閱讀 8224

使用萬用字元匹配主機

- hosts: '*'			    #匹配所有主機

- hosts: '*.example.com' #匹配以.example.com結尾的主機

- hosts: '192.168.136.*' #匹配指定ip網段的主機

通過列表匹配主機或主機組

- hosts: localhost,test1,192.168.10.30
也可以將萬用字元和列表等一起使用:

- hosts: all,!servera.lab.example.com #所有主機除了servera.lab.example.com

編寫動態清單程式,將 ini 格式的清單轉換為 json 格式

命令:ansible-inventory -i inventory --list

[root@localhost ansible]# cat inventory 

192.168.163.134 ansible_password=123456

[web]

192.168.163.136 ansible_password=123456

192.168.163.137 ansible_password=123456

[root@localhost ansible]# ansible-inventory -i inventory --list

, "web": ,

"_meta": ,

"192.168.163.136": ,

"192.168.163.137": }},

"all":

}

1.使用 forks 在 ansible 中配置並行

ansible 最大同時連線數由 ansible 配置檔案中 forks引數 控制

[root@localhost ~]# grep forks /etc/ansible/ansible.cfg

#forks = 5

[root@localhost ~]# ansible-config dump|grep -i forks

default_forks(default) = 5

2.管理滾動更新

state: restarted四、包含和匯入檔案

大型 playbook 管理起來比較複雜,可以用模組化的方式管理;

兩種方法:包含、匯入

(1)匯入playbook:

- name: configure webserver

import_playbook: web.yml #web.yml是已經寫好的playbook

(2)匯入和包含任務的playbook

示例:乙個只有任務的檔案,命名為task.yml

- import_tasks: task.yml #匯入任務playbook

- name: install web

hosts: web

tasks:

- include_tasks: task.yml

(3)為外部 play 和任務定義變數,提高復用性:

示例:乙個安裝軟體包和設定開機啟動的任務

- name: install the }

yum:

name: "}"

state: latest

- name: start the }

service:

name: "}"

enabled: true

state: strated

用於匯入:

大專案小專案

很多人責怪第一門計算機語言的老師不行 我也是的 雖然那個時候自己無心也無力對老師進行評價 現在想想只能用 誤人子弟 來形容這位尊敬的副院長 很神奇授課的時候把大學的東西搞明白了 小碩的時候把授課的東西搞明白了 工作了把小碩的東西搞明白了 永遠都慢了一拍 那什麼時候才能把工作的東西搞明白?今年的工作接...

GO語言大專案推薦

1 rainbond 實現微服務架構不用改 管理k8s不用學容器,幫企業實現應用上雲,一站式將任何企業應用持續交付到k8s集群 混合雲 多雲等基礎設施 rainbond是乙個集大成的專案 rainbond devops方案 賦予企業搭建面向應用的持續開發 交付鏈路的能力 rainbond 多租戶多雲...

艾偉也談專案管理,大專案的思考

引言 進入現在這個我們內部號稱 豪門 的專案已經兩個多月了。現在回想起進入專案前一位前輩的話 大專案有大專案的問題,但大專案也有很多東西可學 自己此時深表贊同。兩個月的時間,自己從剛來前兩周的觀察學習,到現在的基本融入,在這個過程中自己有了很多的想法和思考。為什麼測試這麼難寫?tdd的開發實踐保證了...