「apache」という役割があるとします
ここで、Ansible ホストのコマンドラインからホスト 192.168.0.10 でそのロールを実行したいと考えています。
ansible-playbook -i "192.168.0.10" --role "path to role"
それを行う方法はありますか?
「apache」という役割があるとします
ここで、Ansible ホストのコマンドラインからホスト 192.168.0.10 でそのロールを実行したいと考えています。
ansible-playbook -i "192.168.0.10" --role "path to role"
それを行う方法はありますか?
この機能については知りませんが、タグを使用して Playbook から 1 つのロールを実行することができます。
roles:
- {role: 'mysql', tags: 'mysql'}
- {role: 'apache', tags: 'apache'}
ansible-playbook webserver.yml --tags "apache"
Ansible にはそのようなものはありませんが、これが頻繁に使用される場合は、このスクリプトを試してください。
name の下の検索可能な PATH 内のどこかに配置します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 "$@" /dev/stdin <<END
---
- hosts: $HOST_PATTERN
roles:
- $ROLE
END