summaryrefslogtreecommitdiff
path: root/global/overlay
diff options
context:
space:
mode:
Diffstat (limited to 'global/overlay')
-rw-r--r--global/overlay/etc/puppet/cosmos-modules.conf46
-rw-r--r--global/overlay/etc/puppet/puppet.conf1
-rwxr-xr-xglobal/overlay/usr/local/bin/run-cosmos52
-rwxr-xr-xglobal/overlay/usr/local/sbin/cosmos_vm8
4 files changed, 65 insertions, 42 deletions
diff --git a/global/overlay/etc/puppet/cosmos-modules.conf b/global/overlay/etc/puppet/cosmos-modules.conf
index e4dc597..991a570 100644
--- a/global/overlay/etc/puppet/cosmos-modules.conf
+++ b/global/overlay/etc/puppet/cosmos-modules.conf
@@ -1,21 +1,18 @@
+#
# name source (puppetlabs fq name or git url) upgrade (yes/no) tag-pattern
#
# NOTE that Git packages MUST be tagged with signatures by someone
# in the Cosmos trust list. That is why all the URLs point to forked
# versions in the SUNET github organization.
#
-concat git://github.com/SUNET/puppetlabs-concat.git yes sunet-*
-stdlib git://github.com/SUNET/puppetlabs-stdlib.git yes sunet-*
-cosmos git://github.com/SUNET/puppet-cosmos.git yes sunet-*
-ufw git://github.com/SUNET/puppet-module-ufw.git yes sunet-*
-apt git://github.com/SUNET/puppetlabs-apt.git yes sunet-*
-vcsrepo git://github.com/SUNET/puppetlabs-vcsrepo.git yes sunet-*
-xinetd git://github.com/SUNET/puppetlabs-xinetd.git yes sunet-*
-hiera-gpg git://github.com/SUNET/hiera-gpg.git yes sunet-*
-augeas git://github.com/SUNET/puppet-augeas.git yes sunet-*
-docker git://github.com/SUNET/garethr-docker.git yes sunet-*
-sunet git://github.com/SUNET/puppet-sunet.git yes sunet-*
-
+concat https://github.com/SUNET/puppetlabs-concat.git yes sunet-*
+stdlib https://github.com/SUNET/puppetlabs-stdlib.git yes sunet-*
+cosmos https://github.com/SUNET/puppet-cosmos.git yes sunet-*
+ufw https://github.com/SUNET/puppet-module-ufw.git yes sunet_dev-*
+apt https://github.com/SUNET/puppetlabs-apt.git yes sunet_dev-*
+vcsrepo https://github.com/SUNET/puppetlabs-vcsrepo.git yes sunet-*
+xinetd https://github.com/SUNET/puppetlabs-xinetd.git yes sunet-*
+hiera-gpg https://github.com/SUNET/hiera-gpg.git yes sunet-*
#
# Alternate sources you might or might not want to use:
#concat puppetlabs/concat no
@@ -24,15 +21,16 @@ sunet git://github.com/SUNET/puppet-sunet.git yes sunet-*
#apt puppetlabs/apt no
#vcsrepo puppetlabs/vcsrepo no
#xinetd puppetlabs/xinetd no
-#cosmos git://github.com/leifj/puppet-cosmos.git yes
-#python git://github.com/SUNET/puppet-python.git yes sunet-*
-#erlang git://github.com/SUNET/garethr-erlang.git yes sunet-*
-#rabbitmq git://github.com/SUNET/puppetlabs-rabbitmq.git yes sunet_dev-*
-#pound git://github.com/SUNET/puppet-pound.git yes sunet_dev-*
-#augeas git://github.com/SUNET/puppet-augeas.git yes sunet-*
-#bastion git://github.com/SUNET/puppet-bastion.git yes sunet-*
-#postgresql git://github.com/SUNET/puppetlabs-postgresql.git yes sunet_dev-*
-#munin git://github.com/SUNET/ssm-munin.git yes sunet-*
-#nagios git://github.com/SUNET/puppet-nagios.git yes sunet-*
-#staging git://github.com/SUNET/puppet-staging.git yes sunet-*
-#apparmor git://github.com/SUNET/puppet-apparmor.git yes sunet-*
+#cosmos https://github.com/SUNET/puppet-cosmos.git yes
+#python https://github.com/SUNET/puppet-python.git yes sunet-*
+#erlang https://github.com/SUNET/garethr-erlang.git yes sunet-*
+#rabbitmq https://github.com/SUNET/puppetlabs-rabbitmq.git yes sunet_dev-*
+#pound https://github.com/SUNET/puppet-pound.git yes sunet_dev-*
+#augeas https://github.com/SUNET/puppet-augeas.git yes sunet-*
+#bastion https://github.com/SUNET/puppet-bastion.git yes sunet-*
+#postgresql https://github.com/SUNET/puppetlabs-postgresql.git yes sunet_dev-*
+#munin https://github.com/SUNET/ssm-munin.git yes sunet-*
+#nagios https://github.com/SUNET/puppet-nagios.git yes sunet-*
+#staging https://github.com/SUNET/puppet-staging.git yes sunet-*
+#apparmor https://github.com/SUNET/puppet-apparmor.git yes sunet-*
+#docker https://github.com/SUNET/garethr-docker.git yes sunet_dev-*
diff --git a/global/overlay/etc/puppet/puppet.conf b/global/overlay/etc/puppet/puppet.conf
index 1f834e8..88871f0 100644
--- a/global/overlay/etc/puppet/puppet.conf
+++ b/global/overlay/etc/puppet/puppet.conf
@@ -4,6 +4,7 @@ vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
+templatedir=$confdir/templates
node_terminus = exec
external_nodes = /etc/puppet/cosmos_enc.py
basemodulepath = /etc/puppet/modules:/etc/puppet/cosmos-modules:/usr/share/puppet/modules
diff --git a/global/overlay/usr/local/bin/run-cosmos b/global/overlay/usr/local/bin/run-cosmos
index a37d49f..5f2cbc1 100755
--- a/global/overlay/usr/local/bin/run-cosmos
+++ b/global/overlay/usr/local/bin/run-cosmos
@@ -1,22 +1,46 @@
-#!/bin/sh
+#!/bin/bash
#
# Simplify running cosmos, with serialization if flock is available.
#
-set -e
+readonly PROGNAME=$(basename "$0")
+readonly LOCKFILE_DIR=/tmp
+readonly LOCK_FD=200
-FLOCK=`which flock`
+lock() {
+ local prefix=$1
+ local fd=${2:-$LOCK_FD}
+ local lock_file=$LOCKFILE_DIR/$prefix.lock
-if [ -x "$FLOCK" ]; then
- ($FLOCK --exclusive --wait 60 9 || exit 1
- cosmos $* update
- cosmos $* apply
- )9>/var/lock/run-cosmos
-else
- cosmos $* update
- cosmos $* apply
-fi
+ # create lock file
+ eval "exec $fd>$lock_file"
+
+ # acquier the lock
+ flock -n $fd \
+ && return 0 \
+ || return 1
+}
+
+eexit() {
+ local error_str="$@"
+
+ echo $error_str
+ exit 1
+}
-touch /var/run/last-cosmos-ok.stamp
+main () {
+ lock $PROGNAME || eexit "Only one instance of $PROGNAME can run at one time."
+ cosmos $* update
+ cosmos $* apply
-find /var/lib/puppet/reports/ -type f -mtime +10 | xargs rm -f
+ touch /var/run/last-cosmos-ok.stamp
+
+ find /var/lib/puppet/reports/ -type f -mtime +10 | xargs rm -f
+}
+
+main $*
+
+if [ -f /cosmos-reboot ]; then
+ rm -f /cosmos-reboot
+ reboot
+fi
diff --git a/global/overlay/usr/local/sbin/cosmos_vm b/global/overlay/usr/local/sbin/cosmos_vm
index bf27576..5eec8f7 100755
--- a/global/overlay/usr/local/sbin/cosmos_vm
+++ b/global/overlay/usr/local/sbin/cosmos_vm
@@ -9,8 +9,8 @@ hostname="default"
bridge="br0"
cpus="1"
mem="1024"
-repo="git://code.mnt.se/mnt-cosmos.git"
-tag="eduid-cosmos"
+repo="https://yourhost/myproj-cosmos.git"
+tag="cosmos-ops"
ip=""
gateway=""
netmask=""
@@ -63,7 +63,7 @@ ssh_authorized_keys:
runcmd:
- ["mkdir","/tmp/seed"]
- ["mount","/dev/vdb","/tmp/seed"]
- - ["cp","/tmp/seed/bootstrap-cosmos.sh","/tmp/seed/cosmos_1.2-2_all.deb","/root"]
+ - ["cp","/tmp/seed/bootstrap-cosmos.sh","/tmp/seed/cosmos_1.5-1_all.deb","/root"]
- ["cd","/root"]
- "cd /root && /root/bootstrap-cosmos.sh ${hostname} ${repo} ${tag}"
@@ -112,7 +112,7 @@ fi
mcopy -i ${seed} ${user_data} ::user-data 2>/dev/null
mcopy -i ${seed} ${meta_data} ::meta-data 2>/dev/null
-mcopy -i ${seed} /etc/cosmos/apt/bootstrap-cosmos.sh /etc/cosmos/apt/cosmos_1.2-2_all.deb ::
+mcopy -i ${seed} /etc/cosmos/apt/bootstrap-cosmos.sh /etc/cosmos/apt/cosmos_1.5-1_all.deb ::
mv ${seed} /var/lib/libvirt/images/
virsh pool-refresh default