Trong Ansible, bạn có thể mã hoá mật khẩu bằng cách sử dụng filter vault
. Filter này sử dụng Ansible Vault để mã hoá giá trị mật khẩu. Vì vậy, đây là một ví dụ về cách sử dụng Ansible Vault để mã hóa mật khẩu và sử dụng biến trong playbook:
Tạo một file vault_pass.txt
để lưu mật khẩu cho Ansible Vault:
my_vault_password
Mã hóa mật khẩu GITLAB_PASSWORD
bằng Ansible Vault:
ansible-vault encrypt_string 'eewqcasdfsfds' --name 'my_gitlab_password'
Bạn sẽ được hỏi để nhập mật khẩu cho Ansible Vault. Hãy nhập mật khẩu đã lưu trong vault_pass.txt
.
Kết quả sẽ là một chuỗi đã được mã hóa, ví dụ:
!vault |
$ANSIBLE_VAULT;1.1;AES256
37323961303337666239326263306631363432396234643862383830326566613133346534386436
6139653131363031336564663933383630363037663236640a333666383535663536633736636538
31323065646634386133323736323561666339353432343038373464653363356636313561663133
3237653366346136360a663832383836343034626337363938373530656631653962653537653862
3166
Đặt chuỗi đã được mã hóa vào biến GITLAB_PASSWORD
trong playbook:
- name: Set GitLab credentials
environment:
GITLAB_USER: "hoanghd164"
GITLAB_PASSWORD: !vault |
$ANSIBLE_VAULT;1.1;AES256
37323961303337666239326263306631363432396234643862383830326566613133346534386436
6139653131363031336564663933383630363037663236640a333666383535663536633736636538
31323065646634386133323736323561666339353432343038373464653363356636313561663133
3237653366346136360a663832383836343034626337363938373530656631653962653537653862
3166
become: false
- name: Clone repository
git:
repo: "https://gitlab.com/hoanghd164/monitor.git"
dest: "/home/{{ project_name }}-project"
become: false
Lưu ý rằng trong trường hợp này, biến GITLAB_PASSWORD
sẽ chứa chuỗi đã được mã hóa, do đó bạn không cần phải lo lắng về việc bị lộ mật khẩu.