
일반적으로 편집을 위해 ansible-vault로 암호화된 파일을 열고 싶을 때 실행하면 됩니다. ansible-vault edit <filename>
이렇게 하면 파일을 임시 파일로 해독하고 편집을 위해 엽니다.
그러나 내가 알고 싶은 것은 vim 내에서 이를 달성하는 방법입니다. 예를 들어 구문을 사용하여 쉘 명령을 실행하는 것입니다 :! ...command...
. 예를 들어 vim에서 암호화된 파일을 열고 다음을 실행하여 파일의 암호를 해독할 수 있다는 것을 알고 있습니다.
:! ansible-vault edit %
하지만 그러면 다른 창에서 ansible-vault를 사용하여 파일이 열리고 vim으로 돌아가려면 키를 눌러야 합니다.
내가 원하는 것은 vim으로 이 파일을 열어 다른 일반 파일이나 ansible-vault로 암호화된 파일과 함께 편집할 수 있도록 하는 것입니다. 현재 나는 여러 개의 tmux 창을 열어 이 작업을 수행하고 있지만 이는 일종의 PITA입니다.
답변1
암호화된 볼트 파일을 편집할 때 vim 내부에서 이 작업을 수행해 왔습니다.
:!ansible-vault --vault-password-file=~/.vault_pass decrypt %
변경한 후 파일을 다시 암호화합니다.
:!ansible-vault --vault-password-file=~/.vault_pass encrypt %
볼트 비밀번호는 ~/.vault_pass에 일반 텍스트로 들어갑니다.
내용을 본 다음 원래 암호화된 파일로 돌아가려면(git을 SCM으로 사용하고도망자.vim플러그인), 먼저 해독하고 완료되면 다음을 수행합니다.
:Git checkout %
나중에 더 빠르게 수행하기 위해 해당 명령에 대한 함수나 별칭을 만들 수도 있습니다. 지금은 명령 기록 검색을 수행하므로 매번 전체 내용을 입력할 필요가 없습니다.
q: /decrypt N enter
답변2
나는 그것을 사용하여 그 일을 수행했습니다.
%! ansible-vault decrypt --output -
버퍼를 암호화하려면 다음을 사용하십시오.
%! ansible-vault encrypt --output -
이것을 자동화할 수 있다면 정말 좋을 것 같습니다. 나는 어느 정도 성공을 거두었습니다.
autocmd BufNewFile,BufRead *
\ if getline(1) =~ '$ANSIBLE_VAULT;.*;AES256' |
\ execute '%! ansible-vault decrypt --output -' |
\ endif
그러나 종료 시 버퍼 내용을 다시 암호화하기 위한 autocmd를 설정할 수 없었습니다.