문서의 이전 판입니다!
become: yes 일 경우 sudo 로 명령을 실행한다.ansible-playbook에 --ask-become-pass 옵션을 주면 최초 시작시 비밀번호를 물어본다.ansible-playbook playbook.yml ... --user=username \ --extra-vars "ansible_become_pass=yourPassword"
read -s SUDO_PASSWORD 등으로 읽거나 환경변수에 지정하고서 다음과 같이 하면 명령 history 노출등에 방어가 된다.ansible-playbook playbook.yml ... \
--extra-vars="ansible_become_pass='{{ lookup('env', 'SUDO_PASSWORD') }}'"
ansible-playbook 자체를 root 로 실행한다면 become 대신 become_user를 사용해야 할듯.- name: playbook name
hosts: localhost # 혹은 127.0.0.1 로도 작동했음.
connection: local
tasks:
- name: blah.. blah..
# 실행 ansible-playbook playbook.yml
tasks:
- name: Ansible create file with content example
copy:
dest: "/Users/mdtutorials2/Documents/Ansible/remote_server.txt"
content: "contents"
mode: 0777
owner: mdtutorials2
- debug: msg="{{ lookup('env', 'HOME') }} is an environment variable"
vars_files : 외부 yml 파일의 key/value 쌍을 변수로 읽어들인다. 기본 경로는 현재 플레이북 경로이다.- name: blah blah..
hosts: ...
vars_files:
- "vars.yml" # file in the same directory
tasks: ...
vars.yml# key/value 쌍.
ubuntu_release: "{{ lookup('pipe', 'lsb_release -cs') }}"
current_user: "{{ lookup('env', 'USER') }}"
vagrant_version: 2.2.10
packer_version: 1.6.1
...
- hosts: all
roles:
- php
- nginx
environment:
MY_ENV_VARIABLE: whatever_value
tasks:
- name: Echo my_env_var
shell: "echo $MY_ENV_VARIABLE"
environment:
MY_ENV_VARIABLE: whatever_value
--start-at-task="태스크이름" : 해당 태스크 부터 실행--step : 실행여부 질문register, until, delay 와 함께 사용.retries 는 until이 없으면 작동하지 않는다. until에서 명백하게 성공 조건을 명시해야한다.retries 종료 해달라는 이슈. PR 이 있으며, 머지될 가능성이 있음.local.yml 파일을 실행한다.ansible-pull -U https://github.com/.../xxx.git