앤서블 실제 사용 시 도움되는 정보

Donghyun Kim·2023년 4월 17일
0

버전

  • 2.5 버전부터 docker 모듈을 지원한다.
  • 2.7 버전부터 k8s 모듈을 지원한다.
  • 2.9 버전부터 python2 지원이 중단되었고, python3 버전에서만 실행이 가능하다.

Playbook

  • 명령어의 실행을 입력할 때 shell 모듈 보단 command 명령을 사용하는 것이 보안상 권장된다.

    shell 모듈은 서버에서 셸을 직접적으로 사용하여 명령을 실행하지만
    command 모듈은 명령어를 ansible에서 직접 실행하므로 셸을 사용하지않고 실행한다. 리다이렉션, 파이프라인, 환경 변수 사용등의 셸 기능을 사용할 수는 없지만 더 간단하고 안전한 방법으로 명령어를 실행 할 수 있다.
    따라서 특정 셸 기능을 사용하는 것이 아니라면 command 모듈을 사용하여 명령어를 실행시키자.

  • tags로 특정 task 또는 그룹에 대한 레이블을 지정하는데 사용하면 좋다.

    tags를 사용하여 playbook 실행 시 특정 작업 또는 그룹만 실행하거나 제외하도록 지정할 수 있습니다.
    예를 들어, 위의 playbook에서 tags: docker와 tags: vault와 같이 작업에 태그를 지정했습니다. 이렇게 지정한 태그를 사용하여 특정 작업 또는 그룹만 실행하거나 제외할 수 있습니다. 예를 들어, ansible-playbook 명령에 --tags 또는 --skip-tags 옵션을 사용하여 특정 태그를 지정하면 해당 태그가 지정된 작업만 실행하거나 제외할 수 있습니다.
    태그는 playbook의 특정 작업에 대한 레이블로 사용되며, 팀 또는 역할별로 작업을 구분하거나 특정 작업을 선택적으로 실행하고자 할 때 유용하게 사용될 수 있습니다.

  • ansible에서 변수 파일을 가져오는 모듈은 크게 include_vars, vars_files, import_vars 3개가 존재하며 각각 쓰임이 조금씩 다르다.

  1. include_vars: 외부 변수 파일을 playbook에 포함하는 데 사용됩니다. 즉, playbook 실행 중에 사용할 변수 값을 파일에서 가져옵니다.
  2. vars_files: include_vars와 유사하지만 변수 파일의 위치를 상대 또는 절대 경로로 지정할 수 있습니다.
  3. import_vars: playbook이 실행되기 전에 변수 파일을 가져옵니다. playbook 실행 중에 변수 파일을 가져오는 것과 달리, import_vars는 playbook 실행 전에 모든 변수 파일을 가져옵니다. 이를 통해 변수를 playbook 실행 이전에 정의할 수 있습니다.

따라서, include_vars와 vars_files 모듈은 playbook 실행 중에 변수 값을 가져오는 데 사용되고, import_vars는 playbook 실행 이전에 변수를 가져오는 데 사용됩니다.

ansible.cfg

  • playbook 여러개를 동시에 수행할 경우 시스템 리소스 부하로 문제가 발생할 수 있다. 이런 경우 ansible.cfg 파일에 실행할 playbook 수와 병렬로 실행할 호스트 수를 제한할 수 있다.
[defaults]
inventory = hosts
remote_user = user
private_key_file = /path/to/key
forks = 5

profile
"Hello World"

0개의 댓글