私は今、私はAnsibleホストからのコマンドラインからホスト192.168.0.10に不可能:コマンドラインからロールを実行できますか?
ansible-playbook -i "192.168.0.10" --role "path to role"
をその役割を実行したい「アパッチ」
と呼ばれる役割を持っていると仮定はそれを行う方法はありますか?
私は今、私はAnsibleホストからのコマンドラインからホスト192.168.0.10に不可能:コマンドラインからロールを実行できますか?
ansible-playbook -i "192.168.0.10" --role "path to role"
をその役割を実行したい「アパッチ」
と呼ばれる役割を持っていると仮定はそれを行う方法はありますか?
私はこの機能に気づいていませんが、タグを使ってプレイブックから1つの役割を実行できます。
roles:
- {role: 'mysql', tags: 'mysql'}
- {role: 'apache', tags: 'apache'}
ansible-playbook webserver.yml --tags "apache"
があり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
ます。またansible-toolboxリポジトリをチェックすることができます。それはあなたが、私は小さなAnsibleプラグインを書かれている
ansible-role --host 192.168.0.10 --gather --user centos --become my-role
ようなものを使用できるようになり、それが動的に脚本の各役割に同じ名前のタグのために生成し、auto_tags
と呼ばれます。あなたはそれを見つけることができますhere。
ansible-playbook -i "192.168.0.10" --tags "name_of_role"
(命令は上記の主旨である)、それをインストールした後は、その後で特定の役割を実行することができます