Про DevOps, Puppet Enterprise, Windows, IIS и MSSQL

Цель: Настроить сервер Puppet Enterprise для автоматического развертывания стендов по шаблону!

Стандартный шаблон включает в себя сервер IIS + MSSQL

Для начала нам нужен сервер Linux, мы используем CentOS.

подготавливаем его для установки Puppet

yum update -y
yum install ntp -y

yum install nscd

systemctl enable nscd

service firewalld stop

Скачиваем Дистрибутив Puppet Enterprise с официально сайта в виде архива. В моем случае это puppet-enterprise-2016.5.1-el-7-x86_64.tar.gz
ставим его:

tar -xvf puppet-enterprise-2016.5.1-el-7-x86_64.tar.gz

cd puppet-enterprise-2016.5.1-el-7-x86_64

./puppet-enterprise-installer

 

В моем случае установить его с веба не удалось, я ставил с консоли указав этот режим при старте.

 

После установки создаем модуль IIS

cd /etc/puppetlabs/code/environments/production/modules/

mkdir -p iis/manifests/

nano iis/manifests/init.pp

Добавляем в файл манифеста текст:

class iis{

include iis_rewrite
include web_deploy

$iis_features = [‘Web-Server’,’Web-WebServer’,’Web-Asp-Net45′,’Web-ISAPI-Ext’,’Web-ISAPI-Filter’,’NET-Framework-45-ASPNET’,’WAS-NET-Environment’,’Web-Http-Redirect’,’Web-Filtering’,’Web-Mgmt-Console’,’Web-Mgmt-Tools’,’Web-Windows-Auth’]
windowsfeature { $iis_features:
ensure => present,
}
exec { ‘check-feature-delegation’:
command => ‘Set-WebConfiguration //System.WebServer/Security/Authentication/windowsAuthentication -metadata overrideMode -value Allow -PSPath IIS:/’,
onlyif => ‘if ((get-WebConfiguration //System.WebServer/Security/Authentication/windowsAuthentication).overridemode -ne \’Allow\’) { exit 0 }’,
provider => powershell,
}
}

Проверяем на корректность

puppet parser validate iis/manifests/init.pp

И устанавливаем:
puppet apply iis/manifests/init.pp

Теперь у нас появился новый класс. Он должен появиться в вебконсоли. Добавляя класс в соответствующую группу машин IIS установится на все машины группы.

Ставим MSSQL Для этого используем пакет jriviere-windows_sql

puppet module install jriviere-windows_sql

В манифесте init.pp прописываем нужные параметры.

У нас не удалось установить скуль с первого раза. Странно он парсит параметры, добавляет символы. Пришлось допиливать модуль напильником.

Для установки под локальными учеткам в файле  windows_sql/templates/config.erb везде меняем строки:

«<%= `powershell write-host $env:userdomain -nonewline` %>\<%= @sqlsysadminaccounts %>»

на

«<%= @sqlsysadminaccounts %>»

После этого скуль у нас успешно встал на сервер.

Добавляя класс windows_sql в соответствующую группу машин скуль установится на все машины группы.

0

Добавить комментарий

Ваш e-mail не будет опубликован.