First, create a key file, e.g.,
vault_pass_file, which ideally contains a long sequence of random characters.
In linux systems you could use
pwgen to create a random password file:
pwgen 256 1 > vault_pass_file
Then, use this file to encrypt sensitive data, e.g.,
ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault encrypt group_vars/group.yml
From now on, in order to run a playbook you need the
ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-playbook -i inventories/nodes my-playbook.yml
Note, you could also use the flag
--vault-password-file vault_pass_file instead of setting the
ANSIBLE_VAULT_PASSWORD_FILE environment variable.
In order to edit or decrypt the secret on disk you can use
ansible-vault edit and
ansible-vault decrypt respectively.