用户登录

trellis 里的自动化配置功能,用到了 ansible ... ansible 要根据 playbook 里面写的东西去执行自动化配置任务 .. trellis 里面提供了两套主要的 playbook, dev.yml ,它配置的是本地开发环境上用的虚拟机,还有一个是 server.yml,这个 playbook 可以去配置在远程服务器上的生产环境 ..

先看一下这个 dev.yml ... 这个 palybook 里面用了一些 roles .. 每个 role 都会包含自己的一些任务。

比如我们先看一下 nginx 这个 role .. 在 roles 目录的下面,找到 nginx .. tasks 它里面的 main.yml ,就是这个 role 的主要的任务列表 ..

每个任务都有 name .. 就是任务的名字,下面是任务使用的模块,ansible 里面提供了很多模块,不同的模块可以去做不同的事情 .. 比如 apt 模块可以管理 ubuntu 操作系统上的软件包 .. 模块有一些配置选项,比如 apt 模块的 name 就是要管理的软件包的名字,两组花括号里面的东西是一个参数的值,这些参数可以在 role 目录下面的 defaults 里面找到 .. 打开它下面的 main.yml ,你会发现,nginx_package 的值是 nginx ..

state 设置了需要的状态,present 表示要让这个包存在 .. force 是 yes,表示强制 ..

再看一下 Create nginx.conf 这个任务.. 这里用了一个 template .. src 是模板文件 .. 在 defaults 下面的 main.yml 里面,可以看到这个 nginx_conf 的值 .. 这里就是 nginx.conf.j2,j2 是 jinjia 2 模板引擎用的模板文件的后缀 ..

这个模板文件会在这个 role 的 templates 目录的下面 .. 这里有个 nginx.conf.j2

这个模板文件里的内容主要就是一个 nginx 的配置文件 .. 两组花括号里的东西是参数 .. 参数表示的值在 defaults 下面的 main.yml 文件里可以找到 ..

这个 create nginx.conf 任务会把这个模板文件放到配置的机器的某个位置的下面 .. nginx_path 表示的是 /etc/nginx,文件的名字是 nginx.conf

这个任务的意思就是,把 templates 目录下的 nginx.conf.j2 这个模板文件复制一份放到要配置的机器的 /etc/nginx 的下面,复制过去的名字是 nginx.conf ... 复制过去的时候 ansible 会自动把模板文件里的参数替换成对应的值 ..

任务的 notify 设置了要执行的 handler ,任务执行完以后,会再去通知它的 handler 。这里用了一个 reload nginx,这个 handler 可以在 common 这个 role 里找到 .. 它下面有个 handlers 目录,打开里面的 main.yml

每个 handler 都有一个名字,还有要做的事情 .. 这里用了一个 include ,包含了一个叫 reload_nginx.yml 的文件,在 tasks 目录的下面,可以找到这个文件 ..

你会看到,这里有个名字是 reload nginx 的 handler .. 它做的事情就是执行了 nginx -t 这个命令 .. 执行完以后,它又 notify 了一下 perform nginx reload .. 这个 handler 用了 service 模块,重新加载了 nginx 这个服务 ..

自动化配置《 WordPress 开发:开发环境 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点