명령어의 실행을 입력할 때 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개가 존재하며 각각 쓰임이 조금씩 다르다.
따라서, include_vars와 vars_files 모듈은 playbook 실행 중에 변수 값을 가져오는 데 사용되고, import_vars는 playbook 실행 이전에 변수를 가져오는 데 사용됩니다.
[defaults]
inventory = hosts
remote_user = user
private_key_file = /path/to/key
forks = 5