加密可靠的库存文件

问题描述:

我想使用不可变的保险库加密我的库存文件,因为它包含IP /密码/密钥文件路径等,我不想让它保持可读格式。加密可靠的库存文件

这是我试过的。

我的文件夹结构看起来像下面

env/ 
    hosts 
    hosts_details 
plays/ 
    test.yml 
files/ 
    vault_pass.txt 

ENV /主机

[server-a] 
server-a-name 

[server-b] 
server-b-name 

[webserver:children] 
server-a 
server-b 

ENV/hosts_details(文件,我想加密)

[server-a:vars] 
env_name=server-a 
ansible_ssh_user=root 
ansible_ssh_host=10.0.0.1 
ansible_ssh_private_key_file=~/.ssh/xyz-key.pem 

[server-b:vars] 
env_name=server-b 
ansible_ssh_user=root 
ansible_ssh_host=10.0.0.2 
ansible_ssh_private_key_file=~/.ssh/xyz-key.pem 

test.yml

--- 
    - hosts: webserver 
    tasks: 
     - name: Print Hello world 
     debug: 
      msg: "Hello World" 

执行不加密的成功运行,没有任何错误

ansible-playbook -i env/ test.yml 

当我加密我ENV/hosts_details在文件/ vault_pass.txt库文件的文件,然后执行该剧本,我得到下面的错误

ansible-playbook -i env/ test.yml --vault-password-file files/vault_pass.txt 


PLAY [webserver] 
****************************************************************** 

TASK [setup] 
******************************************************************* 
Thursday 10 August 2017 11:21:01 +0100 (0:00:00.053)  0:00:00.053 ******* 
fatal: [server-a-name]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname server-a-name: Name or service not known\r\n", "unreachable": true} 
fatal: [server-b-name]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: Could not resolve hostname server-b-name: Name or service not known\r\n", "unreachable": true} 

PLAY RECAP 
********************************************************************* 
server-a-name   : ok=0 changed=0 unreachable=1 failed=0 
server-b-name   : ok=0 changed=0 unreachable=1 failed=0 

我想知道我是否缺少任何内容或是否有可能对库存文件进行加密。

有没有其他的选择相同?

据我所知,您无法加密库存文件。
您应该改用group vars文件。

将您的变量成YAML格式./env/group_vars/server-a.ymlserver-b.yml

env_name: server-a 
ansible_ssh_user: root 
ansible_ssh_host: 10.0.0.1 
ansible_ssh_private_key_file: ~/.ssh/xyz-key.pem 

和加密server-a.ymlserver-b.yml

这样您的库存(主机文件)将以纯文本格式显示,但所有库存(主机和组)变量都将被加密。

+0

嘿!谢谢您的回复。我试过这个,我正在跑进这个'error.ERROR!意外的例外:字典更新序列元素#0具有长度1; 2是必需的' – shwetha

+0

使用'-vvv'详细输出检查错误来源。 –

+0

我的不好!这是一个yaml语法错误。这工作,谢谢你的帮助。 – shwetha