openstack ansible中变量和角色的使用
我是Ansible的新手,最近我开始研究用Ansible部署Openstack 以下是openstack ansible的git: 在本教程中: 有一个命令运行playbook:openstack ansible中变量和角色的使用,ansible,openstack,Ansible,Openstack,我是Ansible的新手,最近我开始研究用Ansible部署Openstack 以下是openstack ansible的git: 在本教程中: 有一个命令运行playbook: openstack-ansible setup-hosts.yml 我读过这本剧本,它包括第16行的另一本剧本: include: openstack-hosts-setup.yml 然后我阅读了附带的openstack hosts setup.yml,下面是其中的一段代码: - name: Basic hos
openstack-ansible setup-hosts.yml
我读过这本剧本,它包括第16行的另一本剧本:
include: openstack-hosts-setup.yml
然后我阅读了附带的openstack hosts setup.yml,下面是其中的一段代码:
- name: Basic host setup
hosts: "{{ openstack_host_group|default('hosts') }}"
gather_facts: "{{ gather_facts | default(True) }}"
max_fail_percentage: 20
user: root
pre_tasks:
- name: Check for a supported Operating System
assert:
that:
- (ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'xenial') or
(ansible_os_family == 'RedHat' and ansible_distribution_major_version == '7')
msg: "The only supported platforms for this release are Ubuntu 16.04 LTS (Xenial) and CentOS 7 (WIP)"
roles:
- role: "openstack_hosts"
tags:
- openstack-hosts
我对这里的角色感到困惑
roles:
- role: "openstack_hosts"
据我所知,在使用以下角色时应该有目录结构:
roles/
openstack_hosts/
files/
templates/
tasks/
handlers/
vars/
defaults/
meta/
然而,我在这个openstack ansible项目中找不到这种结构。
所以我不知道这个剧本中的角色(openstack_主机)在哪里
运行此playbook时,意外发生错误:
错误!在/opt/openstack ansible/playbooks/roles:/root/ansible/roles:/opt/openstack ansible/playbooks中找不到角色“openstack\u hosts”
另外,我想知道变量的来源:
hosts: "{{ openstack_host_group|default('hosts') }}"
我认为变量将从目录vars或defaults中找到
在角色目录下。
由于没有这样的目录,我不知道这个变量来自哪里
请告诉我在哪里可以找到变量openstack\u host\u group
并解释如何在这里使用该角色?
或者我错过了什么,或者我对Ansible的一些概念有误
谢谢
顺便说一下,这是我第一次问这个问题。
如果问题不够清楚或不恰当,请告诉我:)。再次感谢。我猜您没有从中完成引导ansible.sh。因此,您没有安装所需的角色
至于
openstack\u host\u group
,它似乎是可选的变量,因此如果您需要额外的变量(如-e openstack\u host\u group=my\u other\u group
),您可以覆盖默认的主机模式(即hosts
)。谢谢!我找到了原因。由于某些原因,ansible.sh
引导程序终止,并且没有执行ansible galaxy
。我手动执行了ansible galaxy安装--role file=ansible-role-requirements.yml--force
,并且成功安装了所需的角色。因为我不熟悉ansible galaxy,为了弄清楚它是如何工作的,我访问了https://git.openstack.org/openstack/openstack-ansible-openstack_hosts
它来自浏览器的配置文件ansible-role-requirements.yml,只是想知道git repo中的内容。然而,我得到了404错误。如果URL不可用,您能告诉我如何成功安装角色吗?很抱歉,有这么多问题。非常感谢您的帮助~非常感谢。Git客户端的工作原理与您的浏览器不同,您可以使用curl-a“Git/2.0.0”测试Git urlhttps://git.openstack.org/openstack/openstack-ansible-openstack_hosts/info/refs
或通过浏览器中的访问。