我们在 group_vars ,production,vault.yml 文件里面,添加了一些比较敏感的信息... 这个文件里的内容你可能不希望让别人看到 .. 我们可以用 ansible-vault 去加密处理一下这个文件 ..
先在 trellis 下面,创建一个文件,名字是 .vault_pass .. 里面添加一串随机的字符串 .. 在命令行下面,可以生成一串随机的字符 ..
把它粘贴到 .vault_pass 文件里面 .. 加密还有解密文件的时候需要用到这个文件里的密码 .. 再打开 ansible 的配置文件 .. ansible.cfg .. 添加一行配置 .. vault_password_file = .vault_pass
这样运行 playbook 的时候,就不需要我们输入 vault 密码了 .. ansible 会自动读取这个密码文件里的密码 ..
加密
打开命令行 .. 用一下 ansible-vault .. mac 可以直接在 trellis 下面使用这个命令 .. windows 用户需要先登录到本地开发环境上的虚拟机,在用户主目录下面的 trellis 目录的下面,可以使用 ansible-vault 命令 ..
加密文件用的是 encrypt,要处理的文件是 group_vars/production/vault.yml ..
这里会提示一下 Encryption successful ,加密成功 .. 再打开这个加密以后的文件看一下 ..
现在里面会是一些对一般人来说没有意义的字符 ..
想查看加密文件真正的内容,可以在命令行下面用一下 ansible-vault view group_vars/production/vault.yml
编辑这个文件里的内容现在可以使用 ansible-vault edit ... 这样会打开命令行下面的编辑工具,可以编辑文件里的内容 ..
把文件还原成原来的样式,可以使用 ansible-vault decrypt .. 后面再加上要解密的文件 ..
你会看到这回 vault.yml 文件又恢复成原来的样子了 ..
我们可以再加密一下这个文件 ...
如果文件里面的内容你不想让别人看见,就可以使用一下 ansible-vault 去加密处理一下 .. 要注意的是, trellis 下面的 .vault_pass 这个文件不要把它放在项目的版本控制里 .. 因为这里存储了加密还有解密用的那串字符 ..
在 .gitignore 文件里面,可以忽略掉这个文件 ...