Andrew Bogott has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/225332

Change subject: Set up a keypair for cold migration.
......................................................................

Set up a keypair for cold migration.

Bug: T106145
Change-Id: Iafd5161829c6098dd5a98608c678a77caefb2f03
---
M modules/openstack/files/icehouse/virtscripts/cold-migrate
M modules/openstack/manifests/adminscripts.pp
M modules/openstack/manifests/nova/compute.pp
3 files changed, 67 insertions(+), 19 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/32/225332/1

diff --git a/modules/openstack/files/icehouse/virtscripts/cold-migrate 
b/modules/openstack/files/icehouse/virtscripts/cold-migrate
index 1f64726..2043028 100755
--- a/modules/openstack/files/icehouse/virtscripts/cold-migrate
+++ b/modules/openstack/files/icehouse/virtscripts/cold-migrate
@@ -3,12 +3,8 @@
 ### THIS FILE IS MANAGED BY PUPPET
 ### puppet:///modules/openstack/icehouse/virtscripts/cold-migrate
 #####################################################################
-ssh-add -l > /dev/null
-if [ "$?" != "0" ]
-then
-       echo "You must have a forwarded agent to use this script"
-       exit 1
-fi
+source ~/novaenv.sh
+
 if [ "$#" -ne 2 ]; then
        echo "Usage:  $0 <instance-id> <destination-host>"
        exit 1
@@ -115,3 +111,7 @@
 echo "Rebooting the instance"
 echo ""
 nova start ${INSTANCE}
+echo "  ----    note  ---  "
+echo "For safety, the instance files on the old host (${FROMHOST}) have not 
been removed."
+echo "After verifying that the migration has completed safely, ssh to 
${FROMHOST} and"
+echo "  rm -rf /var/lib/nova/instances/${INSTANCE}"
diff --git a/modules/openstack/manifests/adminscripts.pp 
b/modules/openstack/manifests/adminscripts.pp
index a350dec..8f43f10 100644
--- a/modules/openstack/manifests/adminscripts.pp
+++ b/modules/openstack/manifests/adminscripts.pp
@@ -17,21 +17,10 @@
 
     # Script to cold-migrate instances between compute nodes
     file { '/root/cold-migrate':
-        ensure => present,
-        source => 
"puppet:///modules/openstack/${openstack_version}/virtscripts/cold-migrate",
-        mode   => '0755',
-        owner  => 'root',
-        group  => 'root',
+        ensure => absent,
     }
-
-    # Script to migrate instance from one dc to another
-    # (specifically, pmtpa to eqiad)
     file { '/root/dc-migrate':
-        ensure => present,
-        source => 
"puppet:///modules/openstack/${openstack_version}/virtscripts/dc-migrate",
-        mode   => '0755',
-        owner  => 'root',
-        group  => 'root',
+        ensure => absent,
     }
 
     # Log analysis tool
diff --git a/modules/openstack/manifests/nova/compute.pp 
b/modules/openstack/manifests/nova/compute.pp
index 073c259..0e8052e 100644
--- a/modules/openstack/manifests/nova/compute.pp
+++ b/modules/openstack/manifests/nova/compute.pp
@@ -175,4 +175,63 @@
         description  => 'nova-compute process',
         nrpe_command => "/usr/lib/nagios/plugins/check_procs -c 1: 
--ereg-argument-array '^/usr/bin/python /usr/bin/nova-compute'",
     }
+
+    # Set up users and scripts to permit cold-migration between compute nodes.
+    # This requires a keypair for scp
+    user { 'novamigrate':
+        ensure     => present,
+        name       => 'novamigrate',
+        shell      => '/bin/sh',
+        comment    => 'nova user for cold-migration',
+        gid        => 'nova',
+        managehome => true,
+        require    => Package['nova-compute'],
+        system     => true,
+    }
+    ssh::userkey { 'novamigrate':
+        content  => secret('novamigrate/novamigrate.pub'),
+        require  => user['novamigrate'],
+        ensure   => present,
+    }
+    file { '/home/novamigrate/.ssh':
+        ensure  => directory,
+        owner   => 'novamigrate',
+        group   => 'nova',
+        mode    => '0700',
+        require => user['novamigrate'],
+    }
+    file { '/home/novamigrate/.ssh/id_rsa':
+        content => secret('novamigrate/novamigrate'),
+        owner   => 'novamigrate',
+        group   => 'nova',
+        mode    => '0600',
+        require => File['/home/novamigrate/.ssh'],
+    }
+
+    # Script to cold-migrate instances between compute nodes
+    file { '/home/novamigrate/cold-migrate':
+        ensure => present,
+        source => 
"puppet:///modules/openstack/${openstack_version}/virtscripts/cold-migrate",
+        mode   => '0755',
+        owner  => 'novamigrate',
+        group  => 'nova',
+    }
+
+    # Script to migrate instance from one dc to another
+    # (specifically, pmtpa to eqiad)
+    file { '/home/novamigrate/dc-migrate':
+        ensure => present,
+        source => 
"puppet:///modules/openstack/${openstack_version}/virtscripts/dc-migrate",
+        mode   => '0755',
+        owner  => 'novamigrate',
+        group  => 'nova',
+    }
+
+    # Handy script to set up environment for commandline nova magic
+    file { '/home/novamigrate/novaenv.sh':
+        content => template('openstack/novaenv.sh.erb'),
+        mode    => '0755',
+        owner   => 'novamigrate',
+        group   => 'nova',
+    }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/225332
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Iafd5161829c6098dd5a98608c678a77caefb2f03
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Andrew Bogott <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to