| # All the data below will be stored as a string object
  #cloud-config, see http://cloudinit.readthedocs.io/en/latest/topics/examples.html

  ssh_pwauth: True
  users:
   - name: root
     sudo: ALL=(ALL) NOPASSWD:ALL
     shell: /bin/bash
     ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGwjUlYn9UsmWmAGSuEA2sICad7WqxgsJR0HKcMbbxi0tn96h4Cq2iGYmzlJ48egLm5R5pxyWnFvL4b/2zb+kKTPCMwRc9nv7xEGosEFNQEoSDd+gYu2CO0dgS2bX/7m2DXmzvhqPjxWQUXXsb0OYAS1r9Es65FE8y4rLaegz8V35xfH45bTCA0W8VSKh264XtGz12hacqsttE/UvyjJTZe+/XV+xJy3WAWxe8J/MuW1VqbqNewTmpTE/LJU8i6pG4msU6+wH99UvsGAOKQOduynUHKWG3VZg5YCjpbbV/t/pfW/vHB3b3jiifQmNhulyiG/CNnSQ5BahtV/7qPsYt vagrant@cfg01

  disable_root: false
  chpasswd:
   list: |
    root:r00tme
   expire: False

  bootcmd:
   # Block access to SSH while node is preparing
   - cloud-init-per once sudo iptables -A INPUT -p tcp --dport 22 -j DROP
   # Enable root access
   - sed -i'.orig' -e's/without-password/yes/' /etc/ssh/sshd_config
   - service sshd restart
  output:
    all: '| tee -a /var/log/cloud-init-output.log /dev/tty0'

  runcmd:
   # Configure dhclient
   - sudo echo "nameserver {gateway}" >> /etc/resolvconf/resolv.conf.d/base
   - sudo resolvconf -u

   # Prepare network connection
   - sudo ifup eth0
   #- sudo route add default gw {gateway} {interface_name}
   - sudo ifup eth1

   # Create swap
   - fallocate -l 4G /swapfile
   - chmod 600 /swapfile
   - mkswap /swapfile
   - swapon /swapfile
   - echo "/swapfile   none    swap    defaults    0   0" >> /etc/fstab

   ############## TCP Cloud cfg01 node ##################
   #- sleep 120
   - echo "Preparing base OS"
   - which wget >/dev/null || (apt-get update; apt-get install -y wget)

   - echo "deb [arch=amd64] http://apt.tcpcloud.eu/nightly/ trusty main security extra tcp tcp-salt" > /etc/apt/sources.list
   - wget -O - http://apt.tcpcloud.eu/public.gpg | apt-key add -
   # saltstack repo is for minions that have the same version in the xenial and trusty (2016.3.3)
   - echo "deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest trusty main" > /etc/apt/sources.list.d/saltstack.list
   - wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add -

   - apt-get clean
   - apt-get update
   - apt-get -y upgrade

   # Install common packages
   - apt-get install -y python-pip git
   - apt-get install -y curl tmux byobu iputils-ping traceroute htop tree

   - apt-get install -y salt-minion

   # To be configured from inventory/fuel-devops by operator or autotests
   - 'echo "id: {hostname}" >> /etc/salt/minion'
   - 'echo "master: 172.16.10.100" >> /etc/salt/minion'

   - echo "Restarting minion service with workarounds..."
   - rm -f /etc/salt/pki/minion/minion_master.pub
   - service salt-minion restart
   - sleep 5
   - rm -f /etc/salt/pki/minion/minion_master.pub
   - service salt-minion restart

   #- echo "Showing node metadata..."
   #- salt-call pillar.data

   #- echo "Running complete state ..."
   #- salt-call state.sls linux,openssh,salt

   # Workaround for bug https://mirantis.jira.com/browse/PROD-8214
   - apt-get -y install --install-recommends linux-generic-lts-xenial
   - reboot

   ########################################################
   # Node is ready, allow SSH access
   ## - echo "Allow SSH access ..."
   ## - sudo iptables -D INPUT -p tcp --dport 22 -j DROP
   ########################################################

  write_files:
   - path: /etc/network/interfaces
     content: |
          auto eth0
          iface eth0 inet dhcp
          auto eth1
          iface eth1 inet dhcp
