gpt4 book ai didi

ansible - 内联加密变量不可 JSON 序列化

转载 作者:行者123 更新时间:2023-12-04 03:25:35 36 4
gpt4 key购买 nike

我试图了解如何使用保险库加密单个变量。首先我用 ansible-vault encrypt_string -n -p 加密字符串,然后我将输出写入我的剧本。当我执行剧本时,它说解密的字符串不是 JSON 可序列化的。

加密字符串:"inline_name"我也用 inline_name 试过了和 inlinename ,每次都有相同的结果。

我的剧本:

---
- name: Build System

hosts: dev

tasks:
- name: Create
mysql_db:
state: present
name: !vault |
$ANSIBLE_VAULT;1.1;AES256
39613261386438623937643062636166663638633062323939343734306334346537613233623064
3761633832326365356231633338396132646532313861350a316666376566616633376238313636
39343833306462323534623238333639663734626662623731666239366566643636386261643164
3861363730336331660a316165633232323732633364346636363764623639356562336536636136
6364
login_host: "{{ mysql_host }}"
login_user: "{{ mysql_user }}"
login_password: "{{ mysql_pass }}"
- name: Check if can access plain text vars
debug:
msg: "{{ my_plain_txt }}"

错误信息:
An exception occurred during task execution. To see the full traceback, use -vvv. 
The error was: TypeError: u'"inline_name"' is not JSON serializable
fatal: [127.0.0.1]: FAILED! => {"failed": true, "msg": "Unexpected failure during module execution.", "stdout": ""}

最佳答案

添加任务级变量:

  - name: Create 
mysql_db:
state: present
name: "{{ mysql_name }}"
login_host: "{{ mysql_host }}"
login_user: "{{ mysql_user }}"
login_password: "{{ mysql_pass }}"
vars:
mysql_name: !vault |
$ANSIBLE_VAULT;1.1;AES256
39613261386438623937643062636166663638633062323939343734306334346537613233623064
3761633832326365356231633338396132646532313861350a316666376566616633376238313636
39343833306462323534623238333639663734626662623731666239366566643636386261643164
3861363730336331660a316165633232323732633364346636363764623639356562336536636136
6364

关于ansible - 内联加密变量不可 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47567580/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com