我有以下输入文件,该文件将保险库密码保存到名为encrypted_string
的变量中。
cat password.yml
encrypted_string: !vault
$ANSIBLE_VAULT;1.1;AES257
64366631356365313732663330666536373037313065396335353630353233373830326336376631
3935373061383936633535306665373065376366636136350a303335646630633337333732643238
62313830393437303338346461646133373135623836643538366333346436663762323263666632
6131333863356636610a613034656161613230613530613538323232386431343333653362336236
3732
我需要用新的加密字符串替换encrypted_string
中的password.yml
变量。
为了简单起见,我在下面的python文件中将其硬编码为encrypted_key_raw
。
上面的代码应该用新的密钥替换密钥,但是它在密钥后面附加了一个密钥
cat myscript.py
import re
from pathlib2 import Path
file="password.yml"
encryped_key_raw='''!vault
$ANSIBLE_VAULT;1.1;AES256
64366631356365313732663330666536373037313065396335353630353233373830326336376633
3935373061383936633535306665373065376366636136350a303335646630633337333732643240
62313830393437303338346461646133373135623836643538366333346436663762323263666635
6131333863356636610a613034656161613230613530613538323232386431343333653362336239
3732'''
path = Path(file)
text = path.read_text()
text = re.sub(r'^encrypted_string:.*', 'encrypted_string: {}'.format(encryped_key_raw.strip()), text,flags=re.MULTILINE)
path.write_text(text)
当前输出:
cat password.yml
encrypted_string: !vault
$ANSIBLE_VAULT;1.1;AES257
64366631356365313732663330666536373037313065396335353630353233373830326336376631
3935373061383936633535306665373065376366636136350a303335646630633337333732643238
62313830393437303338346461646133373135623836643538366333346436663762323263666632
6131333863356636610a613034656161613230613530613538323232386431343333653362336236
3732
!vault
$ANSIBLE_VAULT;1.1;AES256
64366631356365313732663330666536373037313065396335353630353233373830326336376633
3935373061383936633535306665373065376366636136350a303335646630633337333732643240
62313830393437303338346461646133373135623836643538366333346436663762323263666635
6131333863356636610a613034656161613230613530613538323232386431343333653362336239
3732
所需的输出:
encrypted_string: !vault
$ANSIBLE_VAULT;1.1;AES256
64366631356365313732663330666536373037313065396335353630353233373830326336376633
3935373061383936633535306665373065376366636136350a303335646630633337333732643240
62313830393437303338346461646133373135623836643538366333346436663762323263666635
6131333863356636610a613034656161613230613530613538323232386431343333653362336239
3732