diff --git a/files/tasks/7.task/kickstart.erb b/files/tasks/7.task/kickstart.erb index 5204e6a03131e796b4a6eccd6a545f99ca29f960..923accaf93b7bc2b9437b7ff43db0f93c1d73a54 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 0000000000000000000000000000000000000000..030db8402bc1f91d51706ba48acd992d3f59dc26 --- /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 0000000000000000000000000000000000000000..d7c59025eadc89728e64fb2cbecdcb743b9c5d13 --- /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 0000000000000000000000000000000000000000..994f916c1c82e6054284a3001bfa135784611fae --- /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 +