2016-07-13 4 views

답변

25

이 기능에 대해서는 알지 못하지만 태그를 사용하여 게임 내에서 하나의 역할 만 수행 할 수 있습니다.

roles: 
    - {role: 'mysql', tags: 'mysql'} 
    - {role: 'apache', tags: 'apache'} 

ansible-playbook webserver.yml --tags "apache" 
12

Anabilities에는 해당 사항이 없지만 자주 사용하는 케이스라면이 스크립트를 사용해보십시오.
이름 ansible-role 아래 검색 PATH 내 어딘가에 넣어 :

#!/bin/bash 

if [[ $# < 2 ]]; then 
    cat <<HELP 
Wrapper script for ansible-playbook to apply single role. 

Usage: $0 <host-pattern> <role-name> [ansible-playbook options] 

Examples: 
    $0 dest_host my_role 
    $0 custom_host my_role -i 'custom_host,' -vv --check 
HELP 
    exit 
fi 

HOST_PATTERN=$1 
shift 
ROLE=$1 
shift 

echo "Trying to apply role \"$ROLE\" to host/group \"$HOST_PATTERN\"..." 

export ANSIBLE_ROLES_PATH="$(pwd)/roles" 
export ANSIBLE_RETRY_FILES_ENABLED="False" 
ansible-playbook "[email protected]" /dev/stdin <<END 
--- 
- hosts: $HOST_PATTERN 
    roles: 
    - $ROLE 
END 
5

또한 ansible-toolbox 저장소를 확인할 수 있습니다. 그것은 당신이 내가 작은 Ansible 플러그인을 작성했습니다

ansible-role --host 192.168.0.10 --gather --user centos --become my-role 
2

같은 것을 사용 할 수 있도록, 즉 동적으로 작전에서 각 역할에 같은 이름의 태그 생성 auto_tags을했다. 당신은 그것을 here 찾을 수 있습니다.

ansible-playbook -i "192.168.0.10" --tags "name_of_role"

:

(지침은 위의 요지에있는)를 설치 한 후에는 다음과 특정 역할을 수행 할 수

관련 문제