#cloud-config
hostname: 
fqdn: snapshot-ipv4-dhcp-el7
manage_etc_hosts: true
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: $1$rtd8Ub7R$5Ohzuy8WXlkaK9cA2T1wb0

package_upgrade: true

runcmd:
- |
  rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

- |
  
  # Select package manager for the OS (sets the $PKG_MANAGER* variables)
  if [ -z "$PKG_MANAGER" ]; then
    if [ -f /etc/os-release ] ; then
      . /etc/os-release
    fi
    
    if [ "${NAME%.*}" = 'FreeBSD' ]; then
      PKG_MANAGER='pkg'
      PKG_MANAGER_INSTALL="${PKG_MANAGER} install -y"
      PKG_MANAGER_REMOVE="${PKG_MANAGER} delete -y"
      PKG_MANAGER_UPGRADE="${PKG_MANAGER} install -y"
    elif [ -f /etc/fedora-release -o -f /etc/redhat-release -o -f /etc/amazon-linux-release -o -f /etc/system-release ]; then
      PKG_MANAGER='dnf'
      if [ -f /etc/redhat-release -a "${VERSION_ID%.*}" -le 7 ]; then
        PKG_MANAGER='yum'
      elif [ -f /etc/system-release ]; then
        PKG_MANAGER='yum'
      fi
      PKG_MANAGER_INSTALL="${PKG_MANAGER} install -y"
      PKG_MANAGER_REMOVE="${PKG_MANAGER} remove -y"
      PKG_MANAGER_UPGRADE="${PKG_MANAGER} upgrade -y"
    elif [ -f /etc/debian_version ]; then
      PKG_MANAGER='apt-get'
      PKG_MANAGER_INSTALL="${PKG_MANAGER} -o 'Dpkg::Options::=--force-confdef' -o 'Dpkg::Options::=--force-confold' install -y"
      PKG_MANAGER_REMOVE="${PKG_MANAGER} remove -y"
      PKG_MANAGER_UPGRADE="${PKG_MANAGER} -o 'Dpkg::Options::=--force-confdef' -o 'Dpkg::Options::=--force-confold' -o APT::Get::Upgrade-Allow-New='true' upgrade -y"
    elif [ -f /etc/arch-release ]; then
      PKG_MANAGER='pacman'
      PKG_MANAGER_INSTALL="${PKG_MANAGER} --noconfirm -S"
      PKG_MANAGER_REMOVE="${PKG_MANAGER} --noconfirm -R"
      PKG_MANAGER_UPGRADE="${PKG_MANAGER} --noconfirm -S"
    elif [ x$ID = xopensuse-tumbleweed -o x$ID = xsles ]; then
      PKG_MANAGER='zypper'
      PKG_MANAGER_INSTALL="${PKG_MANAGER} --non-interactive install --auto-agree-with-licenses"
      PKG_MANAGER_REMOVE="${PKG_MANAGER} --non-interactive remove"
      PKG_MANAGER_UPGRADE="${PKG_MANAGER} --non-interactive update"
    fi
  fi
  

- |

- |
  if [ -f /usr/bin/dnf ]; then
    dnf -y install puppet
  else
    yum -t -y install puppet
  fi
  
  cat > /etc/puppet/puppet.conf << EOF
  [main]
  vardir = /var/lib/puppet
  logdir = /var/log/puppet
  rundir = /var/run/puppet
  ssldir = \$vardir/ssl
  
  [agent]
  pluginsync      = true
  report          = true
  certname        = snapshot-ipv4-dhcp-el7
  
  EOF
  
  
  puppet_unit=puppet
  /usr/bin/systemctl list-unit-files | grep -q puppetagent && puppet_unit=puppetagent
  /usr/bin/systemctl enable ${puppet_unit}
  
  # export a custom fact called 'is_installer' to allow detection of the installer environment in Puppet modules
  export FACTER_is_installer=true
  # passing a non-existent tag like "no_such_tag" to the puppet agent only initializes the node
  # You can select specific tag(s) with the "run-puppet-in-installer-tags" parameter
  # or set a full puppet run by setting "run-puppet-in-installer" = true
  echo "Performing initial puppet run for --tags no_such_tag"
  /usr/bin/puppet agent --config /etc/puppet/puppet.conf --onetime --tags no_such_tag  --no-daemonize


phone_home:
  url: http://foreman.example.com/unattended/built
  post: []
  tries: 10

