사용자 도구

사이트 도구


build_deploy_management:ansible

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
마지막 판 양쪽 다음 판
build_deploy_management:ansible [2020/09/19 15:09]
kwon37xi [become]
build_deploy_management:ansible [2020/12/16 21:51]
kwon37xi [Local 실행]
줄 17: 줄 17:
 ansible-playbook playbook.yml ... --user=username \ ansible-playbook playbook.yml ... --user=username \
    --extra-vars "ansible_become_pass=yourPassword"    --extra-vars "ansible_become_pass=yourPassword"
 +</code>
 +  * 그런데,이 경우 비밀번호가 외부로 노출되므로 비밀번호를 ''read -s SUDO_PASSWORD'' 등으로 읽거나 환경변수에 지정하고서 다음과 같이 하면 명령 history 노출등에 방어가 된다.
 +<code sh>
 +ansible-playbook playbook.yml ... \
 +    --extra-vars="ansible_become_pass='{{ lookup('env', 'SUDO_PASSWORD') }}'"
 </code> </code>
   * [[linux:sudo|sudo]]   * [[linux:sudo|sudo]]
 +
 +===== become_user =====
 +  * 특정 사용자로 명령 실행하기. ''ansible-playbook'' 자체를 ''root'' 로 실행한다면 ''become'' 대신 ''become_user''를 사용해야 할듯.
 +
 +
 ===== Local 실행 ===== ===== Local 실행 =====
   * [[https://gist.github.com/alces/caa3e7e5f46f9595f715f0f55eef65c1|How to run an Ansible playbook locally]]   * [[https://gist.github.com/alces/caa3e7e5f46f9595f715f0f55eef65c1|How to run an Ansible playbook locally]]
줄 25: 줄 35:
 <code yml> <code yml>
 - name: playbook name - name: playbook name
-  hosts: 127.0.0.1+  hosts: localhost # 혹은 127.0.0.1 로도 작동했음.
   connection: local   connection: local
   tasks:   tasks:
줄 108: 줄 118:
   * ''%%--step%%'' : 실행여부 질문   * ''%%--step%%'' : 실행여부 질문
  
 +===== retries =====
 +  * ''register'', ''until'', ''delay'' 와 함께 사용.
 +  * 현재의 ''retries'' 는 ''until''이 없으면 작동하지 않는다. ''until''에서 명백하게 성공 조건을 명시해야한다.
 +  * [[https://github.com/ansible/ansible/issues/20802|"retries" without "until": retry until success · Issue #20802]] : 성공시 자동으로 ''retries'' 종료 해달라는 이슈. PR 이 있으며, 머지될 가능성이 있음.
 +
 +===== ansible-pull =====
 +  * [[:git|git]] 리포지토리등에서 파일을 받아서 ansible-playbook 실행.
 +  * [[https://docs.ansible.com/ansible/latest/cli/ansible-pull.html|ansible-pull]]
 +  * [[https://medium.com/splunkuserdeveloperadministrator/using-ansible-pull-in-ansible-projects-ac04466643e8|Using Ansible Pull In Ansible Projects | by Vince Sesto | Splunk User Developer Administrator | Medium]]
 +  * 실행할 플레이북 파일명을 명시하지 않으면 기본적으로 저장소 최상위 디렉토리의 ''local.yml'' 파일을 실행한다.
 +
 +<code sh>
 +ansible-pull https://github.com/.../xxx.git
 +</code>
 ===== 참조 ===== ===== 참조 =====
 +  * [[https://www.youtube.com/playlist?list=PLT98CRl2KxKEUHie1m24-wkyHpEsa4Y70|Getting started with Ansible - YouTube]] : 매우 쉽게 Ansible 설명.
   * [[http://knight76.tistory.com/1977|ansible tomcat]]   * [[http://knight76.tistory.com/1977|ansible tomcat]]
   * [[http://brownbears.tistory.com/358|Ansible이란?]]   * [[http://brownbears.tistory.com/358|Ansible이란?]]
   * [[https://skyoo2003.github.io/post/2017/11/14/ansible-module-develop|Ansible Module 개발하기 - 📚 Devlog in the SKY 📚]]   * [[https://skyoo2003.github.io/post/2017/11/14/ansible-module-develop|Ansible Module 개발하기 - 📚 Devlog in the SKY 📚]]
   * [[http://theeye.pe.kr/archives/2597|Ansible Playbook 정리 | 아이군의 블로그]]   * [[http://theeye.pe.kr/archives/2597|Ansible Playbook 정리 | 아이군의 블로그]]
 +  * [[https://www.ansible.com/blog/ansible-tips-and-tricks-dealing-with-unreliable-connections-and-services|Ansible Tips and Tricks: Dealing with Unreliable Connections and Services]]
  
build_deploy_management/ansible.txt · 마지막으로 수정됨: 2020/12/16 21:55 저자 kwon37xi