Difference between revisions of "Migrate images manually"

From FOG Project
Jump to: navigation, search
(using NFS)
(Image files)
 
(10 intermediate revisions by one other user not shown)
Line 1: Line 1:
This describes how to manually migrate an image or all images to another server.
+
This describes how to manually migrate all images to a new server.
 +
 
 +
Related article: [[Migrate FOG]]
 +
 
 +
= Image directory =
 +
 
 +
Make sure your image directory on the destination server has the hidden marker files:
 +
 
 +
<pre>touch /images/.mntcheck /images/dev/.mntcheck</pre>
  
 
= Image files =
 
= Image files =
  
Below, are many options for migrating an individual image. If you wanted to migrate all images, just change the source/destination paths in the below commands to <font color="red">/images</font>  Also, where you see x.x.x.x, this is the old storage node's IP address. These commands are written to be run on the new storage node.
+
Below are many options for migrating all images. This article assumes you have FOG installed already on the new server, because the installer would setup FTP and NFS for you. Fog doesn't setup Samba but an example of how to use a Samba share is included. Where you see x.x.x.x, this is the old storage node's IP address. These commands are written to be run on the new storage node, however they can be altered to run on the old storage node.
  
 
== using lftp ==
 
== using lftp ==
  
 
<pre>lftp -c 'open x.x.x.x; user UserGoesHere PasswordHere; mirror -e /images/TheImagePath /images/TheImagePath; quit'</pre>
 
<pre>lftp -c 'open x.x.x.x; user UserGoesHere PasswordHere; mirror -e /images/TheImagePath /images/TheImagePath; quit'</pre>
 +
 +
Example:
 +
 +
<pre>
 +
lftp -c 'open 10.0.0.4; user fog MyAwesomePassword; mirror -e /images /images; quit'
 +
</pre>
 +
  
 
== using NFS ==
 
== using NFS ==
 
'''Copying one image example:'''
 
  
 
<pre>
 
