From 660b5a15f3fd2349aaccf15f49f54b3048b1ca0a Mon Sep 17 00:00:00 2001 From: Andrei <andy@cesnet.cz> Date: Thu, 4 Apr 2019 11:05:38 +0200 Subject: [PATCH] actual state. Puppet files in puppet_files catalog --- files/tasks/7.task/kickstart.erb | 3 +- puppet_files/common.yaml | 15 +++ puppet_files/site.pp | 158 +++++++++++++++++++++++++++++++ templates/puppetlabs.repo.erb | 15 +++ 4 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 puppet_files/common.yaml create mode 100644 puppet_files/site.pp create mode 100644 templates/puppetlabs.repo.erb diff --git a/files/tasks/7.task/kickstart.erb b/files/tasks/7.task/kickstart.erb index 5204e6a..923acca 100644 --- a/files/tasks/7.task/kickstart.erb +++ b/files/tasks/7.task/kickstart.erb @@ -28,6 +28,7 @@ bootloader --location=mbr --append="nofb quiet splash=quiet" # here so unless you clear all partitions first, this is # not guaranteed to work +<%= node.metadata['part'] %> zerombr clearpart --all @@ -84,7 +85,7 @@ USERCTL="no" PEERDNS="no" PEERNTP="no" IPADDR="<%= node.metadata['ip_address'] || '127.0.0.1' %>" -NETMASK="<%= node.metadata['net_mask'] || '255.255.255.255' %>" +NETMASK="<%= node.metadata['netmask'] || '255.255.255.255' %>" GATEWAY="<%= node.metadata['gateway'] || '127.0.0.1' %>" EOF diff --git a/puppet_files/common.yaml b/puppet_files/common.yaml new file mode 100644 index 0000000..030db84 --- /dev/null +++ b/puppet_files/common.yaml @@ -0,0 +1,15 @@ +--- +java::version: latest + +provisioning_host::ip_address: '192.168.10.103' +provisioning_host::netmask: '255.255.255.0' +provisioning_host::gateway: '192.168.10.1' +provisioning_host::mac_address: '52:54:00:89:82:1a' +provisioning_host::common::first_part: &part_1 | + zerombr + clearpart --all + autopart --type=plain --fstype=ext3 + +provisioning_host::mac_address2: '55:55:00:55:55:55' +provisioning_host::part: *part_1 + diff --git a/puppet_files/site.pp b/puppet_files/site.pp new file mode 100644 index 0000000..d7c5902 --- /dev/null +++ b/puppet_files/site.pp @@ -0,0 +1,158 @@ +# @param tmp_var tmp param +# @param ip_address tmp param +# @param netmask tmp param +# @param gateway tmp param +# @param mac_address tmp param + +class provisioning_host( + + Stdlib::IP::Address::V4::Nosubnet $ip_address = '127.0.0.1', + Stdlib::IP::Address::V4 $netmask = '255.255.255.255', + Stdlib::IP::Address::V4::Nosubnet $gateway = '127.0.0.1', + Stdlib::MAC $mac_address = '00:00:00:00:00:00', + Stdlib::HTTPUrl $puppet_repo = 'https://yum.puppetlabs.com/puppet5/puppet5-release-el-7.noarch.rpm', + String[1] $part, + +) { +# install packages +package { 'ruby': ensure => 'installed' } +package { 'ruby-devel': ensure => 'installed' } + +exec { 'yum Group Install': + unless => '/usr/bin/yum grouplist "Development tools" | /bin/grep "^Installed Groups"', + command => '/usr/bin/yum -y groupinstall "Development tools"', +} + +### configure DHCP +class { 'dhcp': + service_ensure => running, + nameservers => ['192.168.10.1'], + ntpservers => ['us.pool.ntp.org'], + interfaces => ['eth0'], + pxefilename => 'pxelinux.0', + pxeserver => '192.168.10.102', + ipxe_filename => 'undionly.kpxe', + ipxe_bootstrap => 'bootstrap.ipxe', +} + +dhcp::host { 'test': + comment => 'Optional descriptive comment', + mac => '52:54:00:89:82:1A', + ip => '192.168.10.103', +} + +dhcp::pool{ 'test.local': + network => '192.168.10.0', + mask => '255.255.255.0', + gateway => '192.168.10.1', +} + + + +### configure Postgres + + class { '::postgresql::server': } + +# postgresql::server::role { 'razoruser': +# password_hash => postgresql_password('razoruser', '12345'), +# } + +# postgresql::server::db { 'razor_prd': +# owner => 'razoruser', +# user => 'razoruser', +# password => postgresql_password('razoruser', '12345'), +# } + + postgresql::server::config_entry { 'listen_addresses': + value => '*', + } + + postgresql::server::pg_hba_rule { 'allow application network to access app database': + description => 'Open up PostgreSQL for access from 192.168.10.0/24', + type => 'host', + database => 'all', + user => 'all', + address => '0.0.0.0/0', +# address => '192.168.10.0/24', + auth_method => 'trust', + } +# +# postgresql::server::pg_hba_rule { 'allow application network to access app database': +# description => 'Open up PostgreSQL for access from localhost', +# type => 'host', +# database => 'all', +# user => 'all', +# address => '127.0.0.1/32', +# auth_method => 'trust', +# } + + file { '/etc/yum.repos.d/puppet5.repo': + content => template('razor/puppetlabs.repo.erb') + } + +### Razor + +# Razor Configuration - Precompiled Microkernel + class { 'razor': + database_hostname => '127.0.0.1', + database_name => 'razor_prd', + database_username => 'razoruser', + database_password => '12345', + compile_microkernel => false, + microkernel_url => 'http://links.puppetlabs.com/razor-microkernel-latest.tar', + } + +razor_broker { 'puppet': + require => Class['razor'], + ensure => 'present', + broker_type => 'puppet', + configuration => { + 'server' => '192.168.10.101', + 'environment' => 'production' + }, +} + + class{ 'razor::api': } + +razor_policy { 'install_centos_on_hypervisor': +require => Class['razor'], + repo => 'centos7', + task => 'centos/7', + broker => 'puppet', + hostname => 'test.test', + root_password => '$6$lg.wOYebTcDaGR6K$gKDUDS1NEwiup2Xm91F35VQuMtKmaV//iec/qL3qC.oXHMHFXNvqfZkEVcVFYs46NSHT5pEBGLBzgUDUl9hq50', + max_count => 20, +# before_policy => 'policy0', + node_metadata => { + "ip_address" => $ip_address, + "netmask" => $netmask, + "gateway" => $gateway, + "mac_address" => $mac_address, + "part" => $part, + }, + tags => 'node01', + enabled => 'true', + ensure => 'present', +} + + +#create repo +razor_repo { 'centos7': +require => Class['razor'], + ensure => 'present', + iso_url => 'http://ftp.fi.muni.cz/pub/linux/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso', + task => 'centos/7', +} + +#Create tag +razor_tag { 'node01': +require => Class['razor'], + ensure => 'present', + rule => ['in', ['fact', 'macaddress'], $mac_address] +} + +###Class Dependencies/Sequence + Class['postgresql::server'] -> Class['razor'] + +} +class{ 'provisioning_host': } diff --git a/templates/puppetlabs.repo.erb b/templates/puppetlabs.repo.erb new file mode 100644 index 0000000..994f916 --- /dev/null +++ b/templates/puppetlabs.repo.erb @@ -0,0 +1,15 @@ +[puppet5] +name=Puppet 5 Repository el 7 - $basearch +baseurl=http://yum.puppetlabs.com/puppet5/el/7/$basearch +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppet5-release +enabled=1 +gpgcheck=1 + +[puppet5-source] +name=Puppet 5 Repository el 7 - Source +baseurl=http://yum.puppetlabs.com/puppet5-nightly/el/7/SRPMS +gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppet5-release +failovermethod=priority +enabled=0 +gpgcheck=1 + -- GitLab