Difference between revisions of "Cloning"
(more on cloning) |
|||
Line 53: | Line 53: | ||
== Partition Image == | == Partition Image == | ||
'''[http://www.partimage.org/ Partition Image]''' is a semi-automated tool for replicating a Linux partition to multiple targets. It is particularly useful as a system cloning tool, and has many uses for data backup and archiving of whole disks or partitions. | '''[http://www.partimage.org/ Partition Image]''' is a semi-automated tool for replicating a Linux partition to multiple targets. It is particularly useful as a system cloning tool, and has many uses for data backup and archiving of whole disks or partitions. | ||
+ | |||
+ | == Replicating a PHP installation == | ||
+ | If you want to know what PHP packages are installed, you can do the following | ||
+ | <source lang="bash"> | ||
+ | # On system A, get a list of the php packages that are installed | ||
+ | dpkg --get-selections |grep -v deinstall | grep php5- | awk 'ORS=" " { print $1 }' | ||
+ | # On system B, install those packages | ||
+ | sudo apt-get install [LIST FROM A] | ||
+ | </source> | ||
[[Category:Howto]] | [[Category:Howto]] |
Revision as of 08:41, 17 April 2015
Once you have backups, you can and should test the ability to restore those backups to a new hardware environment. The restore procedure is going to depend on what you used to create your "image" in the first place. Independent of the notion of backups, a system administrator (or even an experienced user) will want to "clone" a computer system. That is make an identical copy or nearly identical copy of a computer on different hardware. The most widespread use-case for this is when a person gets a new computer and wants to migrate the old computer software and data to the new hardware. From the system administrator's perspective, the common use case is different: it's when you have to build out a cluster, provide redundancy, or otherwise scale a hardware/software platform.
Consider all the times that you could produce a system that you wish to replicate. For example, a standard "Developer's Workstation" or "Designer's Studio" or "Student Desktop" and many more technical varieties like "Web Front-end", "Mail Relay" etc.
Contents
Apt-get --set-selections[edit | edit source]
One way to do this on Debian-based systems (including Ubuntu) is to use dpkg
get/set-selections in combination with apt-get
using it's dselect-upgrade option:
To clone the package installation state of System A to System B do the following:
on System A[edit | edit source]
sudo dpkg --get-selections > package-list.txt
copy package-list.txt from System A to System B
on System B[edit | edit source]
sudo dpkg --set-selections < package-list.txt
sudo apt-get -u dselect-upgrade
You might get 'database' errors, in which case you should install dselect
and update that as well (all as root, or with sudo):
apt-get update
apt-get install dselect
dselect update
apt-get -u dselect-upgrade
There are other tools to do the job too, and the tools you want to use for this depend on how automated you aim for this task to be, and how much you need/want to be able to customize each machine as it's being installed.
KickStart[edit | edit source]
Kickstart is a Red Hat package that deploys Red Hat to multiple installation targets with minimal customisation. Aside from the wiki, it is also covered in the Installation Guide for RedHat Enterprise Linux
System Imager[edit | edit source]
SystemImager is a third-party tool that does a better job. http://systemimager.org/
Fully Automated Install[edit | edit source]
fai (fully automated install) is a Debian-based tool to do likewise. Like System Imager, it's suitable for building clusters. See the
Replicator[edit | edit source]
Replicator seems like it could use some volunteers to expand. http://replicator.sourceforge.net/ It tries to do some customization for differences in hard disk sizes, video cards, etc. You may want to check it out.
Partition Image[edit | edit source]
Partition Image is a semi-automated tool for replicating a Linux partition to multiple targets. It is particularly useful as a system cloning tool, and has many uses for data backup and archiving of whole disks or partitions.
Replicating a PHP installation[edit | edit source]
If you want to know what PHP packages are installed, you can do the following
# On system A, get a list of the php packages that are installed
dpkg --get-selections |grep -v deinstall | grep php5- | awk 'ORS=" " { print $1 }'
# On system B, install those packages
sudo apt-get install [LIST FROM A]