From 4a6867d2f2ea81ca1ef1ebf34d5a709ab4138c32 Mon Sep 17 00:00:00 2001 From: Nikolaev Mike Date: Wed, 19 Apr 2017 08:39:04 +0300 Subject: [PATCH 1/4] done --- Vagrantfile | 25 ++++++ agent.sh | 9 +++ autosign.conf | 1 + .../jboss/files/jboss-as-7.1.1/Jboss_files | 1 + modules/jboss/manifests/init.pp | 79 +++++++++++++++++++ modules/jboss/templates/jboss-init.sh.erb | 54 +++++++++++++ server.sh | 49 ++++++++++++ site.pp | 4 + 8 files changed, 222 insertions(+) create mode 100644 Vagrantfile create mode 100644 agent.sh create mode 100644 autosign.conf create mode 100644 modules/jboss/files/jboss-as-7.1.1/Jboss_files create mode 100644 modules/jboss/manifests/init.pp create mode 100644 modules/jboss/templates/jboss-init.sh.erb create mode 100644 server.sh create mode 100644 site.pp diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..dd05c1a --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,25 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.box = "centos/7" + config.vm.define "puppetserver" do |server| + server.vm.hostname = "server.m" + server.vm.network "private_network", ip: "192.0.0.100" + server.vm.provider 'virtualbox' do |vb| + vb.customize ["modifyvm", :id, "--memory", "4096"] + vb.customize ["modifyvm", :id, "--cpus", "2"] + end + server.vm.provision :shell, path: "server.sh" + end + + config.vm.define "agent" do |agent| + agent.vm.hostname = "client1.m" + agent.vm.network "private_network", ip: "192.0.0.105" + agent.vm.provider 'virtualbox' do |vb| + vb.customize ["modifyvm", :id, "--memory", "1512"] + vb.customize ["modifyvm", :id, "--cpus", "1"] + end + agent.vm.provision :shell, path: "agent.sh" + end +end diff --git a/agent.sh b/agent.sh new file mode 100644 index 0000000..028e821 --- /dev/null +++ b/agent.sh @@ -0,0 +1,9 @@ + nmcli connection reload + systemctl restart network.service + grep server.m /etc/hosts + [ $? -ne 0 ] && echo "192.0.0.100 server.m" >> /etc/hosts + yum install -y https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm + yum install -y puppet-agent + /bin/cp /vagrant/client_puppet.conf /etc/puppetlabs/puppet/puppet.conf + source ~/.bashrc + puppet agent --test \ No newline at end of file diff --git a/autosign.conf b/autosign.conf new file mode 100644 index 0000000..e7399ab --- /dev/null +++ b/autosign.conf @@ -0,0 +1 @@ +*.minsk.epam.com diff --git a/modules/jboss/files/jboss-as-7.1.1/Jboss_files b/modules/jboss/files/jboss-as-7.1.1/Jboss_files new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/modules/jboss/files/jboss-as-7.1.1/Jboss_files @@ -0,0 +1 @@ + diff --git a/modules/jboss/manifests/init.pp b/modules/jboss/manifests/init.pp new file mode 100644 index 0000000..a3dd561 --- /dev/null +++ b/modules/jboss/manifests/init.pp @@ -0,0 +1,79 @@ +class jboss{ + + $wildfly_service = 'wildfly' + $jboss_home = '/opt/wildfly-10.1.0.Final/' + $java_version = '1.8.0' + + + package { 'java': + name => "java-$java_version-openjdk.x86_64", + ensure => installed, + } + + package { 'unzip': + ensure => installed, + } + + package { 'wget': + ensure => installed, + } + + exec { 'jboss install': + command => "wget http://download.jboss.org/wildfly/10.1.0.Final/wildfly-10.1.0.Final.tar.gz; tar xf wildfly-10.1.0.Final.tar -C /opt/wildfly-10.1.0.Final/ --strip-components=1 ", + path => ['/usr/bin', '/usr/sbin',], + } + + file { $jboss_home: + ensure => directory, + path => $jboss_home, + owner => 'root', + group => 'root', + mode => '0755', + recurse => 'remote', + require => Package['java'] + notify => Exec[jboss install] + } + + file { '/etc/init.d/wildfly': + content => template('jboss/jboss-init.sh.erb'), + owner => root, + group => root, + mode => '0755', + ensure => file, + notify => Service[$wildfly_service] + } + + service { $wildfly_service: + ensure => 'running', + enable => true, + require => Exec['Register_init'] + } + + exec { 'Register_init': + command => "chkconfig --add /etc/init.d/wildfly", + path => ['/usr/bin', '/usr/sbin',], + } + +} + +class deploy{ + + $from = "http://www.cumulogic.com/download/Apps/testweb.zip" + $what = "/opt/wildfly-10.1.0.Final/standalone/deployments/testweb.zip" + $where = "/opt/jboss-as-7.1.1/standalone/deployments/" + + file { $to: + ensure => file, + source => $from, + owner => 'root', + group => 'root', + mode => '0755', + } + + exec {'unzip': + command => "unzip -j ${what} -d ${where}", + path => ['/usr/bin', '/usr/sbin',], + creates => "${where}/testweb.war", + } + +} \ No newline at end of file diff --git a/modules/jboss/templates/jboss-init.sh.erb b/modules/jboss/templates/jboss-init.sh.erb new file mode 100644 index 0000000..761f1ca --- /dev/null +++ b/modules/jboss/templates/jboss-init.sh.erb @@ -0,0 +1,54 @@ +#!/bin/bash +### BEGIN INIT INFO +# Provides: jboss +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start/Stop JBoss +### END INIT INFO +# chkconfig: 35 92 1 + +JBOSS_HOME=<%= @home %> + +mkdir -p $JBOSS_HOME/log +start_jboss="$JBOSS_HOME/bin/standalone.sh" +stop_jboss="$JBOSS_HOME/bin/jboss-cli.sh --connect command=:shutdown" + +start() { +echo -n "Starting JBoss: " +${start_jboss} > $JBOSS_HOME/log/startup.log & +echo "done." +} +stop() { +echo -n "Shutting down JBoss: " +${stop_jboss} > $JBOSS_HOME/log/shutdown.log +echo "done." +} +status() { +JBOSS_PID=$(ps -ef | grep java | grep jboss | awk '{print $2}') +if [ -n "$JBOSS_PID" ]; + then + echo "JBoss is running.. Process PID=$JBOSS_PID" + else + echo "FAILED" +fi +} +case "$1" in +start) +start +;; +stop) +stop +;; +restart) +stop +sleep 10 +start +;; +status) +status +;; +*) +echo "Usage: $0 {start|stop|restart|status}"; exit 1; +;; +esac +exit 0 \ No newline at end of file diff --git a/server.sh b/server.sh new file mode 100644 index 0000000..7919700 --- /dev/null +++ b/server.sh @@ -0,0 +1,49 @@ + ######## after vm provisioning there is possibility that ip address that was specified in vagrant file + ######## won't be there after provisioning is over, restart of network service fixes it + nmcli connection reload + systemctl restart network.service + grep client.m /etc/hosts + [ $? -ne 0 ] && echo "192.0.0.105 client.m" >> /etc/hosts && echo "192.0.0.110 client1.m" >> /etc/hosts + ######## ям инсталл епта + yum install -y https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm + yum install -y http://yum.postgresql.org/9.4/redhat/rhel-7-x86_64/pgdg-redhat94-9.4-2.noarch.rpm + yum install -y puppetserver + systemctl enable puppetserver + ######## copying files from rsync'ed folder to their destination + /bin/cp /vagrant/hosts /etc/ + /bin/cp /vagrant/site.pp /etc/puppetlabs/code/environments/production/manifests + /bin/cp /vagrant/autosign.conf /etc/puppetlabs/puppet/ + /bin/cp /vagrant/server_puppet.conf /etc/puppetlabs/puppet/puppet.conf + ######## create folders for environments and copy manifest + mkdir -p /etc/puppetlabs/code/environments/prod/{manifests,modules} + /bin/cp /vagrant/prod_site.pp /etc/puppetlabs/code/environments/prod/manifests/site.pp + ######## reload puppet + systemctl restart puppetserver + source ~/.bashrc + ######## install postgres + yum install postgresql94-server postgresql94-contrib -y + ######## create initial db and copy configs + /usr/pgsql-9.4/bin/postgresql94-setup initdb + yes | /bin/cp /vagrant/pg_hba.conf /var/lib/pgsql/9.4/data/ + ######## enable and start postgres + systemctl enable postgresql-9.4.service + systemctl start postgresql-9.4.service + ######## change directory because of stupid error when executing as postgres + cd / + ######## create user and db in postgres + sudo -u postgres psql -c "create user puppetdb password 'puppetdb'" + sudo -u postgres psql -c "create database puppetdb owner puppetdb" + ######## installing modules in puppet and specifying production env's for them + puppet module install puppetlabs-puppetdb --version 5.1.2 + puppet module install puppetlabs-mysql --version 3.10.0 --environment prod + puppet module install puppetlabs-apache --version 1.11.0 + puppet module install spotify-puppetexplorer --version 1.1.1 + puppet module install puppet-nginx --version 0.6.0 --environment prod + ######## lauch and test + puppet agent -t + ######## stop iptables and add rule to selinux to passthrough httpd + systemctl stop iptables + puppet cert list --all + setsebool -P httpd_can_network_connect on + ###yeah + \ No newline at end of file diff --git a/site.pp b/site.pp new file mode 100644 index 0000000..f5d6c75 --- /dev/null +++ b/site.pp @@ -0,0 +1,4 @@ +node 'agent.minsk.epam.com' { + include jboss + include deploy + } From 6c24b30b48ac559eb098963be31c7502e0d63b4d Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 19 Apr 2017 08:41:51 +0300 Subject: [PATCH 2/4] Create autosign.conf --- autosign.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/autosign.conf b/autosign.conf index e7399ab..523771f 100644 --- a/autosign.conf +++ b/autosign.conf @@ -1 +1 @@ -*.minsk.epam.com +*.m From 592ba59bd128bcbc9f796b00f2d288bc6dc40d26 Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 19 Apr 2017 08:42:16 +0300 Subject: [PATCH 3/4] Update site.pp --- site.pp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site.pp b/site.pp index f5d6c75..a7b9a90 100644 --- a/site.pp +++ b/site.pp @@ -1,4 +1,4 @@ -node 'agent.minsk.epam.com' { +node 'client1.m' { include jboss include deploy } From 6d8591589bbc91e066437bac3de2f56716446d4b Mon Sep 17 00:00:00 2001 From: Mike Date: Wed, 19 Apr 2017 08:43:19 +0300 Subject: [PATCH 4/4] Update Vagrantfile --- Vagrantfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Vagrantfile b/Vagrantfile index dd05c1a..7ac72a0 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -3,7 +3,7 @@ Vagrant.configure("2") do |config| config.vm.box = "centos/7" - config.vm.define "puppetserver" do |server| + config.vm.define "server" do |server| server.vm.hostname = "server.m" server.vm.network "private_network", ip: "192.0.0.100" server.vm.provider 'virtualbox' do |vb|