Ansible cloud openstack os_server module userdata param : how to use it ?

Hi,

I try to make an intance using os_server module and a cloud-config file using the userdata parameter.

  • name: Deploy a CentOS-7 instance
    os_server:
    cloud: myCloud
    state: present
    name: “{{ inventory_hostname }}”
    key_name: ansible
    image: ‘CentOS-7’
    timeout: 300
    flavor: ‘m1.medium’
    auto_ip: no
    security_groups: ‘std’
    meta:
    hostname: “{{ inventory_hostname }}”
    userdata: |
    #cloud-config
    bootcmd:
  • [ cloud-init-per, once, ‘bootcmd-disable-repos’, ‘bash’, ‘-c’ 'yum-config-manager --disable $( sed -e “/^[/!d ; s/^[([^]])].$/\1/g” /etc/yum.repos.d/*.repo ) ’ ]
    yum_repos:
    Custom-Repos-BASE:
    name: Custom Repos - CentOS-$releasever - BASE
    baseurl: http://my.repos.lan/centos/$releasever/os/$basearch/
    gpgcheck: true
    gpgkey: http://my.repos.lan/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
    enabled: true

but on the server :

[centos@test-t ~]$ sudo cat /var/lib/cloud/instances/i-0000f7b6/cloud-config.txt
#cloud-config

— {}

[centos@test-t ~]$[centos@test-t ~]$ ls -la /etc/yum*
-rw-r–r–. 1 root root 970 3 déc. 2015 /etc/yum.conf

/etc/yum:
total 28
drwxr-xr-x. 6 root root 4096 5 sept. 11:55 .
drwxr-xr-x. 78 root root 8192 9 févr. 10:03 …
drwxr-xr-x. 2 root root 6 3 déc. 2015 fssnap.d
drwxr-xr-x. 2 root root 52 5 sept. 11:59 pluginconf.d
drwxr-xr-x. 2 root root 25 5 sept. 11:55 protected.d
drwxr-xr-x. 2 root root 18 3 déc. 2015 vars
-rw-r–r–. 1 root root 444 3 déc. 2015 version-groups.conf
-rw-r–r–. 1 root root 2534 3 déc. 2015 yum-cron.conf
-rw-r–r–. 1 root root 2496 3 déc. 2015 yum-cron-hourly.conf

/etc/yum.repos.d:
total 44
drwxr-xr-x. 2 root root 4096 3 déc. 2015 .
drwxr-xr-x. 78 root root 8192 9 févr. 10:03 …
-rw-r–r–. 1 root root 1664 9 déc. 2015 CentOS-Base.repo
-rw-r–r–. 1 root root 1309 9 déc. 2015 CentOS-CR.repo
-rw-r–r–. 1 root root 649 9 déc. 2015 CentOS-Debuginfo.repo
-rw-r–r–. 1 root root 290 9 déc. 2015 CentOS-fasttrack.repo
-rw-r–r–. 1 root root 630 9 déc. 2015 CentOS-Media.repo
-rw-r–r–. 1 root root 1331 9 déc. 2015 CentOS-Sources.repo
-rw-r–r–. 1 root root 1952 9 déc. 2015 CentOS-Vault.repo

Maybe I’m wrong, but the cloud-config file should not be empty and my added repos should be in the list.

I need to use a sort of template file as userdata parameter. In this parameter I need to use the inventory_hostname variable (among others).

Any help please ?

Thanks