#!/bin/bash

check_hostname() {
  FQDN=$(hostname -f)
  HOSTNAME=$(hostname -s)
  DOMAINNAME=$(hostname -d)
  if [[ $HOSTNAME =~ ^[a-z0-9\-]*$ ]] && [[ $DOMAINNAME =~ ^[0-9a-z\.\-]*[\.][0-9a-z\-]*[0-9a-z]$ ]]; then
    echo "Имя компьютера $FQDN содержит доменный суффикс, продолжаем установку"
  else
    echo "Имя компьютера $FQDN не содержит доменный суффикс, установка невозможна, для повторной установки запустите dd-manifests-install"
  fi
}


dd_install_puppet() {
  if [ ! -z "${DOMAINNAME}" ]; then
    find /etc/puppet -type f -exec sed -i "s/__domainname__/${DOMAINNAME}/g;s/__servername__/${HOSTNAME}/g" {} \;
    sed -i "s/changeme/${HOSTNAME}.${DOMAINNAME}/g" /etc/puppet/code/environments/production/manifests/site.pp
    if grep -i --quiet autosign /etc/puppet/puppet.conf; then
      echo "Автоподписание уже включено"
    else
      echo "autosign = /etc/puppet/autosign.conf { mode = 0664 }" >> /etc/puppet/puppet.conf
      echo "Автоподписание включено"
    fi
    systemctl start puppet.service puppetserver.service
    systemctl enable puppet.service puppetserver.service
  else
    echo "Ошибка! Похоже, Ваш сервер не входит в домен"
  fi
}

check_hostname
dd_install_puppet
