내 플레이 북 안에 외부 명령의 출력을 포함하는 변수를 만들고 싶습니다. 나중에 몇 가지 템플릿에서 해당 변수를 사용하고 싶습니다.
다음은 플레이 북의 관련 부분입니다.
tasks:
- name: Create variable from command
command: "echo Hello"
register: command_output
- debug: msg="{{command_output.stdout}}"
- name: Copy test service
template: src=../templates/test.service.j2 dest=/tmp/test.service
- name: Enable test service
shell: systemctl enable /tmp/test.service
- name: Start test service
shell: systemctl start test.service
이것이 내 템플릿이라고합시다.
[Unit]
Description=MyApp
After=docker.service
Requires=docker.service
[Service]
TimeoutStartSec=0
ExecStartPre=-/usr/bin/docker kill busybox1
ExecStartPre=-/usr/bin/docker rm busybox1
ExecStartPre=/usr/bin/docker pull busybox
ExecStart=/usr/bin/docker run --name busybox1 busybox /bin/sh -c "while true; do echo {{ string_to_echo }}; sleep 1; done"
[Install]
WantedBy=multi-user.target
(알림 {{ string_to_echo }}
)
그래서 내가 기본적으로 찾고 command_output.stdout
있는 것은 (첫 번째 작업 중에 생성 / 검색되는) 내용을 새 변수에 저장하는 방법 string_to_echo
입니다.
나중에 여러 템플릿에서 사용하고 싶은 변수입니다.
{{command_output.stdout}}
내 템플릿에서 사용할 수 있다고 생각 하지만 .stdout
가독성 을 위해 제거하고 싶습니다 .
.stdout
.