Tại sao các tệp Ansible được mã hóa không thể được giải mã mặc dù tệp mật khẩu vault đã được đặt?


7

Theo dõi Q & A này .

Theo tài liệu này và tài liệu này, có thể xác định tệp mật khẩu vault mặc định bằng cách chỉ định vault_password_file = ~/.vault_pass.txtmột trong các tệp sau:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

Mặc dù tệp mật khẩu tồn tại và nhật ký chỉ ra rằng ansible.cfg được sử dụng có chứa định nghĩa, quá trình giải mã thất bại:

user@host$
Using /etc/ansible/ansible.cfg as config file
ERROR! Decryption failed on /path/to/ansible/group_vars/production/vault

Thảo luận

  • Là vượt qua chính xác cho hầm này?

Đúng. Khi ansible được chạy bằng cách --vault-password-file=~/.vault_pass.txtgiải mã thành công.

  • Để chúng ta rõ ràng - tên của biến môi trường là ANSIBLE_VAULT_PASSWORD_FILE, đúng không?

Không. Khi biến này được sử dụng, nó hoạt động, nhưng mục đích là đặt nó trong ansible.cfg bằng cách cài đặt /etc/ansible/ansible.cfg.

  • Phiên bản Ansible nào được sử dụng?

    user@host:/dir$ ansible --version
    ansible 2.2.2.0
        config file = /etc/ansible/ansible.cfg
        configured module search path = Default w/o overrides
    
  • Liệu sử dụng một đường dẫn đầy đủ trong cấu hình hoạt động?

Việc giải mã cũng thất bại khi đường dẫn đầy đủ thay vì ~, /home/user/.vault_pass.txtđược chỉ định.


1
Để chúng ta rõ ràng - tên của biến môi trường là ANSIBLE_VAULT_PASSWORD_FILE, đúng không?
13

Và đầu ra của echo $ANSIBLE_VAULT_PASSWORD_FILEcái gì?
13

nó trống vì tôi cố gắng sử dụngvault_password_file = ~/.vault_pass.txt
030

tên biến là trường hợp nhạy cảm
13dimitar

Điều này được đặt trong ansible.cfg. Tôi không sử dụng biến môi trường
030

Câu trả lời:


1

Không rõ tại sao nó thất bại, nhưng thiết lập vault_password_file = ~/.vault_pass.txttrong /etc/ansible/ansible.cfglà đủ.


1

Tôi đã tìm thấy một vấn đề với Ansible / Python gây ra lỗi không thể giải mã.

Cụ thể, Ansible 2.7.10 và 2.7.13 trong Python 3.6.8 trên Ubuntu 18.04 sẽ không giải mã (sử dụng ansible-vault edit -vvvvv) tệp vault giống hệt với tệp đã giải mã OK trên macOS 10.13 bằng Python 3.7.2 với cùng phiên bản Ansible.

Nâng cấp lên Python 3.7.3 trên Ubuntu (sử dụng apt-get install python3.7ngày 18.04) đã sửa lỗi này.

Vấn đề của bạn có thể khác, nhưng nếu trên Python 3.6 trở xuống, tôi sẽ thử nâng cấp lên 3.7.


-1

Theo các tài liệu ,

Bạn cũng có thể đặt biến ANSIBLE_VAULT_PASSWORD_FILEenvir, ví dụ ANSIBLE_VAULT_PASSWORD_FILE = ~ / .vault_pass.txt và Ansible sẽ tự động tìm kiếm mật khẩu trong tệp đó.

Đảm bảo rằng bạn đang sử dụng chính xác trường hợp tương tự.


1
Bạn đang đặt câu hỏi, đó là về thuộc tính tệp cấu hình, nó được nêu theo nghĩa đen trong câu hỏi, đọc lại một cách cẩn thận
Tensibai
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.