<pre>
mount x.x.x.x:/<remote directory> <local directory>
+
mount x.x.x.x:/<remote source> <local mount point>
cp -R /mbimages/Optiplex9020UEFI /images/Optiplex9020UEFI
+
cp -R /<local mount point>/* /<local destination>
umount <local directory>
+
umount <local mount point>
 
</pre>
 
</pre>
  
'''Copying all images to a new server before installing fog:'''
+
Example:
 
 
These steps are done on the fresh new server.
 
  
 
<pre>
 
<pre>
cd /
+
mkdir /tempMount
mkdir /images
+
mount 10.0.0.4:/images /tempMount
mkdir tempMount
+
cp -R /tempMount/* /images
mount x.x.x.x:/images /tempMount    #--Where x.x.x.x is the old fog server's address.
 
cd /tempMount
 
cp -R * /images
 
 
umount /tempMount
 
umount /tempMount
 
</pre>
 
</pre>
  
 
== Using Samba ==
 
== Using Samba ==
 +
 +
<pre>
 +
mkdir /LocalMountPointHere
 +
mount -t cifs //x.x.x.x/ShareNameGoesHere /LocalMountPointHere -o username=YourUsernameGoesHere -o password=YourPasswordGoesHere,noexec
 +
cp -r /LocalMountPointHere/* /DestinationHere
 +
umount /LocalMountPointHere
 +
</pre>
 +
 +
Example:
  
 
<pre>
 
<pre>
 
mkdir /tempMount
 
mkdir /tempMount
mount -t cifs //x.x.x.x/ShareNameGoesHere /tempMount -o username=YourUsernameGoesHere -o password=YourPasswordGoesHere,noexec
+
mount -t cifs //10.0.0.4/images /tempMount -o username=root -o password=MyAwesomePassword,noexec
cp -r /tempMount/ImageNameHere /images/ImageNameHere
+
cp -r /tempMount/* /images
 
umount /tempMount
 
umount /tempMount
 
</pre>
 
</pre>
Line 44: Line 61:
 
== Using SCP ==
 
== Using SCP ==
  
<pre>scp -r /images/ImageNameHere root@x.x.x.x:/images/ImageNameHere</pre>
+
<pre>scp -r root@x.x.x.x:/images/* /images</pre>
 +
 
 +
Example:
 +
 
 +
<pre>
 +
scp -r root@10.0.0.4:/images/* /images
 +
</pre>
 +
 
 +
=== Enabling ssh root access on Ubuntu/Debian ===
 +
 
 +
Install ssh
 +
<pre>
 +
apt-get install openssh-server -y
 +
</pre>
 +
 
 +
Then adjust the ssh config file to allow root to log in. The configuration file is located at <font color="red">/etc/ssh/sshd_config</font> Change the line "<font color="red">PermitRootLogin</font>" to be yes instead of whatever the default is.
 +
The line should look like this when you're done: <font color="red">PermitRootLogin yes</font>
 +
Use the text editor of your choice to do it. I like to use Vi.
 +
 
 +
<pre>
 +
vi /etc/ssh/sshd_config
 +
</pre>
 +
 
 +
Instructions on using VI: [[Vi]]
 +
 
 +
Then you should enable and restart sshd, follow steps below.
 +
 
 +
<pre>
 +
systemctl enable sshd
 +
systemctl restart sshd
 +
</pre>
 +
 
 +
You should now be able to ssh and SCP to and from your Ubuntu/Debian box.
  
 
== Using rsync ==
 
== Using rsync ==
  
 
<pre>
 
<pre>
rsync -a /images/ImageNameHere root@x.x.x.x:/images/ImageNameHere
+
rsync -a root@x.x.x.x:/images/* /images
 +
</pre>
 +
 
 +
Example:
 +
 
 +
<pre>
 +
rsync -a root@10.0.0.4:/images* /images
 
</pre>
 
</pre>
  

Latest revision as of 18:33, 26 April 2019

This describes how to manually migrate all images to a new server.

Related article: Migrate FOG

Image directory

Make sure your image directory on the destination server has the hidden marker files:

touch /images/.mntcheck /images/dev/.mntcheck

Image files

Below are many options for migrating all images. This article assumes you have FOG installed already on the new server, because the installer would setup FTP and NFS for you. Fog doesn't setup Samba but an example of how to use a Samba share is included. Where you see x.x.x.x, this is the old storage node's IP address. These commands are written to be run on the new storage node, however they can be altered to run on the old storage node.

using lftp

lftp -c 'open x.x.x.x; user UserGoesHere PasswordHere; mirror -e /images/TheImagePath /images/TheImagePath; quit'

Example:

lftp -c 'open 10.0.0.4; user fog MyAwesomePassword; mirror -e /images /images; quit'


using NFS

mount x.x.x.x:/<remote source> <local mount point>
cp -R /<local mount point>/* /<local destination>
umount <local mount point>

Example:

mkdir /tempMount
mount 10.0.0.4:/images /tempMount
cp -R /tempMount/* /images
umount /tempMount

Using Samba

mkdir /LocalMountPointHere
mount -t cifs //x.x.x.x/ShareNameGoesHere /LocalMountPointHere -o username=YourUsernameGoesHere -o password=YourPasswordGoesHere,noexec
cp -r /LocalMountPointHere/* /DestinationHere
umount /LocalMountPointHere

Example:

mkdir /tempMount
mount -t cifs //10.0.0.4/images /tempMount -o username=root -o password=MyAwesomePassword,noexec
cp -r /tempMount/* /images
umount /tempMount

Using SCP

scp -r root@x.x.x.x:/images/* /images

Example:

scp -r root@10.0.0.4:/images/* /images

Enabling ssh root access on Ubuntu/Debian

Install ssh

apt-get install openssh-server -y

Then adjust the ssh config file to allow root to log in. The configuration file is located at /etc/ssh/sshd_config Change the line "PermitRootLogin" to be yes instead of whatever the default is. The line should look like this when you're done: PermitRootLogin yes Use the text editor of your choice to do it. I like to use Vi.

vi /etc/ssh/sshd_config

Instructions on using VI: Vi

Then you should enable and restart sshd, follow steps below.

systemctl enable sshd
systemctl restart sshd

You should now be able to ssh and SCP to and from your Ubuntu/Debian box.

Using rsync

rsync -a root@x.x.x.x:/images/* /images

Example:

rsync -a root@10.0.0.4:/images* /images

Image Definitions

Image definitions are what's stored in the database, and what is displayed in the web interface. There are DB entries for each image. Image definitions do not automatically appear just because the image files are present on the storage node, this is a common misconception.

You may recreate these manually, but you must recreate them exactly as they were on the old server. The image path must be exact and is case sensitive, the image OS and image type must be set exactly as in the old server as well.

The easiest option is to use FOG's export/import feature inside of Image Management.