From cf4032bd519ab68d6bab2557da7fca6f465ba97e Mon Sep 17 00:00:00 2001 From: Student Date: Tue, 18 Apr 2017 23:48:03 +0300 Subject: [PATCH] Task4 --- Vagrantfile | 25 +++++++ agent.sh | 6 ++ autosign.conf | 1 + .../jboss/files/jboss-as-7.1.1/Jboss_files | 1 + modules/jboss/manifests/init.pp | 70 +++++++++++++++++++ modules/jboss/templates/jboss-init.sh.erb | 54 ++++++++++++++ server.sh | 9 +++ site.pp | 4 ++ 8 files changed, 170 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..585e172 --- /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 = "puppetserver.minsk.epam.com" + server.vm.network "private_network", ip: "192.168.100.50" + 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 = "agent.minsk.epam.com" + agent.vm.network "private_network", ip: "192.168.100.51" + 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..6806b82 --- /dev/null +++ b/agent.sh @@ -0,0 +1,6 @@ +rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm +yum install -y puppet-agent +systemctl restart network +echo "server = puppetserver.minsk.epam.com" >> /etc/puppetlabs/puppet/puppet.conf +echo "192.168.100.50 puppetserver.minsk.epam.com" >> /etc/hosts +/opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true 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..8d967ff --- /dev/null +++ b/modules/jboss/manifests/init.pp @@ -0,0 +1,70 @@ +class jboss{ + + $servicename = 'jboss' + $jboss_home = '/opt/jboss-as-7.1.1' + $java_version = '1.7.0' + + + package { 'java': + name => "java-$java_version-openjdk", + ensure => installed, + } + + file { $jboss_home: + ensure => directory, + source => 'puppet:///modules/jboss/jboss-as-7.1.1', + path => $jboss_home, + owner => 'root', + group => 'root', + mode => '0755', + recurse => 'remote', + require => Package['java'] + } + + file { '/etc/init.d/jboss': + content => template('jboss/jboss-init.sh.erb'), + owner => root, + group => root, + mode => '0755', + ensure => file, + notify => Service[$servicename] + } + + service { $servicename: + ensure => 'running', + enable => true, + require => Exec['Register_init'] + } + + exec { 'Register_init': + command => "chkconfig --add /etc/init.d/jboss", + path => ['/usr/bin', '/usr/sbin',], + } + +} + +class deploy{ + + $app_url = "http://www.cumulogic.com/download/Apps/testweb.zip" + $app_file = "/opt/jboss-as-7.1.1/standalone/deployments/testweb.zip" + $app_folder = "/opt/jboss-as-7.1.1/standalone/deployments/" + + package { 'unzip': + ensure => installed, + } + + file { $app_file: + ensure => file, + source => $app_url, + owner => 'root', + group => 'root', + mode => '0755', + } + + exec {'unzip': + command => "unzip -j ${app_file} -d ${app_folder}", + path => ['/usr/bin', '/usr/sbin',], + creates => "${app_folder}/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..b367e66 --- /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=<%= @jboss_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 diff --git a/server.sh b/server.sh new file mode 100644 index 0000000..7ce13e4 --- /dev/null +++ b/server.sh @@ -0,0 +1,9 @@ +rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm +yum install -y puppetserver +systemctl restart network +cp /vagrant/autosign.conf /etc/puppetlabs/puppet +systemctl start puppetserver +source ~/.bashrc +cp -R /vagrant/modules/* /etc/puppetlabs/code/environments/production/modules +chmod -R 0777 /etc/puppetlabs/code/environments/production/modules/jboss/files +cp /vagrant/site.pp /etc/puppetlabs/code/environments/production/manifests 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 + }