summaryrefslogtreecommitdiff
path: root/clusters/upgrade-devel.morph.in
diff options
context:
space:
mode:
authorSam Thursfield <sam.thursfield@codethink.co.uk>2016-04-11 17:57:57 +0100
committerSam Thursfield <sam.thursfield@codethink.co.uk>2016-04-15 18:58:27 +0100
commit25041b86249fe763fd4171e2ab1aca535b3eb14f (patch)
treeacaa7a5268ff1aa796d1ca1a519cc0ddc4ac3d5c /clusters/upgrade-devel.morph.in
parent467bb8299ddc051855acb2093fd371e3423a0515 (diff)
downloaddefinitions-sam/easy-templating.tar.gz
Add a simple templating system to Baserock definitionssam/easy-templating
This is currently independent of the actual definitions format. The 'configure' tool generates actual .morph files from .morph.in files, and build tools then operate on these generated .morph files.t This is largely untested and no doubt broken!
Diffstat (limited to 'clusters/upgrade-devel.morph.in')
-rw-r--r--clusters/upgrade-devel.morph.in39
1 files changed, 39 insertions, 0 deletions
diff --git a/clusters/upgrade-devel.morph.in b/clusters/upgrade-devel.morph.in
new file mode 100644
index 00000000..63648f29
--- /dev/null
+++ b/clusters/upgrade-devel.morph.in
@@ -0,0 +1,39 @@
+name: upgrade-devel
+kind: cluster
+description: |
+ This is a cluster morphology that can be used to deploy systems to a
+ an existing Baserock devel system, as an upgrade of the running system.
+
+ This method is for users who deployed a system manually from one of the
+ images provided on http://download.baserock.org. IT IS ONLY POSSIBLE TO
+ UPGRADE BASEROCK 14 RELEASES OR NEWER.
+
+ If you deployed your system using `morph deploy` then you should reuse the
+ cluster morphology you did the initial deployment with, instead of this one,
+ so that the configuration is preserved in the new system.
+
+ Ensure that your root user has passwordless SSH access to localhost with
+ `ssh root@localhost whoami`. If not, run `ssh-copy-id root@localhost`.
+ Make sure the 'morph' field below matches the system you are upgrading.
+
+ To upgrade, select a sensible a value for VERSION_LABEL and run:
+
+ morph upgrade clusters/upgrade-devel.morph self.HOSTNAME=$(hostname) self.VERSION_LABEL=$VERSION_LABEL
+
+ Your configuration in /etc should be propagated to the new system, but there
+ may be merge conflicts. Check /etc for files named '.rej' and '.orig' in the
+ new system, which will indicate that there are changes from the old system
+ that must be merged manually. You can get a nice diff from the old /etc as
+ follows:
+
+ mount /dev/sda /mnt
+ git diff --no-index /mnt/systems/factory/run/etc /mnt/systems/$VERSION_LABEL/run/etc
+
+ On a base system, use 'diff -r' instead of 'git diff --no-index'. It will
+ not be as colourful.
+systems:
+- morph: systems/devel-system.{{ CONFIG }}morph
+ deploy:
+ self:
+ upgrade-type: extensions/ssh-rsync
+ upgrade-location: root@127.0.0.1