Ansible 入門指南 - 學習總結
概述
這周在工作中需要去修改 nginx 的配置,發現了同事在使用 ansible 管理者系統幾乎所有的配置,從數據庫的安裝、nginx 的安裝及配置。于是這周研究起了 ansible 的基礎用法。回過頭再去看他的工程,終于能看明白了,嘿嘿
前面已經總結了三篇文章了,本章做個總結:
- 首先是列一下不錯的 ansible 教程,也是我學習過程中主要的參考文章
- 然后列出一個用到了 ansible-playbook role include 的 demo,稍微復雜的一個目錄結構示例
教程資料
- shijingjing - Ansible 入門 我學習時候的主要參考
- 朱雙印-ansible 系列 這個博主貌似主要是搞運維的,博客上總結了很多文章,贊
- 駿馬金龍-ansible 這位老哥和上面那位有一拼的,博客記載的東西真是太全了,安利
- B站視頻-ansible教程-馬哥2019全新ansible入門到精通
- 凍仁翔-現代 IT 人一定要知道的 Ansible 自動化組態技巧 貌似是一個臺灣的IT學習網站,這個博主寫了31篇文章,雖然是2016年的資料,還是有學習價值
- Ansible中文權威指南 對官方文檔的翻譯,比較老了,2015年翻譯的
- IBM-Ansible 進階技巧 IBM Developer 網站的文章,里邊有一些有意思的技巧
資料就列這么多了,其實,過猶不及,基本找一個看著舒服的教程看完,常用的命令就能看懂了。
復雜示例
寫出好的 ansible-playbook 還是要多閱讀優秀的 playbook,這里先列出幾個可供學習的示例資源:
- ansible/ansible-examples 一個面向初學者的 ansible playbook 收集倉庫
- galaxy ansible 這里就有很多流行的應用示例了,進階看
列出一個感覺比較清晰簡潔的例子
- https://github.com/ansible/ansible-examples/tree/master/mongodb
- https://sourcegraph.com/github.com/ansible/ansible-examples/-/blob/mongodb/site.yml 對上面 mongodb 項目的查看,方便的工具,推薦
.
├── LICENSE.md
├── README.md
├── group_vars
│ └── all
├── hosts
├── images
│ ├── check.png
│ ├── nosql_primer.png
│ ├── replica_set.png
│ ├── scale.png
│ ├── sharding.png
│ └── site.png
├── playbooks
│ └── testsharding.yml
├── roles
│ ├── common
│ │ ├── files
│ │ │ ├── 10gen.repo.j2
│ │ │ ├── RPM-GPG-KEY-EPEL-6
│ │ │ └── epel.repo.j2
│ │ ├── handlers
│ │ │ └── main.yml
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ ├── hosts.j2
│ │ └── iptables.j2
│ ├── mongoc
│ │ ├── files
│ │ │ └── secret
│ │ ├── tasks
│ │ │ └── main.yml
│ │ └── templates
│ │ ├── adduser.j2
│ │ ├── mongoc.conf.j2
│ │ └── mongoc.j2
│ ├── mongod
│ │ ├── files
│ │ │ └── secret
│ │ ├── tasks
│ │ │ ├── main.yml
│ │ │ └── shards.yml
│ │ └── templates
│ │ ├── mongod.conf.j2
│ │ ├── mongod.j2
│ │ ├── repset_init.j2
│ │ └── shard_init.j2
│ └── mongos
│ ├── files
│ │ └── secret
│ ├── tasks
│ │ └── main.yml
│ └── templates
│ ├── enablesharding.j2
│ ├── mongos.conf.j2
│ ├── mongos.j2
│ └── testsharding.j2
├── site.yml
└── tree.txt
21 directories, 38 files
site.yml 文件的內容如下:
---
# This Playbook would deploy the whole mongodb cluster with replication and sharding.
- hosts: all
roles:
- role: common
- hosts: mongo_servers
roles:
- role: mongod
- hosts: mongoc_servers
roles:
- role: mongoc
- hosts: mongos_servers
roles:
- role: mongos
- hosts: mongo_servers
tasks:
- include: roles/mongod/tasks/shards.yml

浙公網安備 33010602011771號