为什么将数据库密码放在Trellis / Bedrock的两个文件中?

时间:2016-11-02 01:28:30

标签: mysql wordpress ansible roots-sage

我正在使用Roots.io的Trellis / Bedrock / Sage。

trellis/group_vars/development/vault.yml中有vault_mysql_root_passwordenv: db_password:的条目,但在site/.env文件中有一个MySQL DB密码条目。

我很困惑为什么我需要在两个文件上输入3个密码。任何人都可以为这三者背后的目的提供一个明确的解释,我是否可以只引用.env的所有内容?

示例.env

DB_NAME=database_name
DB_USER=database_user
DB_PASSWORD=database_password
DB_HOST=database_host

WP_ENV=development
WP_HOME=http://example.com
WP_SITEURL=${WP_HOME}/wp

# Generate your keys here: https://roots.io/salts.html
AUTH_KEY='generateme'
SECURE_AUTH_KEY='generateme'
LOGGED_IN_KEY='generateme'
NONCE_KEY='generateme'
AUTH_SALT='generateme'
SECURE_AUTH_SALT='generateme'
LOGGED_IN_SALT='generateme'
NONCE_SALT='generateme'

示例vault.yml

# Documentation: https://roots.io/trellis/docs/vault/
vault_mysql_root_password: B3LkKUpcZVx4bpLXKXpiez%R

# Variables to accompany `group_vars/development/wordpress_sites.yml`
# Note: the site name (`example.com`) must match up with the site name in the above file.
vault_wordpress_sites:
  roots-example-project.com:
    admin_password: admin
    env:
      db_password: example_dbpassword

1 个答案:

答案 0 :(得分:1)

Ansible使用yaml文件中的参数自动生成

.env文件 如果使用Ansible进行部署,则不应手动触摸.env文件。

vault_mysql_root_password是mysql root密码。

env.db_password是给定网站的特定数据库的密码,最好不要为root用户和wordpress用户使用相同的密码。

因此,您应为vault_mysql_root_password中的特定网站为root帐户db_password定义vault.yml