From 3c2f79d6cdd45e8134843531e48a9d8433e82f4a Mon Sep 17 00:00:00 2001 From: Student Date: Tue, 18 Apr 2017 15:57:19 +0300 Subject: [PATCH] task14 --- Vagrantfile | 45 +++++++++++++++ autosign.conf | 1 + modules/jboss/manifests/init.pp | 70 +++++++++++++++++++++++ modules/jboss/templates/jboss-init.sh.erb | 54 +++++++++++++++++ site.pp | 4 ++ 5 files changed, 174 insertions(+) create mode 100644 Vagrantfile create mode 100644 autosign.conf create mode 100644 modules/jboss/manifests/init.pp create mode 100644 modules/jboss/templates/jboss-init.sh.erb create mode 100644 site.pp diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..d135d26 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,45 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.define "puppetmaster" do |master| + master.vm.hostname = "master.epbyminw2695.minsk.epam.com" + master.vm.box = "centos7" + master.vm.network "private_network", ip: "192.168.1.1" + master.vm.provider "virtualbox" do |server| + server.cpus = 2 + server.memory = 3000 + end + + master.vm.provision "shell", inline: <<-SHELL + sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm + sudo yum install -y puppetserver + sudo systemctl restart network + sudo cp /vagrant/autosign.conf /etc/puppetlabs/puppet + sudo systemctl start puppetserver + source ~/.bashrc + sudo cp -R /vagrant/modules/* /etc/puppetlabs/code/environments/production/modules + sudo chmod -R 0777 /etc/puppetlabs/code/environments/production/modules/jboss/files + sudo cp /vagrant/site.pp /etc/puppetlabs/code/environments/production/manifests + SHELL + end + + config.vm.define "puppetnode" do |node| + node.vm.hostname = "node.epbyminw2695.minsk.epam.com" + node.vm.box = "centos7" + node.vm.network "private_network", ip: "192.168.1.2" + node.vm.provider "virtualbox" do |node1| + node1.cpus = 1 + node1.memory = 1024 + end + + node.vm.provision "shell", inline: <<-SHELL + sudo rpm -Uvh https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm + yum install -y puppet-agent + sudo systemctl restart network + echo "server = master.epbyminw2695.minsk.epam.com" >> /etc/puppetlabs/puppet/puppet.conf + echo "192.168.1.1 master.epbyminw2695.minsk.epam.com" >> /etc/hosts + sudo /opt/puppetlabs/bin/puppet resource service puppet ensure=running enable=true + SHELL + end +end diff --git a/autosign.conf b/autosign.conf new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/autosign.conf @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/modules/jboss/manifests/init.pp b/modules/jboss/manifests/init.pp new file mode 100644 index 0000000..8dc1dbb --- /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..974e0e7 --- /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/site.pp b/site.pp new file mode 100644 index 0000000..711ed93 --- /dev/null +++ b/site.pp @@ -0,0 +1,4 @@ +node 'node' { + include jboss + include deploy + }