현재 kubernetes 자동화 설치 툴을 개발 중입니다.
최근 자동화 설치 툴을 지속해서 유지보수하고 새로운 기능들을 개발하면서
진작에 느끼고 있던 스파게티 코드 Refactoring을 하자는 계획이 세워졌다.
공통화를 문서로 정의하고 코드의 양을 최대한으로 줄이고 task를 불러오는 식으로 Refactoring 계획 수립 후
이를 해결할 방법을 찾는 도중에 Ansible runner라는 툴을 발견했다.
늘 그렇듯이 왠지 모를 자신감만
생기지
자 그래서 Ansible runner란 무엇이냐
공식문서에 의하면
Ansible Runner는 Ansible과 직접 또는 다른 시스템의 일부로 인터페이스할 때 도움이 되는 도구 및 파이썬 라이브러리입니다.
뭐 암튼 개쩌는 도움이 된다는건가?
.
├── env
│ ├── envvars
│ ├── extravars
│ ├── passwords
│ ├── cmdline
│ ├── settings
│ └── ssh_key
├── inventory
│ └── hosts
└── project
├── test.yml
└── roles
└── testrole
├── defaults
├── handlers
├── meta
├── README.md
├── tasks
├── tests
└── vars
Ansible runner는 위의 기본적인 디렉토리 구조를 가지는데 하나씩 알아보도록하자
전체
에 영향을 미치는 변수들을 정의playbook
에서 사용할 추가 변수를 정의합니다.Ansible playbook
실행 시 사용할 비밀번호를 정의합니다.
ssh 접속 암호, become user 암호 같은 것
---
"^SSH password:\\s*?$": "some_password"
"^BECOME password.*:\\s*?$": "become_password"
낮음
정말 스파게티 코드는.. 참...ㅋㅋ;;;