E37467
This commit is contained in:
parent
022d6aa4f8
commit
4e06b1eb56
@ -1,2 +1,7 @@
|
||||
---
|
||||
message: "This node is using common data"
|
||||
controlm::controlm_agent::agent2server_port: 17005
|
||||
controlm::controlm_agent::server2agent_port: 17006
|
||||
controlm::controlm_agent::tracker_port: 17035
|
||||
controlm::controlm_agent::server_host: ctmgnpappla013
|
||||
controlm::controlm_agent::primary_server_host: ctmgnpappla013.optus.com.au
|
||||
|
BIN
site-modules/.DS_Store
vendored
BIN
site-modules/.DS_Store
vendored
Binary file not shown.
BIN
site-modules/controlm/.DS_Store
vendored
Normal file
BIN
site-modules/controlm/.DS_Store
vendored
Normal file
Binary file not shown.
96
site-modules/controlm/README.md
Normal file
96
site-modules/controlm/README.md
Normal file
@ -0,0 +1,96 @@
|
||||
This installs the Optus standard controlm.
|
||||
|
||||
All hiera is managed in the approproate pp file under manifests and the various child .pp files use inherit to see the variables.
|
||||
|
||||
# CONTROLM AGENT
|
||||
All hiera has defaults. You will probably only need to set servers if anything.
|
||||
|
||||
## Software and patches
|
||||
The install script installs the main software and the patches as I couldn't get the patch script to run properly after the main install script. Patches are defaulted to the current ones or set in heira
|
||||
controlm::controlm_agent::patch_files:
|
||||
- file1
|
||||
- file2
|
||||
|
||||
|
||||
## Servers
|
||||
if the client is in a different domain to the server (eg client is nix.au.singtelgroup.net and server is optus.com.au) then need FQDN as below, else can use short form in both
|
||||
```
|
||||
controlm::controlm_agent::primary_server_host: ctmgnpappla012.optus.com.au
|
||||
controlm::controlm_agent::server_host: ctmgnpappla012
|
||||
```
|
||||
Note that you need to be able to contact the host[s] on the server2agent port listed in controlm_agent.pp for the install to work.
|
||||
|
||||
All DEV (DEV,PPT, SIT, GNP etc) must use ctmgnpappla012 as the control-m server, all PRD non BCC Agents must use ctmprdappla003.
|
||||
|
||||
|
||||
## Admins
|
||||
You need accounts for the admins and schedulers as below, subbing PRD for GNP in prd:
|
||||
```
|
||||
isnd_linux::profiles::soe::login_accounts::groups:
|
||||
- 'ocaus01\ACL-GNP-CTRLM-rwx-SMT-ADMIN':
|
||||
additional_groups:
|
||||
- controlm
|
||||
- 'ocaus01\ACL-GNP-CTRLM-rx-SMT-SCHED':
|
||||
additional_groups:
|
||||
- controlm
|
||||
|
||||
tpiam::profiles::sudoers:
|
||||
ocaus01aclgnpctrlmrwxsmtadmin:
|
||||
runas_users:
|
||||
- ctmagent
|
||||
commands: all_commands
|
||||
ocaus01aclgnpctrlmrxsmtsched:
|
||||
runas_users:
|
||||
- ctmagent
|
||||
commands: all_commands include controlm::controlm_agent::users
|
||||
|
||||
```
|
||||
## To reinstall
|
||||
```
|
||||
userdel -r ctmagent
|
||||
yum remove ctmagent_core_clean
|
||||
rm -rf /apps/bmc
|
||||
```
|
||||
# ctm.sh fails
|
||||
If puppet complains about ctm.sh, be sure everything is running as root properly. The install should do this, but exec is never reliable
|
||||
```
|
||||
[root@bdpprdedgla001 scripts_optus]# pwd
|
||||
/apps/bmc/ctm/scripts_optus
|
||||
[root@bdpprdedgla001 scripts_optus]# ./ctm.sh stop
|
||||
Stopping Control-M Agent
|
||||
Killing Control-M/Agent Listener pid:23639
|
||||
2018-01-09 11:06:33 Listener process stopped
|
||||
Killing Control-M/Agent Tracker pid:23693
|
||||
2018-01-09 11:06:34 Tracker process stopped
|
||||
```
|
||||
it might complain, so if it does, do as it says:
|
||||
```
|
||||
[root@bdpprdedgla002 scripts_optus]# ./ctm.sh stop
|
||||
Stopping Control-M Agent
|
||||
The agent is currently running as 'ctmagent'
|
||||
You need to login as 'ctmagent' and run this command again
|
||||
```
|
||||
so su - ctmagent, run the stop command and then as root
|
||||
```
|
||||
[root@bdpprdedgla001 scripts_optus]# ./ctm.sh mode_full
|
||||
Sudo mode is disabled
|
||||
|
||||
/apps/bmc/ctm/exe/vault/su_bmc ownership set to ctmagent
|
||||
/apps/bmc/ctm/exe/vault/su_bmc setuid bit was reset
|
||||
/apps/bmc/ctm/sysout permissions set to 755 without sticky bit
|
||||
/apps/bmc/ctm/sysout setgid bit was reset
|
||||
/apps/bmc/ctm/non-root deleted
|
||||
|
||||
Non-root mode was disabled.
|
||||
|
||||
[root@bdpprdedgla001 scripts_optus]# ./ctm.sh start
|
||||
|
||||
|
||||
Starting the agent as 'root' user
|
||||
|
||||
Control-M/Agent Listener started. pid: 10838
|
||||
Control-M/Agent Tracker started. pid: 10892
|
||||
|
||||
Control-M/Agent started successfully.
|
||||
Control-M Agent Started
|
||||
```
|
4
site-modules/controlm/files/controlm.csh
Normal file
4
site-modules/controlm/files/controlm.csh
Normal file
@ -0,0 +1,4 @@
|
||||
setenv PATH ${PATH}:/apps/bmc/ctm/exe:/apps/bmc/ctm/scripts:/apps/bmc/ctm/scripts_optus
|
||||
setenv CONTROLM /apps/bmc/ctm
|
||||
setenv LD_LIBRARY_PATH /apps/bmc/ctm/exe
|
||||
|
7
site-modules/controlm/files/controlm.sh
Normal file
7
site-modules/controlm/files/controlm.sh
Normal file
@ -0,0 +1,7 @@
|
||||
CONTROLM=/apps/bmc/ctm
|
||||
export CONTROLM
|
||||
PATH=${PATH}:/apps/bmc/ctm/exe:/apps/bmc/ctm/scripts:/apps/bmc/ctm/scripts_optus
|
||||
export PATH
|
||||
LD_LIBRARY_PATH=/apps/bmc/ctm/exe
|
||||
export LD_LIBRARY_PATH
|
||||
|
11
site-modules/controlm/files/controlm_agent_install.sh
Normal file
11
site-modules/controlm/files/controlm_agent_install.sh
Normal file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
cd /apps/bmc/
|
||||
sudo -u ctmagent /apps/bmc/software/version_9/setup.sh -silent /apps/bmc/ctm/ctm_silentinstall_optus.xml
|
||||
RESULT=$?
|
||||
echo "exit status $RESULT"
|
||||
/bin/date > /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
echo "exit status $RESULT" >> /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
echo "do not remove this file unless you want to rerun the install" >> /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
chmod 444 /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
exit $RESULT
|
||||
|
49
site-modules/controlm/files/ctm.sh
Normal file
49
site-modules/controlm/files/ctm.sh
Normal file
@ -0,0 +1,49 @@
|
||||
#!/bin/bash
|
||||
# Startup Script for Control-M Agent Daemons
|
||||
# Creation Date: 2016-09-09
|
||||
# Created By: David Stephenson
|
||||
# Version: 1.0
|
||||
|
||||
# chkconfig: 2345 99 05
|
||||
# description: Controlm agent
|
||||
|
||||
|
||||
CTM_Dir=/apps/bmc/ctm
|
||||
CTM_OWNER=ctmagent
|
||||
CTM_GROUP=controlm
|
||||
|
||||
chown $CTM_OWNER:$CTM_GROUP $CTM_Dir/proclog/*.log
|
||||
|
||||
case "$1" in
|
||||
'start')
|
||||
cd $CTM_Dir/scripts
|
||||
./start-ag -u $CTM_OWNER -p ALL -s
|
||||
if [ "$?" = 0 ] ; then
|
||||
touch /var/lock/subsys/ctm
|
||||
echo "Control-M Agent Started"
|
||||
fi
|
||||
;;
|
||||
'stop')
|
||||
cd $CTM_Dir/scripts
|
||||
echo "Stopping Control-M Agent"
|
||||
./shut-ag -u $CTM_OWNER -p ALL
|
||||
RETVAL=$?
|
||||
echo
|
||||
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ctm;
|
||||
;;
|
||||
'mode_user')
|
||||
cd $CTM_Dir/scripts
|
||||
./set_agent_mode -u $CTM_OWNER -o 1
|
||||
;;
|
||||
'mode_full')
|
||||
cd $CTM_Dir/scripts
|
||||
./set_agent_mode -u $CTM_OWNER -o 2
|
||||
;;
|
||||
*)
|
||||
echo "Usage: /<install-dir>/ctm.sh { start | stop }"
|
||||
echo "or, if using sudo...."
|
||||
echo "Usage: sudo -u root ./ctm.sh { start | stop | mode_user | mode_full }"
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
|
39
site-modules/controlm/files/setup_patch.sh
Executable file
39
site-modules/controlm/files/setup_patch.sh
Executable file
@ -0,0 +1,39 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Description:
|
||||
# This setup.sh find and run the install-bin that is compatible to the installing environment
|
||||
|
||||
# Find this script's directory
|
||||
utl_dir=`dirname $0`
|
||||
|
||||
# set the INSTALL_BINs directory
|
||||
bin_dir=$utl_dir
|
||||
|
||||
# get all the INSTALL_BINs
|
||||
install_bin_list=`ls $bin_dir | grep INSTALL.BIN`
|
||||
|
||||
#get shell to be used to run "BIN" files
|
||||
__machine=`uname`
|
||||
shellInterpriter="/bin/ksh"
|
||||
if [ $__machine = "Linux" ] ; then
|
||||
shellInterpriter="/bin/sh"
|
||||
fi
|
||||
|
||||
|
||||
# loop on the install_bin_list and find the first one that is compatible with the environment
|
||||
for install_bin in $install_bin_list
|
||||
do
|
||||
${shellInterpriter} $bin_dir/$install_bin -m
|
||||
if [ $? -eq 0 ];then
|
||||
# Current install_bin is compatible with the environment was found, run it to install the FP
|
||||
$bin_dir/$install_bin $@
|
||||
exit $?
|
||||
fi
|
||||
done
|
||||
|
||||
echo ERROR: There is no available installation file for this platform: `uname -a`
|
||||
echo Installation files were found for the following platforms:
|
||||
echo ${install_bin_list}| tr " " "\n" | cut -f 2 -d_ | cut -f 1 -d.
|
||||
|
||||
exit 1
|
||||
|
48
site-modules/controlm/files/sleep.sh
Normal file
48
site-modules/controlm/files/sleep.sh
Normal file
@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# Sleep Script for Control-M
|
||||
# Use to Test Control-M Scheduling
|
||||
# Creation Date: 2016-09-09
|
||||
# Created By: David Stephenson
|
||||
# Version: 1.0
|
||||
exec 2> /dev/null
|
||||
echo "********************************"
|
||||
echo "** CONTROL-M Environment **"
|
||||
echo "********************************"
|
||||
echo PATH := $PATH
|
||||
echo LD_LIBRARY_PATH:= $LD_LIBRARY_PATH
|
||||
echo CONTROLM := $CONTROLM
|
||||
echo ""
|
||||
echo "********************************"
|
||||
echo "** Arguments passed to script **"
|
||||
echo "********************************"
|
||||
echo Number of ARGS: = $#
|
||||
echo ARGS := $*
|
||||
echo ""
|
||||
echo "********************************"
|
||||
echo "** Script Run times **"
|
||||
echo "********************************"
|
||||
echo START := $(date)
|
||||
|
||||
# Default RC to 0
|
||||
RC=0
|
||||
|
||||
# Search ARGS for RC=xxx If found Return an Error Code
|
||||
while (( "$#" )); do
|
||||
arg=$(echo $1 | awk '{ print $1 }')
|
||||
if [ "$arg" -eq "$arg" ] 2>/dev/null; then
|
||||
echo SLEEP := $arg SECONDS
|
||||
sleep $1 > /dev/null
|
||||
fi
|
||||
echo $arg | grep -qi "rc="
|
||||
if [ "$?" -eq "0" ]; then
|
||||
RC=$(echo $arg | grep -i "rc=" | awk -F= '{ print $2 }')
|
||||
echo "RETURN CODE ARGUMENT: 'RC=$RC' FOUND. RETURN CODE '$RC' SENT TO CONTROL_M"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
echo END := $(date)
|
||||
echo ""
|
||||
|
||||
exit $RC
|
||||
|
0
site-modules/controlm/files/ztest
Normal file
0
site-modules/controlm/files/ztest
Normal file
BIN
site-modules/controlm/manifests/.DS_Store
vendored
Normal file
BIN
site-modules/controlm/manifests/.DS_Store
vendored
Normal file
Binary file not shown.
56
site-modules/controlm/manifests/controlm_agent.pp
Normal file
56
site-modules/controlm/manifests/controlm_agent.pp
Normal file
@ -0,0 +1,56 @@
|
||||
class controlm::controlm_agent {
|
||||
|
||||
#used for the automated install file and firewall.
|
||||
|
||||
#MUST HAVE THESE TWO IN HIERA, use fqdn for primary if host in diff domain.
|
||||
#controlm::controlm_agent::primary_server_host: ctmgnpappla012.optus.com.au
|
||||
#controlm::controlm_agent::server_host: ctmgnpappla012
|
||||
$server_host = hiera('controlm::controlm_agent::server_host','ctmgnpappla012')
|
||||
$primary_server_host = hiera('controlm::controlm_agent::primary_server_host','ctmgnpappla012.optus.com.au')
|
||||
|
||||
$tracker_port = hiera('controlm::controlm_agent::tracker_port','7035')
|
||||
$a2s_port = hiera('controlm::controlm_agent::agent2server_port','7005')
|
||||
$s2a_port = hiera('controlm::controlm_agent::server2agent_port','7006')
|
||||
$tcp_timeout = hiera('controlm::controlm_agent::tcp_timeout','60')
|
||||
$ignore_fail = hiera('controlm::controlm_agent::ignore_fail',false)
|
||||
$force_upgrade = hiera('controlm::controlm_agent::force_upgrade',false)
|
||||
|
||||
$software_version = hiera('controlm::controlm_agent::version','9.0.00-2')
|
||||
|
||||
$patch_files = hiera('controlm::controlm_agent::patch_files',['PAKAI.9.0.00.100_Linux-x86_64_INSTALL.BIN','PAKAI.9.0.00.200_Linux-x86_64_INSTALL.BIN'])
|
||||
# array of patch files so
|
||||
# controlm::controlm_agent::patch_files:
|
||||
# - file1
|
||||
# - file2
|
||||
# patch files are not installed separately from main install as timing that was
|
||||
# not working. So if we get new patches probably best to install by hand or see
|
||||
# if you can get a separate script happening.
|
||||
|
||||
# also in hiera you need these, subbing PRD for GNP where needed
|
||||
# isnd_linux::profiles::soe::login_accounts::groups:
|
||||
# - 'ocaus01\ACL-GNP-CTRLM-rwx-SMT-ADMIN':
|
||||
# additional_groups:
|
||||
# - controlm
|
||||
# - 'ocaus01\ACL-GNP-CTRLM-rx-SMT-SCHED':
|
||||
# additional_groups:
|
||||
# - controlm
|
||||
#
|
||||
# tpiam::profiles::sudoers:
|
||||
# ocaus01aclgnpctrlmrwxsmtadmin:
|
||||
# runas_users:
|
||||
# - ctmagent
|
||||
# commands: all_commands
|
||||
# ocaus01aclgnpctrlmrxsmtsched:
|
||||
# runas_users:
|
||||
# - ctmagent
|
||||
# commands: all_commands include controlm::controlm_agent::users
|
||||
|
||||
include controlm::controlm_agent::users
|
||||
include controlm::controlm_agent::packages
|
||||
include controlm::controlm_agent::files
|
||||
include controlm::controlm_agent::firewall
|
||||
include controlm::controlm_agent::install
|
||||
|
||||
}
|
||||
|
||||
|
153
site-modules/controlm/manifests/controlm_agent/files.pp
Normal file
153
site-modules/controlm/manifests/controlm_agent/files.pp
Normal file
@ -0,0 +1,153 @@
|
||||
class controlm::controlm_agent::files inherits controlm::controlm_agent {
|
||||
|
||||
# Directories
|
||||
unless defined(File['/apps']) {
|
||||
file { [ '/apps', ]:
|
||||
ensure => 'directory',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
}
|
||||
}
|
||||
|
||||
file { [ '/apps/bmc',]:
|
||||
ensure => 'directory',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
require => File['/apps'],
|
||||
}
|
||||
file { [ '/apps/bmc/software','/apps/bmc/software/version_9/','/apps/bmc/software/version_9/fixes' ]:
|
||||
ensure => 'directory',
|
||||
owner => 'ctmagent',
|
||||
group => 'controlm',
|
||||
mode => '0755',
|
||||
require => File['/apps/bmc'],
|
||||
}
|
||||
|
||||
# scripts_optus
|
||||
|
||||
file { ['/apps/bmc/ctm/scripts_optus']:
|
||||
ensure => directory,
|
||||
owner => 'ctmagent',
|
||||
group => 'controlm',
|
||||
mode => '0775',
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
||||
file { '/apps/bmc/ctm/scripts_optus/sleep.sh':
|
||||
ensure => file,
|
||||
owner => 'ctmagent',
|
||||
group => 'controlm',
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/controlm/sleep.sh',
|
||||
require => [File['/apps/bmc/ctm/scripts_optus'],User['ctmagent'],],
|
||||
}
|
||||
|
||||
file { '/apps/bmc/ctm/scripts_optus/ctm.sh':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/controlm/ctm.sh',
|
||||
require => File['/apps/bmc/ctm/scripts_optus'],
|
||||
}
|
||||
|
||||
case $::os['release']['major']{
|
||||
'6': {
|
||||
file { '/etc/rc.d/init.d/ctm.sh':
|
||||
ensure => link,
|
||||
target => '/apps/bmc/ctm/scripts_optus/ctm.sh',
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
require => File['/apps/bmc/ctm/scripts_optus/ctm.sh'],
|
||||
}
|
||||
}
|
||||
'7': {
|
||||
|
||||
file { '/etc/rc.d/init.d/ctm.sh':
|
||||
ensure => absent,
|
||||
}
|
||||
|
||||
file { '/etc/rc.d/init.d/ctm':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/controlm/ctm.sh',
|
||||
notify => Exec['systemctl reload daemon for Control-M agent']
|
||||
}
|
||||
|
||||
exec{'systemctl reload daemon for Control-M agent':
|
||||
path => $::path,
|
||||
command => 'systemctl daemon-reload',
|
||||
refreshonly => true,
|
||||
}
|
||||
|
||||
}
|
||||
default: {fail "Unsupported Major version ${::os['release']['major']} detected"}
|
||||
}
|
||||
|
||||
#ctm/scripts
|
||||
|
||||
# file { '/apps/bmc/ctm/scripts':
|
||||
# ensure => link,
|
||||
# target => '/apps/bmc/software/version_9/ctm/scripts',
|
||||
# owner => 'root',
|
||||
# group => 'root',
|
||||
# require => Package['ctmagent_core_clean'],
|
||||
# }
|
||||
|
||||
# install scripts
|
||||
|
||||
file { '/apps/bmc/ctm/ctm_silentinstall_optus.xml':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
content => template('controlm/agent_install.erb'),
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
||||
file { '/apps/bmc/ctm/controlm_agent_install.sh':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
content => template('controlm/controlm_agent_install.erb'),
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
||||
|
||||
# need to check status method and also if we need restart check.
|
||||
# this should be in the install Iguess
|
||||
# service { 'ctm.sh':
|
||||
# ensure => running,
|
||||
# enable => true,
|
||||
# hasstatus => false,
|
||||
# status => '',
|
||||
# start => '',
|
||||
# stop => '',
|
||||
# subscribe => [
|
||||
# ],
|
||||
# require => '/etc/rc.d/init.d/ctm.sh',
|
||||
# }
|
||||
|
||||
# profile scripts
|
||||
file { '/etc/profile.d/controlm.csh':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/controlm/controlm.csh',
|
||||
}
|
||||
|
||||
file { '/etc/profile.d/controlm.sh':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
source => 'puppet:///modules/controlm/controlm.sh',
|
||||
}
|
||||
|
||||
}
|
16
site-modules/controlm/manifests/controlm_agent/firewall.pp
Normal file
16
site-modules/controlm/manifests/controlm_agent/firewall.pp
Normal file
@ -0,0 +1,16 @@
|
||||
class controlm::controlm_agent::firewall inherits controlm::controlm_agent {
|
||||
|
||||
|
||||
firewall { '200 controlm tracker port hiera controlm_tracker_port':
|
||||
action => 'accept',
|
||||
proto => 'tcp',
|
||||
dport => [$tracker_port],
|
||||
}
|
||||
|
||||
firewall { '210 controlm server to agent hiera controlm_server2agent_port':
|
||||
action => 'accept',
|
||||
proto => 'tcp',
|
||||
dport => [$s2a_port],
|
||||
}
|
||||
|
||||
}
|
59
site-modules/controlm/manifests/controlm_agent/install.pp
Normal file
59
site-modules/controlm/manifests/controlm_agent/install.pp
Normal file
@ -0,0 +1,59 @@
|
||||
class controlm::controlm_agent::install inherits controlm::controlm_agent {
|
||||
|
||||
|
||||
# set up /etc/services
|
||||
|
||||
augeas { 'controlm':
|
||||
context => '/files/etc/services',
|
||||
changes => [
|
||||
"set service-name[port = '${s2a_port}'][protocol = 'udp'] ctmagent",
|
||||
"set service-name[port = '${s2a_port}'][protocol = 'udp']/#comment 'Control-M server2agent'",
|
||||
"set service-name[port = '${s2a_port}'][protocol = 'tcp'] ctmagent",
|
||||
"set service-name[port = '${s2a_port}'][protocol = 'tcp']/#comment 'Control-M server2age nt'",
|
||||
"set service-name[port = '${a2s_port}'][protocol = 'udp'] ctmagent",
|
||||
"set service-name[port = '${a2s_port}'][protocol = 'udp']/#comment 'Control-M agent2servr'",
|
||||
"set service-name[port = '${a2s_port}'][protocol = 'tcp'] ctmagent",
|
||||
"set service-name[port = '${a2s_port}'][protocol = 'tcp']/#comment 'Control-M agent2server'",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
# use shellscript and sudo as running the install direct as user ctmagent gives HOME errors plus we get errors in the log file
|
||||
# also does patches as can't get the patch script running after it for some reason
|
||||
# patch names need to be in hiera see controlm_agent.pp
|
||||
exec { 'controlm_agent_install':
|
||||
command => '/apps/bmc/ctm/controlm_agent_install.sh > /apps/bmc/ctm/controlm_agent_install.log',
|
||||
creates => '/apps/bmc/ctm/controlm_agent_install.hasrun',
|
||||
require => [User['ctmagent'],Package['ctmagent_core_clean'],File['/apps/bmc/ctm/ctm_silentinstall_optus.xml','/apps/bmc/ctm/controlm_agent_install.sh'],Exec['chown_/apps/bmc'],],
|
||||
timeout => 1800,
|
||||
}
|
||||
|
||||
case $::os['release']['major']{
|
||||
'6': {
|
||||
service { 'ctm.sh':
|
||||
ensure => running,
|
||||
enable => true,
|
||||
hasstatus => false,
|
||||
status => '/bin/ps -ef | /bin/grep /apps/bmc/ctm/exe/p_ctm | /bin/grep -v grep',
|
||||
require => [File['/etc/rc.d/init.d/ctm.sh'],Exec['controlm_agent_install'],]
|
||||
}
|
||||
}
|
||||
'7': {
|
||||
|
||||
service { 'ctm.sh':
|
||||
enable => false,
|
||||
}
|
||||
|
||||
service { 'ctm':
|
||||
ensure => running,
|
||||
enable => true,
|
||||
hasstatus => false,
|
||||
status => '/bin/ps -ef | /bin/grep /apps/bmc/ctm/exe/p_ctm | /bin/grep -v grep',
|
||||
require => [File['/etc/rc.d/init.d/ctm'],Exec['controlm_agent_install']]
|
||||
}
|
||||
|
||||
}
|
||||
default: {fail "Unsupported Major version ${::os['release']['major']} detected"}
|
||||
}
|
||||
}
|
||||
|
16
site-modules/controlm/manifests/controlm_agent/packages.pp
Normal file
16
site-modules/controlm/manifests/controlm_agent/packages.pp
Normal file
@ -0,0 +1,16 @@
|
||||
class controlm::controlm_agent::packages inherits controlm::controlm_agent {
|
||||
|
||||
package { 'ctmagent_core_clean' :
|
||||
ensure => "$software_version",
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
||||
# the RPM does permissions, this is a backup
|
||||
exec {'software permissions' :
|
||||
command => '/bin/chown -R ctmagent:controlm /apps/bmc/software/version_9',
|
||||
onlyif => '/usr/bin/test $(/bin/find /apps/bmc/software/version_9/CheckReq -uid 0 | w
|
||||
c -l) -gt 0',
|
||||
require => Package['ctmagent_core_clean'],
|
||||
}
|
||||
|
||||
}
|
38
site-modules/controlm/manifests/controlm_agent/users.pp
Normal file
38
site-modules/controlm/manifests/controlm_agent/users.pp
Normal file
@ -0,0 +1,38 @@
|
||||
class controlm::controlm_agent::users {
|
||||
|
||||
unless defined(Group['controlm']) {
|
||||
group { 'controlm':
|
||||
ensure => present,
|
||||
}
|
||||
}
|
||||
|
||||
user { 'ctmagent':
|
||||
gid => [ 'controlm'],
|
||||
home => '/apps/bmc/ctm',
|
||||
comment => 'ControlM Agent',
|
||||
shell => '/bin/bash',
|
||||
password => '*',
|
||||
managehome => true,
|
||||
require => [Group['controlm'],File['/apps/bmc'],],
|
||||
}
|
||||
# set ownerships for /apps/bmc/ctm as needs sticky on group and install needs ctmagent to own /apps/bmc
|
||||
exec { 'set permissions on /apps/bmc/ctm':
|
||||
command => '/bin/chmod 2775 /apps/bmc/ctm',
|
||||
onlyif => '/usr/bin/test $(/bin/find /apps/bmc/ctm -perm 2775 | wc -l) -eq 0',
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
||||
exec { 'chown_/apps/bmc':
|
||||
command => '/bin/chown ctmagent.controlm /apps/bmc',
|
||||
unless => '/usr/bin/test -e /apps/bmc/ctm/controlm_agent_install.hasrun',
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
||||
sudo::rule { 'controlm':
|
||||
type => 'group',
|
||||
runas_users => 'root',
|
||||
commands => [
|
||||
'/apps/bmc/ctm/scripts_optus/ctm.sh',
|
||||
],
|
||||
}
|
||||
}
|
10
site-modules/controlm/manifests/controlm_agent/z1
Normal file
10
site-modules/controlm/manifests/controlm_agent/z1
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
file { '/apps/bmc/ctm/ctm_silentinstall_optus.xml':
|
||||
ensure => file,
|
||||
owner => 'root',
|
||||
group => 'root',
|
||||
mode => '0755',
|
||||
content => template('controlm/agent_install.erb'),
|
||||
require => User['ctmagent'],
|
||||
}
|
||||
|
13
site-modules/controlm/templates/agent_install.erb
Normal file
13
site-modules/controlm/templates/agent_install.erb
Normal file
@ -0,0 +1,13 @@
|
||||
<AutomatedInstallation langpack="eng">
|
||||
<target.product>Control-M/Agent 9.0.00</target.product>
|
||||
<agent.parameters>
|
||||
<entry key="field.Authorized.Controlm.Server.Host" value="<%= @server_host %>"/>
|
||||
<entry key="ctm_agent.Tracker.Event.Port" value="<%= @tracker_port %>"/>
|
||||
<entry key="field.Agent.To.Server.Port.Number" value="<%= @a2s_port %>"/>
|
||||
<entry key="ctm_agent.Tcp_ip.Timeout" value="<%= @tcp_timeout %>"/>
|
||||
<entry key="field.Server.To.Agent.Port.Number" value="<%= @s2a_port %>"/>
|
||||
<entry key="Ignore.Disabling.Agent.Failure" value="<%= @ignore_fail %>"/>
|
||||
<entry key="ctm_agent.Force.Upgrade" value="<%= @force_upgrade %>"/>
|
||||
<entry key="field.Primary.Controlm.Server.Host" value="<%= @primary_server_host %>"/>
|
||||
</agent.parameters>
|
||||
</AutomatedInstallation>
|
71
site-modules/controlm/templates/controlm_agent_install.erb
Normal file
71
site-modules/controlm/templates/controlm_agent_install.erb
Normal file
@ -0,0 +1,71 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
#Does install and patches if any
|
||||
|
||||
cd /apps/bmc/
|
||||
sudo -u ctmagent /apps/bmc/software/version_9/setup.sh -silent /apps/bmc/ctm/ctm_silentinstall_optus.xml
|
||||
RESULT=$?
|
||||
echo "exit status $RESULT"
|
||||
if [ $RESULT -ne 0 ] ; then exit $RESULT; fi
|
||||
/bin/date > /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
echo "exit status $RESULT" >> /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
echo "do not remove this file unless you want to rerun the install" >> /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
chmod 444 /apps/bmc/ctm/controlm_agent_install.hasrun
|
||||
|
||||
|
||||
<% if @patch_files -%>
|
||||
/bin/date > /apps/bmc/ctm/controlm_agent_patch_install.hasrun
|
||||
# remove any old patches
|
||||
rm -rf /apps/bmc/software/version_9/fixes/*INSTALL.BIN
|
||||
|
||||
. /etc/profile.d/controlm.sh
|
||||
|
||||
<% @patch_files.each do | file | -%>
|
||||
|
||||
echo "===================="
|
||||
PATCH_RESULT=1
|
||||
cd /apps/bmc/software/version_9/fixes
|
||||
wget http://<%= scope.lookupvar('::razor_metadata_repo_server') -%>/files/bcc_source/controlm/<%= file %>
|
||||
chmod 755 /apps/bmc/software/version_9/fixes/<%= file %>
|
||||
sudo -u ctmagent /bin/bash - <<EOF
|
||||
cd /apps/bmc/software/version_9/fixes
|
||||
. /etc/profile.d/controlm.sh
|
||||
/usr/bin/yes y | /apps/bmc/software/version_9/fixes/<%= file %>
|
||||
EOF
|
||||
PATCH_RESULT=$?
|
||||
if [ $PATCH_RESULT -ne 0 ]
|
||||
then
|
||||
echo "patch <%= file -%> bad $PATCH_RESULT" >> controlm_agent_patch_install.hasrun
|
||||
mv /apps/bmc/ctm/controlm_agent_patch_install.hasrun /apps/bmc/ctm/controlm_agent_patch_install.bad
|
||||
exit $RESULT
|
||||
fi
|
||||
|
||||
echo "patch exit status <%= file -%> $PATCH_RESULT"
|
||||
# sleep to see if patches properly install
|
||||
echo "sleeping for 10 "
|
||||
sleep 10
|
||||
<% end -%>
|
||||
<% end -%>
|
||||
|
||||
# set correct hostnames
|
||||
SHORT=`/bin/hostname -s`
|
||||
LONG=`/bin/hostname -f`
|
||||
|
||||
echo "Changing short hostnames in CONFIG.dat"
|
||||
cp -f /apps/bmc/ctm/data/CONFIG.dat /apps/bmc/ctm/data/CONFIG.dat.bak
|
||||
/bin/sed -i "s/$SHORT$/$LONG/" /apps/bmc/ctm/data/CONFIG.dat
|
||||
grep $SHORT /apps/bmc/ctm/data/CONFIG.dat
|
||||
|
||||
|
||||
#change mode
|
||||
/usr/bin/yes y | /apps/bmc/ctm/scripts/set_agent_mode -u ctmagent -o 1
|
||||
|
||||
# stop agent
|
||||
sudo -u ctmagent /bin/bash - <<EOF
|
||||
. /etc/profile.d/controlm.sh
|
||||
cd /apps/bmc/ctm
|
||||
/apps/bmc/ctm/scripts/shut-ag
|
||||
EOF
|
||||
|
||||
/usr/bin/yes y | /apps/bmc/ctm/scripts/set_agent_mode -u ctmagent -o 2
|
||||
|
71
site-modules/controlm/templates/rc.agent_user.erb
Executable file
71
site-modules/controlm/templates/rc.agent_user.erb
Executable file
@ -0,0 +1,71 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# chkconfig: 2345 97 02
|
||||
# description: controlm agent
|
||||
|
||||
# set minimal PATH to make sure basic commands like grep and awk are recognized
|
||||
PATH=/usr/sbin/:/usr/bin:/sbin:$PATH
|
||||
export PATH
|
||||
|
||||
account_name="controlm"
|
||||
install_path="<%= @install_dir %>"
|
||||
|
||||
# set config file name
|
||||
config_file=$install_path/ctm/data/CONFIG.dat
|
||||
|
||||
# Get the agent status
|
||||
AGENT_STATUS_FILE=$install_path/ctm/data/ctm_agent_status.dat
|
||||
agent_status=`cat $AGENT_STATUS_FILE`
|
||||
|
||||
|
||||
#Get input parameter start|stop|<empty> for backward compatibility
|
||||
ARG1=`echo $1 | tr '[A-Z]' '[a-z]'`
|
||||
if [ "$ARG1" = "start" ] || [ "$ARG1" = "stop" ] ; then
|
||||
if [ "$ARG1" = "start" ] ; then
|
||||
STATE_ACTION="start"
|
||||
elif [ "$ARG1" = "stop" ] ; then
|
||||
STATE_ACTION="stop"
|
||||
fi
|
||||
else
|
||||
STATE_ACTION="start"
|
||||
fi
|
||||
|
||||
|
||||
if [ "$agent_status" = "STOPPED" ] ; then # AGENT_STATUS is set to 'STOPPED', exit without starting the Agent
|
||||
echo "Control-M/Agent (account $account_name) status is set to 'STOPPED'. Control-M/Agent will not start."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# get the value for config parameter AGENT_OWNER to determine which owner should start the agent
|
||||
# in case the parameter is missing or empty, start as root.
|
||||
# This script is executed as root user by the OS during machine startup.
|
||||
# If the agent should run as agent owner, use 'su' to run start-ag
|
||||
agent_owner=`grep AGENT_OWNER $config_file | awk '{print $2}'`
|
||||
|
||||
if [ "$STATE_ACTION" = "start" ] ; then
|
||||
|
||||
if [ "$agent_owner" != "root" ] ; then
|
||||
/bin/su - $agent_owner -c "$install_path/ctm/scripts/start-ag -u $account_name -p ALL"
|
||||
else
|
||||
$install_path/ctm/scripts/start-ag -u $account_name -p ALL
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
# backup ctm_agent_status.dat to keep origional status
|
||||
TMP_FILE_NAME="ctm_agent_status_dat-`date +'%Y-%m-%d_%H-%M-%S'`.tar"
|
||||
cd $install_path/ctm/data ; tar -cf $TMP_FILE_NAME ctm_agent_status.dat
|
||||
|
||||
if [ "$agent_owner" != "root" ] ; then
|
||||
/bin/su - $agent_owner -c "$install_path/ctm/scripts/shut-ag -u $account_name -p ALL"
|
||||
else
|
||||
$install_path/ctm/scripts/shut-ag -u $account_name -p ALL
|
||||
fi
|
||||
|
||||
# restore ctm_agent_status.dat to origional
|
||||
cd $install_path/ctm/data ; tar -xf $TMP_FILE_NAME ; rm -f $TMP_FILE_NAME
|
||||
|
||||
fi
|
||||
exit 0
|
||||
|
||||
|
0
site-modules/controlm/templates/ztest
Normal file
0
site-modules/controlm/templates/ztest
Normal file
5
site-modules/role/manifests/callaugeas.pp
Normal file
5
site-modules/role/manifests/callaugeas.pp
Normal file
@ -0,0 +1,5 @@
|
||||
class role::callaugeas {
|
||||
|
||||
include controlm::controlm_agent
|
||||
|
||||
}
|
Loading…
Reference in New Issue
Block a user