summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeif Johansson <leifj@sunet.se>2013-10-31 23:28:46 +0100
committerLeif Johansson <leifj@sunet.se>2013-10-31 23:28:46 +0100
commitdd2d34287b88b82f299f14baae116cb8244cb385 (patch)
tree02834d4103d2f65e78894ebe55f1c4353bf05c5b
parent3a8ff2b979f678a818dd7b4965f633dd3ed6cda1 (diff)
parent54000987a08f43e33d6c41ef18f0510f6ce7c540 (diff)
Merge branch 'multiverse'sunet-ops-2013-10-31-v21
-rwxr-xr-xaddhost21
-rwxr-xr-xapt/bootstrap-cosmos.sh12
-rwxr-xr-xglobal/post-tasks.d/015cosmos-trust2
3 files changed, 24 insertions, 11 deletions
diff --git a/addhost b/addhost
index 7099020..033c16b 100755
--- a/addhost
+++ b/addhost
@@ -2,15 +2,17 @@
cmd_hostname=""
cmd_do_bootstrap="no"
+cmd_fqdn=""
-set -- $(getopt b?h? "$@")
+set -- $(getopt b?h?n: "$@")
while [ $# -gt 0 ]; do
case "$1" in
(-h) echo "Usage: $0 [-h] [-b] [--] [<host>]"; exit 0;;
(-b) cmd_do_bootstrap="yes" ;;
+ (-n) cmd_fqdn="$2" ; shift ;;
(--) shift; break;;
- (-*) echo "Unknown option $1\nUsage: $0 [-b] [-h] [--] <host>"; exit 1;;
+ (-*) echo "Unknown option $1\nUsage: $0 [-b] [-h] [-n fqdn] [--] <host>"; exit 1;;
(*) break;;
esac
shift
@@ -20,8 +22,12 @@ if [ ! -z "$1" -a -z "$cmd_hostname" ]; then
cmd_hostname="$1"
fi
+if [ ! -z "$cmd_hostname" -a -z "$cmd_fqdn" ]; then
+ cmd_fqdn="$cmd_hostname"
+fi
+
if test -z "$cmd_hostname"; then
- echo "Usage: $0 [-h] [-b] [--] <host>"
+ echo "Usage: $0 [-h] [-b] [-n fqdn] [--] <host>"
exit 1
fi
@@ -29,17 +35,18 @@ test -f cosmos.conf && . ./cosmos.conf
defrepo=`git remote -v | grep ${remote:="ro"} | grep fetch | awk '{print $2}'`
rrepo=${repo:="$defrepo"}
+rtag=${tag:="changeme"}
if [ ! -d $cmd_hostname ]; then
- cp -pr default $cmd_hostname
- git add $cmd_hostname
- git commit -m "$cmd_hostname added" $cmd_hostname
+ cp -pr default $cmd_fqdn
+ git add $cmd_fqdn
+ git commit -m "$cmd_fqdn added" $cmd_fqdn
./bump-tag
fi
if [ "$cmd_do_bootstrap" = "yes" ]; then
scp apt/cosmos_1.2-2_all.deb apt/bootstrap-cosmos.sh root@$cmd_hostname:
- ssh root@$cmd_hostname ./bootstrap-cosmos.sh $cmd_hostname $rrepo
+ ssh root@$cmd_hostname ./bootstrap-cosmos.sh $cmd_fqdn $rrepo $rtag
ssh root@$cmd_hostname cosmos update
ssh root@$cmd_hostname cosmos apply
fi
diff --git a/apt/bootstrap-cosmos.sh b/apt/bootstrap-cosmos.sh
index 5b6bc50..1e7b941 100755
--- a/apt/bootstrap-cosmos.sh
+++ b/apt/bootstrap-cosmos.sh
@@ -4,16 +4,22 @@ set -e
cmd_hostname="$1"
if test -z "$cmd_hostname"; then
- echo "Usage: $0 HOSTNAME REPO"
+ echo "Usage: $0 HOSTNAME REPO TAGPATTERN"
exit 1
fi
cmd_repo="$2"
if test -z "$cmd_repo"; then
- echo "Usage $0 HOSTNAME REPO"
+ echo "Usage $0 HOSTNAME REPO TAGPATTERN"
exit 2
fi
+cmd_tags="$3"
+if test -z "$cmd_tags"; then
+ echo "Usage $0 HOSTNAME REPO TAGPATTERN"
+ exit 3
+fi
+
set -x
apt-get -y install rsync git-core
@@ -26,7 +32,7 @@ fi
hostname $cmd_hostname
perl -pi -e "s,#COSMOS_REPO_MODELS=.*,COSMOS_REPO_MODELS=\"\\\$COSMOS_REPO/global/:\\\$COSMOS_REPO/$cmd_hostname/\"," /etc/cosmos/cosmos.conf
-perl -pi -e 's,#COSMOS_UPDATE_VERIFY_GIT_TAG_PATTERN=.*,COSMOS_UPDATE_VERIFY_GIT_TAG_PATTERN="eduid-cosmos*",' /etc/cosmos/cosmos.conf
+perl -pi -e 's,#COSMOS_UPDATE_VERIFY_GIT_TAG_PATTERN=.*,COSMOS_UPDATE_VERIFY_GIT_TAG_PATTERN="${cmd_tags}*",' /etc/cosmos/cosmos.conf
env COSMOS_BASE=/var/cache/cosmos COSMOS_KEYS=/var/cache/cosmos/repo/global/overlay/etc/cosmos/keys /var/cache/cosmos/repo/global/post-tasks.d/015cosmos-trust
diff --git a/global/post-tasks.d/015cosmos-trust b/global/post-tasks.d/015cosmos-trust
index dfd8a13..447d875 100755
--- a/global/post-tasks.d/015cosmos-trust
+++ b/global/post-tasks.d/015cosmos-trust
@@ -11,7 +11,7 @@ done
for fp in `cosmos gpg --with-colons --fingerprint | awk -F: '$1 == "pub" {print $5}'`; do
seen="no"
- for k in /etc/cosmos/keys/*.pub; do
+ for k in $COSMOS_KEYS/*.pub; do
cosmos gpg --with-colons --with-fingerprint < $k | grep -q ":$fp:" && seen="yes"
done
if [ "x$seen" = "xno" ]; then