간밤에 잠이 안와서 읽기 시작했는데, 내용이 굉장히 알찬 책이었다. 1장에서 7장까지는 다른책에 있는 내용과 크게 다른 내용이 없어서 대부분 알고 있는 내용이라 술술 넘겼다. 새롭게 알게된 내용들은 8장부터 나온 내용들이다. aws 관련, docker 관련, 윈도우즈 관련, 네트워크 장비 관련은 정말 읽기만 했다. (필요할때 찾아보면 될 것 같음)
smart
는 ssh 클래아언트가 ControlPersist를 지원하는 경우 로컬 ssh 클라이언트를 사용하고, 아닌경우는 Paramiko 라는 파이썬 ssh 구현체를 사용한다. (관련변수 ansible_connection)dynamic.py
라는 파이썬 스크립트를 만들고 내부에서 적절한 코드를 만들면된다. result로 다음의 결과가 필요하다.# ./dynamic.py --host 실행시
{"ansible_host": "abc.exampl.com", "ansible_port": 22, "ansible_user": "deploy", "ansible_private_key_file": "./ssh/id_ras.pub" }
# ./dynamic.py --list 실행시
{
"production": ["real.example.com", "real.example.com", ...],
"sandbox": ["sandbox.example.com", "sandbox.example.com", ...],
"dev": ["dev.example.com", "dev.example.com", ...],
}
add_host
모듈을 사용하여 호스트를 동적으로 추가가능group_by
모듈은 사용하여 그룹을 동적으로 추가가능xip.io 는 DNS를 따로 할당할 수 없는 개발머신에서 임시로 도메인을 사용할 수 있게하는 매직 도메인
을 제공하는 서비스이다. ROR로 유명한 basecamp사에서 제공해주고 있다.
10.0.0.10.xip.io
는 10.0.0.10
을 리턴해준다.www.10.0.0.10.xip.io
도 10.0.0.10
을 리턴해준다.yum update
를 해주고 posttasks 에서는 슬랙 알림 기능을 넣을 수 있다.---
- hosts: localhost
pre_tasks:
- command: echo 전처리 태스크
tasks:
- command: echo 태스크
post_tasks:
- command: echo 후처리 태스크
.ansible/plugins/filter
에 넣거나 ANSIBLE_FILTER_PLUGINS
에 설정할 수 있다. 필터는 파이썬으로 만들어야된다.notify
에서 리스트로 정의해줄 수도 있으나, 태스크와 handler에 listen
을 주게 되면, 조금더 편하게 설정할 수 있다.AnsibleModule
클래스의 지원을 받을 수 있다.playbooks/libaray/<사용자정의모듈>
에 저장하면 된다.제대로 쓰면 이것만가지고 글 하나를 적을 수 있으니 검색을 위한 키워드만 적어두겠음
-A
옵션을 주면 사용가능하다../ssh/config
에 아래의 설정을 추가해도 된다.Host *
ForwardAgent yes
ansible.cfg
파일에 아래와 같이 설정하면 된다.[ssh_connection]
ssh_args = -o ForwardAgent=yes
ssh 에이전트 포워딩은 아래와 같은 처리를 해주는 것이다.
# 아래와 같은 처리를 하고 싶은 경우 보통 공용키를 깃헙에 등록해주어야한다.
어플리케이션 서버 (git clone) -> 깃헙
# 에이전트 포워딩 기능을 사용하면 로컬머신의 공용키를 가지고 어플리케이션 서버에서 깃헙으로 인증을 할 수 있다.
로컬머신 -> 어플리케이션 서버(git clone) -> 깃헙