Ansible 入门指南 - 学习总结

时间:2021-11-14 19:18:15

概述

这周在工作中需要去修改 nginx 的配置,发现了同事在使用 ansible 管理者系统几乎所有的配置,从数据库的安装、nginx 的安装及配置。于是这周研究起了 ansible 的基础用法。回过头再去看他的工程,终于能看明白了,嘿嘿

前面已经总结了三篇文章了,本章做个总结:

  • 首先是列一下不错的 ansible 教程,也是我学习过程中主要的参考文章
  • 然后列出一个用到了 ansible-playbook role include 的 demo,稍微复杂的一个目录结构示例

教程资料

资料就列这么多了,其实,过犹不及,基本找一个看着舒服的教程看完,常用的命令就能看懂了。

复杂示例

写出好的 ansible-playbook 还是要多阅读优秀的 playbook,这里先列出几个可供学习的示例资源:

列出一个感觉比较清晰简洁的例子

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