ansible에서 ansible을 실행하는 사용자의 이름으로 변수를 얻으려면 어떻게해야합니까?
ansible 스크립트 (예 : tlau)를 실행하는 사용자의 이름을 사용하고 해당 사용자 이름과 현재 날짜 / 시간 (예 : tlau-deploy-2014-10)을 기반으로 원격 시스템에 배포 디렉터리를 만드는 배포 프로세스를 스크립팅하고 있습니다. -15-16 : 52).
이것이 가능한 사실 (예 : LOGNAME 또는 SUDO_USER)에서 사용할 수 있다고 생각할 수 있지만 모두 "root"또는 원격 시스템에 ssh하는 데 사용되는 배포 ID로 설정됩니다. 여기에는 현재 ansible 프로세스를 실행중인 로컬 사용자가 포함되지 않습니다.
ansible 프로세스를 실행하는 사용자의 이름을 가져 와서 내 플레이 북에서 사용하려면 어떻게 스크립트를 작성합니까?
호스트 시스템의 사용자 이름을 의미한다면 로컬 작업을 실행할 수 있다고 생각합니다.
- name: get the username running the deploy
become: false
local_action: command whoami
register: username_on_the_host
- debug: var=username_on_the_host
이 예에서 whoami
명령 의 출력은 "username_on_the_host"라는 변수에 등록되고 사용자 이름은에 포함됩니다 username_on_the_host.stdout
.
(디버그 작업은 여기서 필요하지 않으며 변수의 내용 만 보여줍니다.)
당신이 경우 gather_facts
, 플레이 북에 대해 기본적으로 활성화되어있는이 내장라고 세트되는 변수 ansible_user_id
작업이로 실행되고 있음을 사용자 이름을 제공한다. 그런 다음 다른 작업이나 템플릿에서이 변수를 사용할 수 있습니다 {{ ansible_user_id }}
. 이렇게하면 해당 변수를 등록하기 위해 작업을 실행하는 단계를 줄일 수 있습니다.
참조 : http://docs.ansible.com/playbooks_variables.html#information-discovered-from-systems-facts
모든 템플릿에 다음과 같은 내용을 넣었습니다.
# Placed here by {{ lookup('env','USER') }} using Ansible, {{ ansible_date_time.date }}.
템플릿을 사용하면 다음과 같이 표시됩니다.
# Placed here by staylorx using Ansible, 2017-01-11.
내가 사용 {{ ansible_user_id }}
하고 내가 루트가 되었다면 그 변수는 내가 대부분의 시간을 원하는 것이 아니라 "루트"를 나타낸다.
'IT Share you' 카테고리의 다른 글
자바 : 객체를 byte []로, byte []를 객체로 변환기 (도쿄 내각 용) (0) | 2020.12.02 |
---|---|
Django에서 AJAX를 통해 매개 변수를 게시하는 동안 "CSRF 토큰이 없거나 잘못되었습니다." (0) | 2020.12.02 |
Tmux 테두리가 줄 대신 xq로 표시됩니까? (0) | 2020.12.02 |
Console.Clear를 사용하여 전체 콘솔 대신 한 줄만 지울 수 있습니까? (0) | 2020.12.02 |
Apache VirtualHost 및 localhost (0) | 2020.12.02 |