首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ansible:我可以从命令行执行角色吗?

Ansible:我可以从命令行执行角色吗?
EN

Stack Overflow用户
提问于 2016-07-13 19:38:07
回答 7查看 109.1K关注 0票数 111

假设我有一个名为"apache“的角色

现在,我想从Ansible host的命令行在主机192.168.0.10上执行该角色

代码语言:javascript
复制
ansible-playbook -i  "192.168.0.10" --role  "path to role"

有没有办法做到这一点?

EN

回答 7

Stack Overflow用户

发布于 2016-07-15 05:03:06

我不知道这个特性,但是你可以使用标签来运行你的剧本中的一个角色。

代码语言:javascript
复制
roles:
    - {role: 'mysql', tags: 'mysql'}
    - {role: 'apache', tags: 'apache'}

ansible-playbook webserver.yml --tags "apache"
票数 91
EN

Stack Overflow用户

发布于 2018-10-19 16:09:36

使用ansible 2.7你可以做到这一点:

代码语言:javascript
复制
$ cd /path/to/ansible/
$ ansible localhost -m include_role -a name=<role_name>
localhost | SUCCESS => {
    "changed": false,
    "include_variables": {
        "name": "<role_name>"
    }
}
localhost | SUCCESS => {
    "msg": "<role_name>"
}

这会将角色从/ path /运行到/ansible/roles或已配置的角色路径。

点击此处阅读更多信息:https://github.com/ansible/ansible/pull/43131

票数 91
EN

Stack Overflow用户

发布于 2016-07-17 16:49:33

Ansible中没有这样的东西,但如果这是您经常使用的用例,请尝试此脚本。

将其放在名称ansible-role下的可搜索路径中的某个位置

代码语言:javascript
复制
#!/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
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38350674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档