主机规划
主机名称 | 操作系统版本 | 内网IP | 外网IP(模拟) | 安装软件 |
---|---|---|---|---|
ansi-manager | CentOS7.5 | 172.16.1.180 | 10.0.0.180 | ansible |
ansi-haproxy01 | CentOS7.5 | 172.16.1.181 | 10.0.0.181 | |
ansi-haproxy02 | CentOS7.5 | 172.16.1.182 | 10.0.0.182 | |
ansi-web01 | CentOS7.5 | 172.16.1.183 | 10.0.0.183 | |
ansi-web02 | CentOS7.5 | 172.16.1.184 | 10.0.0.184 | |
ansi-web03 | CentOS7.5 | 172.16.1.185 | 10.0.0.185 |
添加用户账号
说明:
1、 运维人员使用的登录账号;
2、 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放;
3、 该用户也被 ansible 使用,因为几乎所有的生产环境都是禁止 root 远程登录的(因此该 yun 用户也进行了 sudo 提权)。
1 | # 使用一个专门的用户,避免直接使用root用户 |
Ansible 配置清单Inventory
之后文章都是如下主机配置清单
1 | [yun@ansi-manager ansible_info]$ pwd |
Ansible Vault 概述
当我们写的 playbook 中涉及敏感信息,如:数据库账号密码;MQ账号密码;主机账号密码。这时为了防止这些敏感信息泄露,就可以使用 vault 进行加密。
1 | [yun@ansi-manager ~]$ ansible-vault -h |
参数说明
create:创建一个加密文件,在创建时会首先要求输入 Vault 密码,之后才能进入文件中编辑。
decrypt:对 vault 加密的文件进行解密。
edit:对 vault 加密文件进行编辑。
encrypt:对提供的文件,进行 vault 加密。
encrypt_string:对提供的字符串进行 vault 加密。
rekey:对已 vault 加密的文件进行免密更改,需要提供之前的密码。
view:查看已加密的文件,需要提供密码。
Ansible Vault 交互式
创建加密文件
1 | [yun@ansi-manager object06]$ pwd |
对已加密的文件进行解密
1 | [yun@ansi-manager object06]$ ansible-vault decrypt test_vault.yml |
对已存在文件进行加密
1 | [yun@ansi-manager object06]$ ansible-vault encrypt test_vault.yml |
对已加密的文件进行编辑
1 | [yun@ansi-manager object06]$ ansible-vault edit test_vault.yml |
对已加密文件更改密码
1 | [yun@ansi-manager object06]$ ansible-vault rekey test_vault.yml |
对已加密文件进行查看
1 | [yun@ansi-manager object06]$ ansible-vault view test_vault.yml |
对提供的字符串进行加密
1 | [yun@ansi-manager object06]$ ansible-vault encrypt_string "111 222 333" |
Ansible Vault 非交互式
创建密码文件
安全使用,记得使用 400 或 600 权限。
1 | [yun@ansi-manager object06]$ echo "111111" > vault_pwd |
创建加密文件
1 | [yun@ansi-manager object06]$ ansible-vault create test_vault02.yml --vault-password-file=vault_pwd |
对已加密的文件进行解密
1 | [yun@ansi-manager object06]$ ansible-vault decrypt test_vault02.yml --vault-password-file=vault_pwd |
对已存在文件进行加密
1 | [yun@ansi-manager object06]$ ansible-vault encrypt test_vault02.yml --vault-password-file=vault_pwd |
对已加密的文件进行编辑
1 | [yun@ansi-manager object06]$ ansible-vault edit test_vault02.yml --vault-password-file=vault_pwd |
对已加密文件更改密码
1 | [yun@ansi-manager object06]$ ansible-vault rekey test_vault02.yml --vault-password-file=vault_pwd --new-vault-password-file=vault_pwd2 |
对已加密文件进行查看
1 | [yun@ansi-manager object06]$ ansible-vault view test_vault02.yml --vault-password-file=vault_pwd2 |
对提供的字符串进行加密
1 | [yun@ansi-manager object06]$ ansible-vault encrypt_string "test info" --vault-password-file=vault_pwd2 |
Playbook 使用 vault 文件
1 | # 其中 test_vault.yml 的 vault 密码为 vault_pwd 中的信息 |