运行 ansible 脚本出现错误 - "Unicode object has no attribute "site_name”
Getting an error when running ansible script - "Unicode object has no attribute "site_name"
我目前正在 运行创建一个我创建的 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。
谢谢。
原来我遇到的问题是我在主机文件中调用的组名为 "myServers",但 group_var 的名称是 my_servers。我没有意识到组变量必须与原始主机变量同名。
我目前正在 运行创建一个我创建的 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。
谢谢。
原来我遇到的问题是我在主机文件中调用的组名为 "myServers",但 group_var 的名称是 my_servers。我没有意识到组变量必须与原始主机变量同名。