[英]How to run python script from Ansible and pass variable from the python script to Ansible to use later?
我正在嘗試使用 python boto3 從 AWS SSM 參數存儲中獲取我的鍵值 (myP@ssw0rd)。 在 Ansible playbook.yml 文件中執行此操作。 這是我正在使用的 python 腳本:
import boto3
ssm = boto3.client(‘ssm’, region_name=‘us-east-1’)
response=ssm.get_parameters(Names=[‘MyKeyName’])
var_value= response[‘Parameters’][0][‘Value’]
我想在我的 ansible 劇本中使用這個 var_value,如下所示:創建 DD 代理
shell: DOCKER_CONTENT_TRUST=1 \
docker run -d --name ddagent --network my-network -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY=$var_value \
datadog/agent:latest
在這里,我試圖從 SSM 參數存儲中獲取值(使用 python boto3)並將其傳遞給 Ansible 以在上述命令的“DD_API_KEY”中使用。 誰能讓我知道這個用例的最佳方法是什么?
將此行添加到 python 腳本
print (var_value)
使用command module
或script module
(如果需要將腳本復制到遠程機器)運行 python 腳本並注冊 output。
- name: run python script
command: '/path/to/python-executable /home/centos/conf.d/ssmread/ddkeyreadssm.py'
register: result
- name: creating DD agent
shell: |
DOCKER_CONTENT_TRUST=1 \
docker run -d --name ddagent --network my-network -v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY="{{ result.stdout }}" \
datadog/agent:latest
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.