In order to be able to assign the template to the OS, you need first
go to the template's associations tab, and add the OS there.
Then it should make it possible to set that in the OS.

I'm not sure why the default user_data template is not cloud-init, but
I deffer the question to someone else.

The last thing I would like to ask others on this list is some proved
cloud-init template that people are using
for vmware, as I'm not sure generic cloud-init template works there.
Maybe yes, but I'm not the expert on this things.

-- Ivan

On Mon, Sep 11, 2017 at 10:33 PM, Mike Wilson <[email protected]> wrote:
>
>
> On Monday, September 11, 2017 at 3:06:01 PM UTC-5, Ivan Necas wrote:
>>
>> Hi, it seems like you're user-data template is not rendering a proper
>> YAML that `YAML.load()` would parse
>> as a Hash. Could you share the rendered user-data template with us or
>> even better, run `irb` and try:
>>
>
> The one in question is the Kickstart user_data default provided in Foreman
> 1.15.1. It doesn't look like yaml at all to me.
>
> <%#
> kind: user_data
> name: Kickstart default user data
> oses:
> - CentOS
> - Fedora
> -%>
> <%
>   rhel_compatible = @host.operatingsystem.family == 'Redhat' &&
> @host.operatingsystem.name != 'Fedora'
>   # safemode renderer does not support unary negation
>   pm_set = @host.puppetmaster.empty? ? false : true
>   proxy_uri = @host.params['http-proxy'] ?
> "http://#{@host.params['http-proxy']}:#{@host.params['http-proxy-port']}" :
> nil
>   puppet_enabled = pm_set || @host.param_true?('force-puppet')
>   salt_enabled = @host.params['salt_master'] ? true : false
>   chef_enabled = @host.respond_to?(:chef_proxy) && @host.chef_proxy
> -%>
> #!/bin/bash
>
> <%# Cloud instances frequently have incorrect hosts data %>
> <%= snippet 'fix_hosts' %>
>
> <% if @host.provision_method == 'image' && !root_pass.empty? -%>
> # Install the root password
> echo 'root:<%= root_pass -%>' | /usr/sbin/chpasswd -e
> <% end -%>
>
> <% if proxy_uri -%>
> # Yum proxy
> echo 'proxy = <%= proxy_uri %>' >> /etc/yum.conf
> <% end -%>
>
> #update local time
> echo "updating system time"
> yum -y install ntpdate
> /usr/sbin/ntpdate -sub <%= @host.params['ntp-server'] ||
> '0.fedora.pool.ntp.org' %>
> /usr/sbin/hwclock --systohc
>
> <% if rhel_compatible && [email protected]_false?('enable-epel') -%>
> <%= snippet 'epel' -%>
> <% end -%>
>
> <% if @host.info['parameters']['realm'] && @host.realm &&
> @host.realm.realm_type == 'FreeIPA' -%>
> <%= snippet 'freeipa_register' %>
> <% end -%>
>
> <% unless @host.param_false?('package_upgrade') -%>
> # update all the base packages from the updates repository
> if [ -f /usr/bin/dnf ]; then
>   dnf -y update
> else
>   yum -t -y update
> fi
> <% end -%>
>
> <%= snippet('remote_execution_ssh_keys') %>
>
> <% if chef_enabled %>
> <%= snippet 'chef_client' %>
> <% end -%>
>
> <% if puppet_enabled %>
> <% if @host.param_true?('enable-puppetlabs-pc1-repo') ||
> @host.param_true?('enable-puppetlabs-repo') -%>
> <%= snippet 'puppetlabs_repo' %>
> <% end -%>
> <%= snippet 'puppet_setup' %>
> <% end -%>
>
> <% if salt_enabled %>
> <%= snippet 'saltstack_setup' %>
> <% end -%>
>
> # UserData still needs to mark the build as finished
> /usr/bin/curl -o /dev/null -k '<%= foreman_url('built') %>'
>
>
> The one that DOES have yaml look to it is the one that says "this is not a
> user_data template". That is the one provided with Foreman 1.15.1 as
> "UserData default"
>
> <%#
> kind: user_data
> name: UserData default
> oses:
> - CentOS
> - Fedora
> - Debian
> - Ubuntu
> -%>
> <%#
> This template accepts the following parameters:
> - ssh_pwauth: boolean (default=true unless ssh_authorized_keys)
> - ssh_authorized_keys: string w newline seperated keys (default="")
> - package_upgrade: boolean (default=false)
> - reboot: boolean (default=false)
> -%>
> <%
>   ssh_pwauth = @host.params['ssh_pwauth'] ? @host.param_true?('ssh_pwauth')
> : [email protected]['ssh_authorized_keys']
>   rhel_compatible = @host.operatingsystem.family == 'Redhat' &&
> @host.operatingsystem.name != 'Fedora'
>   # safemode renderer does not support unary negation
>   pm_set = @host.puppetmaster.empty? ? false : true
>   puppet_enabled = pm_set || @host.param_true?('force-puppet')
>   salt_enabled = @host.params['salt_master'] ? true : false
>   chef_enabled = @host.respond_to?(:chef_proxy) && @host.chef_proxy
> -%>
> #cloud-config
> hostname: <%= @host.shortname %>
> fqdn: <%= @host %>
> manage_etc_hosts: true
> <% if ssh_pwauth -%>
> <%# Don't enable this in production. It is very insecure! Use
> ssh_authorized_keys instead...
>
> http://cloudinit.readthedocs.io/en/latest/topics/examples.html#including-users-and-groups
> -%>
> ssh_pwauth: true
> groups:
> - admin
> users:
> - default
> - name: admin
>   primary-group: admin
>   groups: users
>   shell: /bin/bash
>   sudo: ['ALL=(ALL) ALL']
>   lock-passwd: false
>   passwd: <%= @host.root_pass %>
> <% end -%>
> <% if @host.params['ssh_authorized_keys'] -%>
> ssh_authorized_keys:
> <% @host.params['ssh_authorized_keys'].split("\n").each do |ssh_key| -%>
> - <%= ssh_key %>
> <% end -%>
> <% end -%>
>
> <% if @host.param_true?('package_upgrade') -%>
> package_upgrade: true
> <% end -%>
>
> runcmd:
> <% if rhel_compatible -%>
> - |
> <%= indent(2) { snippet('epel') } %>
> <% end -%>
> - |
> <%= indent(2) { snippet('remote_execution_ssh_keys') } %>
> <% if chef_enabled -%>
> - |
> <%= indent(2) { snippet('chef_client') } %>
> <% end -%>
> <% if puppet_enabled -%>
> - |
> <%= indent(2) { snippet('puppetlabs_repo') } %>
> - |
> <%= indent(2) { snippet('puppet_setup') } %>
> <% end -%>
> <% if salt_enabled -%>
> - |
> <%= indent(2) { snippet('saltstack_setup') } %>
> <% end -%>
>
> <%# Contact Foreman to confirm instance is built -%>
> phone_home:
>   url: <%= foreman_url('built') %>
>   post: []
>   tries: 10
>
> <% if @host.param_true?('reboot') -%>
> power_state:
>   mode: reboot
>   timeout: 30
>   condition: true
> <% end -%>
>
>
> Does that help? I've only just started working with image builds so still
> trying to pickup what goes where properly so it could be entirely me not
> flipping the right switches.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Foreman users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/foreman-users.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Foreman users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/foreman-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to