概述
这周在工作中需要去修改 nginx 的配置,发现了同事在使用 ansible 管理者系统几乎所有的配置,从数据库的安装、nginx 的安装及配置。于是这周研究起了 ansible 的基础用法。回过头再去看他的工程,终于能看明白了,嘿嘿
前面已经总结了三篇文章了,本章做个总结:
- 首先是列一下不错的 ansible 教程,也是我学习过程中主要的参考文章
- 然后列出一个用到了 ansible-playbook role include 的 demo,稍微复杂的一个目录结构示例
教程资料
- 我学习时候的主要参考
- 这个博主貌似主要是搞运维的,博客上总结了很多文章,赞
- 这位老哥和上面那位有一拼的,博客记载的东西真是太全了,安利
- 貌似是一个台湾的IT学习网站,这个博主写了31篇文章,虽然是2016年的资料,还是有学习价值
- 对官方文档的翻译,比较老了,2015年翻译的
- IBM Developer 网站的文章,里边有一些有意思的技巧
资料就列这么多了,其实,过犹不及,基本找一个看着舒服的教程看完,常用的命令就能看懂了。
复杂示例
写出好的 ansible-playbook 还是要多阅读优秀的 playbook,这里先列出几个可供学习的示例资源:
- 一个面向初学者的 ansible playbook 收集仓库
- 这里就有很多流行的应用示例了,进阶看
列出一个感觉比较清晰简洁的例子
- 对上面 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.txt21 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