📅  最后修改于: 2023-12-03 15:05:37.716000             🧑  作者: Mango
Trellis 是一个用于管理 WordPress 网站的开发、部署和运维工具。它基于 Ansible、Vagrant 和 Bedrock 这些流行的开源项目,并提供了一种标准化的文件夹结构来组织项目的代码和配置文件。
下面是 Trellis 项目文件夹结构的详细介绍(按重要性排序):
group_vars
存放 Ansible 的 group_vars
配置文件。这些文件包含了服务器组的变量,比如每个环境的主机名、用户、密码等。在这里可以自定义变量,以适应特定环境的需求。
host_vars
存放 Ansible 的 host_vars
配置文件。这些文件包含了每个服务器的变量,比如 IP 地址、网关、DNS 等。可以根据需要创建不同的文件,为不同的服务器指定不同的变量。
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
roles
存放 Ansible 角色的目录。每个角色是一个独立的文件夹,包含了执行特定任务的 Ansible Playbook 和相关文件。可以根据项目的需求自定义角色来管理不同的任务,比如安装 Nginx、配置 MySQL 等。
例子:
- common
- deploy
- php
- mariadb
- nginx
- redis
- site
- ssl
group_vars/all/main.yml
存放全局的 Ansible 变量,对所有环境生效。在这里可以定义全局的环境变量,比如默认的 PHP 版本、数据库名字等。
例子:
php_version: "7.4"
db_name: "my_database"
group_vars/development/main.yml
和 group_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
vault.yml
存放 Ansible Vault 的加密文件。可以将敏感的信息(如密码、私钥等)加密保存在这里,确保不会在版本控制中暴露。
deploy.yml
Trellis 的核心部署 Playbook。它定义了全部的部署任务,包括创建服务器、安装软件、配置环境等。可以通过运行该 Playbook 来部署整个 WordPress 站点。
server.yml
和 development.yml
用于配置服务器的 Ansible Playbook。server.yml
包含了服务器的初始化设置,如创建用户、安装软件等;development.yml
还包含了一些用于本地开发环境的设置。
vault_pass.yml
用于存储 Ansible Vault 密码的文件。Trellis 使用该文件来解密 vault.yml
中的内容。务必保护好该文件的安全性。
以上是 Trellis 项目文件夹结构的介绍。通过这样的文件夹结构,开发者可以更方便地管理和部署 WordPress 网站,同时也为团队协作提供了一种标准化的方式。