2016-07-13 5 views

答えて

25

私はこの機能に気づいていませんが、タグを使ってプレイブックから1つの役割を実行できます。

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

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

がありAnsibleにはそのようなことではありませんが、これは多くの場合、あなたのためのケースを使用している場合は、このスクリプトを試してみてください。
名前ansible-roleの下に、検索パス内のどこかに入れて:

#!/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"

(命令は上記の主旨である)、それをインストールした後は、その後で特定の役割を実行することができます

関連する問題