运行ansible脚本时出错 - “Unicode对象没有属性”site_name“

时间:2016-08-15 18:52:28

标签: ansible ansible-playbook

我目前正在运行我创建的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已被添加。

感谢。

1 个答案:

答案 0 :(得分:0)

原来我遇到的问题是我在主机文件中调用的组名为“myServers”,但group_var的名称是my_servers。我没有意识到组var必须与原始主变量具有相同的名称。