📜  Trellis 项目文件夹结构 (1)

📅  最后修改于: 2023-12-03 15:05:37.716000             🧑  作者: Mango

Trellis 项目文件夹结构

Trellis 是一个用于管理 WordPress 网站的开发、部署和运维工具。它基于 Ansible、Vagrant 和 Bedrock 这些流行的开源项目,并提供了一种标准化的文件夹结构来组织项目的代码和配置文件。

下面是 Trellis 项目文件夹结构的详细介绍(按重要性排序):

1. group_vars

存放 Ansible 的 group_vars 配置文件。这些文件包含了服务器组的变量,比如每个环境的主机名、用户、密码等。在这里可以自定义变量,以适应特定环境的需求。

2. host_vars

存放 Ansible 的 host_vars 配置文件。这些文件包含了每个服务器的变量,比如 IP 地址、网关、DNS 等。可以根据需要创建不同的文件,为不同的服务器指定不同的变量。

3. hosts

存放 Ansible 的主机清单文件。这里定义了服务器组和服务器的对应关系,用于 Ansible 在部署时选择正确的主机。

例子:
[web]
webserver1 ansible_host=192.0.2.1
webserver2 ansible_host=192.0.2.2

[database]
dbserver1 ansible_host=192.0.2.3

[development:children]
web
database

[production:children]
web
database

[web:vars]
ansible_user=webuser

[database:vars]
ansible_user=dbuser
4. roles

存放 Ansible 角色的目录。每个角色是一个独立的文件夹,包含了执行特定任务的 Ansible Playbook 和相关文件。可以根据项目的需求自定义角色来管理不同的任务,比如安装 Nginx、配置 MySQL 等。

例子:
- common
- deploy
- php
- mariadb
- nginx
- redis
- site
- ssl
5. group_vars/all/main.yml

存放全局的 Ansible 变量,对所有环境生效。在这里可以定义全局的环境变量,比如默认的 PHP 版本、数据库名字等。

例子:
php_version: "7.4"
db_name: "my_database"
6. group_vars/development/main.ymlgroup_vars/production/main.yml

存放特定环境的 Ansible 变量,在不同环境中可以设置不同的值。通过这些变量,可以轻松配置每个环境的差异性,比如主机名、用户、密码等。

例子:
# group_vars/development/main.yml
site_hosts:
  - example.localdev
  - example.localtest

# group_vars/production/main.yml
site_hosts:
  - example.com
  - www.example.com
7. vault.yml

存放 Ansible Vault 的加密文件。可以将敏感的信息(如密码、私钥等)加密保存在这里,确保不会在版本控制中暴露。

8. deploy.yml

Trellis 的核心部署 Playbook。它定义了全部的部署任务,包括创建服务器、安装软件、配置环境等。可以通过运行该 Playbook 来部署整个 WordPress 站点。

9. server.ymldevelopment.yml

用于配置服务器的 Ansible Playbook。server.yml 包含了服务器的初始化设置,如创建用户、安装软件等;development.yml 还包含了一些用于本地开发环境的设置。

10. vault_pass.yml

用于存储 Ansible Vault 密码的文件。Trellis 使用该文件来解密 vault.yml 中的内容。务必保护好该文件的安全性。

以上是 Trellis 项目文件夹结构的介绍。通过这样的文件夹结构,开发者可以更方便地管理和部署 WordPress 网站,同时也为团队协作提供了一种标准化的方式。