我目前正在运行我创建的ansible galaxy项目。我要做的是获取变量的一个属性并将其设置为路径名。我在名为websiteNames
的组变量中创建了一个文件,在该文件中我有一个像这样设置的变量 -
my_websites:
- site_name: website2
site_url: website2.com
- site_name: website1
site_url: website1.com
我调用它的ansible文件设置如下 -
- name: deploy public vhosts /etc/httpd/conf.d
template:
src: ../../websites/files/vhost.conf
dest: "/etc/httpd/conf.d/{{ item.site_name }}-public.conf"
owner: root
group: root
mode: 0644
with_items: my_websites
但是,当我尝试运行实际的剧本时,我收到以下错误 - FAILED! => {"failed": true, "msg": "'unicode object' has no attribute 'site_name'"}
如果它有用,这里是我调用变量的模板文件的一部分 -
<VirtualHost *:80>
DocumentRoot /var/www/html/{{ site_name }}/stuff
ServerName {{ site_name }}
我是否需要在某个时候拨打小组车websiteNames
文件?似乎没有意识到group_var已被添加。
感谢。
答案 0 :(得分:0)
原来我遇到的问题是我在主机文件中调用的组名为“myServers”,但group_var的名称是my_servers。我没有意识到组var必须与原始主变量具有相同的名称。