Ansible 入门指南 - 学习总结

概述

这周在工作中需要去修改 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
posted @ 2019-03-02 20:25  Michael翔  阅读(1891)  评论(0编辑  收藏  举报