How specify a list value as variable in ansible inventory file?

后端 未结 5 1191
栀梦
栀梦 2020-12-13 06:34

I need something like (ansible inventory file):

[example]
127.0.0.1 timezone=\"Europe/Amsterdam\" locales=\"en_US\",\"nl_NL\"

However, ansi

5条回答
  •  南笙
    南笙 (楼主)
    2020-12-13 07:00

    Ryler's answer is good in this specific case but I ran into problems using other variations with the template module.

    [example]
    127.0.0.1 timezone="Europe/Amsterdam" locales='["en_US", "nl_NL"]'
    

    Is his original example and works fine.

    The following variations work with template. Basically if it's a string you must remember to use the internal double quotes or the entire structure is parsed as a single string. If it's only numbers or "True" or "False" (not "yes") then you're fine. In this variation I couldn't make it work with template if it had external quotes.

    I haven't done an exhaustive check of which internal use cases they do and do not break other than the template module.

    I am using Ansible 2.2.1.

    [example:vars]
    # these work
    myvar1=["foo", "bar"]
    myvar2=[1,2]
    myvar3=[True,False]
    
    # These fail, they get interpreted as a single string.
    myvar4=[yes, no]
    myvar5=[foo,bar]
    myvar6='["foo", "bar"]'
    

提交回复
热议问题