명령어의 실행을 입력할 때 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