일반적으로 편집을 위해 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
그러나 종료 시 버퍼 내용을 다시 암호화하는 자동 명령을 설정할 수 없습니다.