Cloning

Материал из wiki.nntc.nnov.ru
Версия от 01:09, 27 ноября 2021; Vovan (обсуждение | вклад) (dd, nc, ansible (клонирование "гирляндой"))
Перейти к навигации Перейти к поиску

Клонирование различными способами

dd, nc, ansible (клонирование "гирляндой")

Почти как широковещательное, только лучше :-) Наверное...

apt-get install ansible
mkdir /opt/ansible_cloning
cd /opt/ansible_cloning

cat << EOF > ansible.cfg 
[defaults]
host_key_checking = false
inventory         = ./hosts.txt
EOF

cat << EOF > hosts.txt 
src  ansible_host=172.16.223.166 ansible_user=root ansible_ssh_pass=partedmagic
dst1 ansible_host=172.16.223.53  ansible_user=root ansible_ssh_pass=partedmagic
dst2 ansible_host=172.16.223.173 ansible_user=root ansible_ssh_pass=partedmagic
EOF


cat << EOF > clone.sh 
#!/bin/bash
#ansible dst1,dst2 -m shell -a "wipefs -af /dev/sda" # if need
ansible dst2 -m shell -a "nc -l -p 19000 | dd of=/dev/sda status=progress 2> /cloning.log" &
sleep 1s;
ansible dst1 -m shell -a "bash -c 'nc -l -p 19000 | tee >(dd of=/dev/sda) | nc 172.16.223.173 19000'" &
sleep 1s;
ansible src -m shell -a "dd if=/dev/sda | nc 172.16.223.53 19000"
ansible all -m shell -a "killall nc"
EOF


dd через ssh

*загрузить две машины с pmagic (определить, кто будет донором, кто реципиентом) *настроить сеть между этими машинами (обычно DHCP это делает за вас), выяснить ip-адреса донора и реципиента *на доноре дать команду dd if=/dev/устройство_донор | ssh root@ip_address_реципиента /bin/dd of=/dev/устройство_реципиент например: dd if=/dev/sda | ssh root@ip_address_реципиента /bin/dd of=/dev/sda

tar через ssh

*загрузить две машины с pmagic (определить, кто будет донором, кто реципиентом) *настроить сеть между этими машинами (обычно DHCP это делает за вас), выяснить ip-адреса донора и реципиента *смонтировать устройства в директории на доноре и реципиенте *на доноре дать команду cd /mnt/директория_донор tar cvf - . | ssh root@ip_address_реципиента 'cd /mnt/директория_реципиент; tar xf -' например: tar cvf - . | ssh root@192.168.155.9 'cd /mnt/lin; tar xf -'