Cấu hình của Ansible tương đương với `--vault-password-file` là gì?


12

Theo sự trợ giúp của ansible-playbook, người ta có thể sử dụng --user=REMOTE_USERđể xác định người dùng ssh, nhưng người ta cũng có thể định nghĩa ansible_ssh_user: REMOTE_USERtrong máy chủ lưu trữ hoặc nhóm.

Câu hỏi

Biến nào cần được xác định trong thư mục nhóm- hoặc host_vars để ngăn điều đó --vault-password-filephải được xác định trong khi chạy ansible-playbook?

Nỗ lực

  • Khi ansible_vault_password_file: ~/.vault_pass.txtđược định nghĩa trong cấu hình, quá trình giải mã thất bại:

    ERROR! Decryption failed on /path/to/vault
    
  • Không tìm thấy biến vault liên quan trong tài liệu này


Btw hiện đã được ghi lại (từ phiên bản 1.7) tại đây: docs.ansible.com/ansible/iêng
Tensibai 30/03/2017

Câu trả lời:


13

Đây là định nghĩa:

DEFAULT_VAULT_PASSWORD_FILE = get_config(p, DEFAULTS, 'vault_password_file', \
'ANSIBLE_VAULT_PASSWORD_FILE', None, value_type='path')

Điều này có nghĩa là bạn đặt ansible.cfg hoặc playbook:

vault_password_file: ~/.vault_pass.txt

Hoặc trong shell của bạn đã xác định biến này:

export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt

Tôi đã cố tình để lại văn bản của url ở đó để cho mọi người thấy cách nhìn vào mã có thể giúp nơi tài liệu bị thiếu và nơi có thể tìm thấy mã dễ dàng. Nhưng tôi đoán một siêu liên kết là đủ.
Jiri Klouda

Nếu có bất cứ điều gì khác, hãy đọc tài liệu ... và nếu không có tài liệu nào, hãy đọc nguồn ... nếu bạn có quyền truy cập vào nó ... và nếu bạn làm vậy, hãy chắc chắn rằng bạn đang xem đúng phiên bản .. Điều duy nhất còn lại sau đó là có thể hiểu tất cả. PS: các liên kết có thể ngừng hoạt động một ngày nào đó ...
Pierre.Vriens

@JiriKlouda nó dường như không hoạt động mặc dù nó đã được xác định trong group_vars/all/vars. export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtphải chạy
030

Đây là một biến cấu hình. Nó phải ở trong ansible.cfg hoặc tương đương hoặc trong playbook.
Jiri Klouda

Ngoài ra tôi đã đặc biệt kiểm tra các phiên bản 2.2 bạn chạy và nó là ở đó: github.com/ansible/ansible/blob/stable-2.2/lib/ansible/...
Jiri Klouda

2

Bạn có thể đặt biến môi trường ANSIBLE_VAULT_PASSWORD_FILElưu trữ đường dẫn tệp mật khẩu vault. Bằng cách này, bạn sẽ không phải luôn sử dụng công --vault-password-filetắc khi chạy Playbook.

Điều này được mô tả trong tài liệu Vault của Ansible, có sẵn ở đây .

Vì vậy, hãy thêm export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txtvào ~/.bash_profile, nguồn của bạn và bạn đã sẵn sàng để đi.

Nếu bạn cần mật khẩu vault khác nhau cho các nhóm máy chủ khác nhau, thì bạn nên làm như sau:

Bên trong thư mục con này, tạo hai tệp có tên vars và vault. Bên trong tệp vars, xác định tất cả các biến cần thiết, bao gồm mọi biến nhạy cảm. Tiếp theo, sao chép tất cả các biến nhạy cảm vào tệp vault và tiền tố các biến này bằng vault_. Bạn nên điều chỉnh các biến trong tệp vars để trỏ đến các biến vault_ phù hợp và đảm bảo rằng tệp vault được mã hóa vault.

Đây là một ví dụ cho phương pháp thực hành tốt nhất để quản lý thông tin nhạy cảm trên cơ sở từng nhóm. Thêm thông tin có sẵn trong tài liệu của Ansible tại đây (Văn bản trên được sao chép từ đó).


1
Điều này sẽ không cho phép một mật khẩu khác nhau trên mỗi máy chủ
Tensibai

Bạn đang đề cập đến mật khẩu kết nối? Bởi vì nếu bạn làm, nó có điểm gì chung với Ansible Vault?
13

Tôi đã đề cập đến mật khẩu vault, sẵn sàng có mật khẩu vault khác nhau cho các nhóm khác nhau có ý nghĩa (và là gốc của câu hỏi theo như tôi hiểu).
Tensibai

Tôi đã không hiểu nó theo cách đó. Tôi đã chỉnh sửa câu trả lời của mình để đưa vào kịch bản đó.
13

có vẻ tốt hơn
Downvote
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.