рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдмрдпрд╛рди
рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди
рдХрд╛рдо рдбреЗрдмрд┐рдпрди рдЬреАрдПрдирдпреВ / рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рднреМрддрд┐рдХ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдХреНрд╕рд░ рдЗрди рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рдХреНрд▓реЛрди рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╣рд░ рдмрд╛рд░ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рдХреНрд▓реЛрди рдХрд░рдирд╛ рдЕрдХреНрд╖рдо рд╣реИред рдиреЛрдЯ: рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рддрд░рдг рд╡рд░реНрдгрд┐рдд рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдХрд┐рд╕реА рднреА рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рд╕реБрдВрджрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░
рдХрд╛рд░реНрдп
рдореБрдХреБрдЯ рджреНрд╡рд╛рд░рд╛ рд▓рдбрд╝рд╛рдХреВ рдорд╢реАрдиреЛрдВ рдХреЛ рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдореЗрдВ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдПрдВред
рдХреНрдпрд╛ рд╣реБрдЖ?
virt_server> p2v.py foo full WORKING WITH SERVER: 'foo' READING CONFIG FOR 'foo' CHECKING LOCAL CONFIG CHECKING LOCAL CONFIG FOR 'foo' COMPLETED SUCCESSFULLY CHECKING REMOTE CONFIG CHECKING NODUMP FLAG: "lsattr -d /home/backupman/dumps | egrep '[\\w-]+d[\\w-]+[ ]/data/dumps'" CHECKING REMOTE DUMP: 'sudo /sbin/dump a0f /dev/null /dev/null' CHECKING IF WE ARE ABLE TO SSH TO: "ssh -T backupman@foo 'if [ -d /data/dumps ] ; then exit 0 ; else exit 1 ; fi'" CHECKING REMOTE CONFIG FOR 'foo' COMPLETED SUCCESSFULLY DUMPING FILESYSTEMS GETTING THE DUMPS STOPPING VM: foo2 MAKING FS TYPE: ext3 ON PARTITION: /dev/mapper/foo RESTORING DUMPS FOR: foo INSTALLING BOOTLOADER FOR: foo RESTORING CONFIG FOR: foo STARTING VM: /etc/xen/foo.xm
рдХреИрд╕реЗ рдХрд┐рдпрд╛
рд▓рдбрд╝рд╛рдИ рд╕рд░реНрд╡рд░ рдХреНрд▓реЛрдирд┐рдВрдЧ
рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рдмрд╕реЗ рддреЗрдЬреА рд╕реЗ рддрд░реАрдХреЗ рд╕реЗ рдПрдХ рд▓рдбрд╝рд╛рдХреВ рд╕рд░реНрд╡рд░ рдХреЛ рдХреНрд▓реЛрди рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ:
dump
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдпрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдбрдВрдк рдмрдирд╛рдирд╛ред рд╡рд┐рдЪрд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ:
- рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рд▓рд╛рдЗрд╡ FS рдбрдВрдк рдХрд░рдиреЗ рдкрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рдмреИрдХрдЕрдк рдирд╣реАрдВ рд╣реИред рдЕрдиреБрднрд╡ рд╕реЗ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдореБрдЭреЗ рдЕрднреА рддрдХ рдЯреВрдЯреА рд╣реБрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд╣реИ
- рд╕рд░реНрд╡рд░ рдбрдВрдк рдЬрд▓реНрджреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
- рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд╕рд╛рде рдПрдХ рдбрдВрдк рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдХреЙрдкреА рдХрд░рдирд╛ред рдореИрдВ рдХрдм рд╕реЗ
scp
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБ рд╣рдорд╛рд░реА рдЧрддрд┐ рд╕реЗ, рдЯреЛрдВрдЯреА рдЕрднреА рднреА рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдХреЗ рджреМрд░рд╛рди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рднрдпрд╛рдирдХ рдирд╣реАрдВ рд╣реИ restore
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдкреВрд░реНрд╡-рдЖрд╡рдВрдЯрд┐рдд рдПрд▓рд╡реАрдПрдо рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдбрдВрдк рдХреА рддреИрдирд╛рддреА рдХрд░реЗрдВ- рдмреВрдЯрд▓реЛрдбрд░ рд╕реНрдерд╛рдкрдирд╛
- рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди (
/etc/network/interfaces, /etc/hostname, /etc/mailname, /etc/aliases
, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП /etc/network/interfaces, /etc/hostname, /etc/mailname, /etc/aliases
- рдирдП рд╕рд┐рд░реЗ рд╕реЗ рддреИрдпрд╛рд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░рдирд╛ред
рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╡рд░реНрдЪреБрдЕрд▓рд╛рдЗрдЬреЗрд╢рди рдкреНрд░рдгрд╛рд▓реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрд▓рд╡реАрдПрдо рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рд╣реИред рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдПрдХреНрд╕рдИрдПрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕рд░реНрд╡рд░
virt_server
, рд╕рд╛рде рд╣реА рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рднреМрддрд┐рдХ рд╕рд░реНрд╡рд░
server1
ред
virt_server
1 рдХреНрд▓реЛрди рдХреЗ рд▓рд┐рдП virt_server
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди virt_server
рдореЗрдВ /etc/xen/server1.xm
рдкрд░ рдирд┐рд╣рд┐рдд рд╣реИserver1
1 рдХрд╛ LVM рд╡рд┐рднрд╛рдЬрди рд╣реИ: /dev/mapper/server1
- рд╣рдо
virt_server:/dumps/server1
server1:/dumps/server1/
, рдФрд░ рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП virt_server:/dumps/server1
- рдЪреЗрдВрдЬ рдХрд┐рдП рдЧрдП
virt_server:/dumps/server1/cfg/
1 virt_server:/dumps/server1/cfg/
рдХреЛ virt_server:/dumps/server1/cfg/
рд░реВрдк рд╕реЗ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ virt_server:/dumps/server1/cfg/
рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
server1
backupman
рдкрд░
backupman
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдмрд┐рдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдЙрд╕реЗ
backupman
sudo dump
рдЕрдиреБрдорддрд┐ рджреЗрдВред
virt_server
рдЖрдкрдХреЛ
backupman@server1
рдкрд░ рдореБрдЦреНрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
virt_server
рд╣рдо рд╕рдм рдХреБрдЫ рдЬрдбрд╝ рд╕реЗ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдХрдВрд╕реЛрд▓ рд╕реЗ рдХреНрд▓реЛрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
root@virt_server> xm destroy server1 root@virt_server> ssh backupman@server1 backupman@server1$ sudo dump -a0f /dumps/server1.root / backupman@server1$ for i in var usr home ; do sudo dump a0f /dumps/server1.$i /$i ; done backupman@server1$ exit root@virt_server> scp backupman@server1:/dumps/server1.* /dumps/server1/ root@virt_server> mkfs.ext4 /dev/mapper/server1 root@virt_server> mount /dev/mapper/server1 /mnt/server1 root@virt_server> cd /mnt/server1 root@virt_server> restore -rf /dumps/server1.root root@virt_server> for i in var usr home ; do cd /mnt/$i && restore /dumps/server1.$i ; done root@virt_server> dd if=/usr/share/syslinux/mbr.bin of=/dev/mapper/server1 root@virt_server> extlinux --install /dev/mapper/server1 root@virt_server> scp -R /dumps/server1/cfg/* /mnt/server root@virt_server> xm start server1.xm
рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪрд╛рд▓рди
рдЕрдм рдЬрдм рд╕рд░реНрд╡рд░ рдХреНрд▓реЛрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╕реНрдкрд╖реНрдЯ рд╣реИ, рддреЛ рдЖрдк рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╕рд░реНрд╡рд░ рдХреЛ рдХреИрд╕реЗ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛рдП
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрд░реНрдХ рд╕рд░реНрд╡рд░ рдирд╛рдо рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВ
- Skrpit рд╕рд░реНрд╡рд░ рдирд╛рдо рдХреЗ рдирд╛рдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдХреНрд▓реЛрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ
- рд░рд╛рдд рдореЗрдВ рддрд╛рдЬ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рддреА рд╣реИ
- ????
- рд▓рд╛рдн!
рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓реЛрди рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕рд░реНрд╡рд░ рдкрд░, рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
- рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдкрд╛рд░реНрдЯреАрд╢рди рдмрдирд╛рдПрдВ
- рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
рдХреНрд▓реЛрди рдХрд┐рдП рдЧрдП рд╕рд░реНрд╡рд░ рдкрд░, рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░реЗрдВ:
dump
рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВbackupman
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ- рдЗрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ / etc / sudoers рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдбрдВрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ:
backupman ALL=NOPASSWD: /sbin/dump
- рдбрдВрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдБ
- рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ
chattr +d
рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рдбрдВрдк рди рдХрд░реЗрдВ - рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдХреНрд▓реЛрди рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдХреЗ рдЙрддреНрддрд░ рд╕реЗ ssh рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ
рд▓рд┐рдкрд┐ рд╡рд┐рдиреНрдпрд╛рд╕
рдорд╛рдирдХ .ini рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╡рд┐рдиреНрдпрд╛рд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
[server1] vm_config = /etc/xen/server1.xm vm_name = server1 ssh = backupman@server1.site scp = backupman@server1.site dumps_list = /,/var,/usr,/home remote_dumps_dir = /home/bakupman/dumps local_dumps_dir = /dumps/server1 mount_dir = /mnt/server1 partition = /dev/mapper/server1 fs = ext3
ssh
рдФрд░
scp
рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреНрд░рдорд╢рдГ
ssh
рдФрд░
scp
рдХреЙрд▓реНрд╕ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпреЗ рджреЛрдиреЛрдВ рддрдм рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ
ssh
рдкреЛрд░реНрдЯ рдХреЛ
-p
рд╕реНрд╡рд┐рдЪ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
scp
, рд╕реНрд╡рд┐рдЪ рдХреЛ
-P
рд╕рд╛рде рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реА
рдореИрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдиреЗ рдХреА рдмрд╛рдд рдирд╣реАрдВ рджреЗрдЦрддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЧреАрдереВрдм рдкрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд╕рд░реНрд╡рд░ рдирд╛рдо, рдЬреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдирд╛рдо рд╣реИ, рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИред
рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреНрдпрд╛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреВрд░реНрдг рдХреНрд▓реЛрдирд┐рдВрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд░реНрд╡рд░ рдбрдВрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдореМрдЬреВрджрд╛ рдбрдВрдк рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
def main(): """Main function, calls all other ones""" if len(sys.argv) < 3: sys.exit('Usage: %s <servername> <action> (check|full|dump|get|restore)' % sys.argv[0]) server = sys.argv[1] action = sys.argv[2] print "\nWORKING WITH SERVER: %r\n" % server if action == "check": try: conf=read_config(server) check_config_local(conf) check_config_remote(conf except Exception, e: sys.exit("\nERROR: %r\n" % e) elif action == "full": try: conf=read_config(server) check_config_local(conf) check_config_remote(conf) stop_vm(conf) dump_physical(conf) get_dumps(conf) restore_vm(conf) install_bootloader(conf) restore_config(conf) start_vm(conf) except Exception, e: cleanup(conf) sys.exit("\nERROR: %r\n" % e) <...>
рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдХрд╛рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрд░рдЪрд┐рдд рд╣реИ рдХрд┐ рдЕрдЧрд░ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкреВрд░реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИ, рддреЛ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдпрджрд┐ рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╕ рдЙрди рд╕рднреА рдЖрджреЗрд╢реЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдХрдВрд╕реЛрд▓ рд╕реЗ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╕рдмрд╕реЗ "рдХрдард┐рди" рд╣рд┐рд╕реНрд╕рд╛ рдЬрд╛рдБрдЪ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ:
def check_config_local(conf): """Checks config by trying to ssh, checking existence of local and remote folders, destination partition, mount point, and remote dump utility""" print "\nCHECKING LOCAL CONFIG\n"
рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╕рд░реНрд╡рд░ рдкрд░ рдореЗрд░рд╛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЗрди рд╡рд░реНрдЧреЛрдВ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, LVM рд╕реНрд╡рдпрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирд╛рдорд┐рдд рд╡рд┐рднрд╛рдЬрди рдкрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдлрд┐рд░ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдЖрдХрд╕реНрдорд┐рдХ рд╡рд┐рдирд╛рд╢ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рднрд╛рдЬрди рдпрд╣рд╛рдВ рджрд░реНрдЬ рдХрд░реЗрдВред
GitHub
рдмрд╕ рдЗрддрдирд╛ рд╣реА, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдпрд╣рд╛рдВ рд▓реА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
github.com/sistemshik/p2v