Tài liệu này chỉ ra rằng vì Ansible 2.3 nên có thể mã hóa một số vars nhất định bằng cách sử dụng !vault |
tiền tố thay vì đặt một biến và khóa trong tệp vault và mã hóa hoàn toàn.
notsecret: myvalue mysecret: !vault | $ANSIBLE_VAULT;1.1;AES256 66386439653236336462626566653063336164663966303231363934653561363964363833313662 6431626536303530376336343832656537303632313433360a626438346336353331386135323734 62656361653630373231613662633962316233633936396165386439616533353965373339616234 3430613539666330390a313736323265656432366236633330313963326365653937323833366536 34623731376664623134383463316265643436343438623266623965636363326136 other_plain_text: othervalue
Hiện tại cấu trúc như sau:
ansible/group_vars/testing/vars
ansible/group_vars/testing/vault
Khi một biến được mã hóa được chuyển từ vault sang thư mục vars và ansible-vault decrypt ansible/group_vars/testing/vars
được chạy, nó sẽ trả về:
ERROR! input is not vault encrypted data for ansible/group_vars/testing/vars
Biến vault này được giải mã với bí mật vault được cung cấp và được sử dụng như một biến thông thường. Dòng lệnh ansible-vault hỗ trợ stdin và stdout để mã hóa dữ liệu một cách nhanh chóng, có thể được sử dụng từ trình soạn thảo yêu thích của bạn để tạo các biến bị lỗi này; bạn chỉ cần chắc chắn thêm thẻ! vault để cả Ansible và YAML đều biết cần phải giải mã. | cũng được yêu cầu, vì mã hóa vault dẫn đến một chuỗi nhiều dòng.
Câu hỏi
- Các biến cần được mã hóa, được mã hóa từng cái một bằng cách sử dụng dòng lệnh?
- Thực hành tốt nhất để tái cấu trúc cấu trúc Ansible cũ là gì? Ví dụ: loại bỏ các tập tin vault và đặt tất cả các vars được mã hóa trong tập tin vars?