Puppet/Запуск puppetry (пример с libvirt): различия между версиями
м (→Используем машину как исходник для клонирования: Посмотрите, что получилось) |
м (renamed my machines (according to a more universal naming scheme)) |
||
Строка 55: | Строка 55: | ||
Пример: <pre> | Пример: <pre> | ||
virt-install --virt-type kvm \ | virt-install --virt-type kvm \ | ||
--name imz-puppet- | --name imz-puppet-master-ALT0 \ | ||
--memory 1024 --disk size=10 \ | --memory 1024 --disk size=10 \ | ||
--cdrom /space/iso/nightly/tested/regular-lxde-latest-x86_64.iso \ | --cdrom /space/iso/nightly/tested/regular-lxde-latest-x86_64.iso \ | ||
Строка 62: | Строка 62: | ||
</pre> | </pre> | ||
* {{cmd|1=--name '''imz-puppet- | * {{cmd|1=--name '''imz-puppet-master-ALT0'''}} -- какое-нибудь имя; | ||
* {{path|regular-lxde-latest-x86_64.iso}} выбран как небольшой образ для инсталляции системы с {{prg|systemd}} (сначала грузится LiveCD, что пока не важно, хотя есть планы тестировать puppet-мастер прямо с LiveCD); | * {{path|regular-lxde-latest-x86_64.iso}} выбран как небольшой образ для инсталляции системы с {{prg|systemd}} (сначала грузится LiveCD, что пока не важно, хотя есть планы тестировать puppet-мастер прямо с LiveCD); | ||
* {{cmd|1=--network network='''...'''}} прокомментирован выше в [[#Создание сети]]; | * {{cmd|1=--network network='''...'''}} прокомментирован выше в [[#Создание сети]]; | ||
Строка 116: | Строка 116: | ||
ssh '''user@192.168.121.2''' -t su -c /sbin/poweroff; ping '''192.168.121.2''' | ssh '''user@192.168.121.2''' -t su -c /sbin/poweroff; ping '''192.168.121.2''' | ||
virt-clone --original '''imz-puppet- | virt-clone --original '''imz-puppet-master-ALT0''' --auto-clone | ||
Посмотрите, что получилось:<pre> | Посмотрите, что получилось:<pre> | ||
[root@vb ~]# diff -du <(virsh dumpxml imz-puppet- | [root@vb ~]# diff -du <(virsh dumpxml imz-puppet-master-ALT0) <(virsh dumpxml imz-puppet-master-ALT0-clone) | ||
--- /dev/fd/63 2017-01-24 14:04:17.089573354 +0300 | --- /dev/fd/63 2017-01-24 14:04:17.089573354 +0300 | ||
+++ /dev/fd/62 2017-01-24 14:04:17.089573354 +0300 | +++ /dev/fd/62 2017-01-24 14:04:17.089573354 +0300 | ||
@@ -1,6 +1,6 @@ | @@ -1,6 +1,6 @@ | ||
<domain type='kvm'> | <domain type='kvm'> | ||
- <name>imz-puppet- | - <name>imz-puppet-master-ALT0</name> | ||
- <uuid>887ffdb5-3222-4717-8b13-820c1ba543ad</uuid> | - <uuid>887ffdb5-3222-4717-8b13-820c1ba543ad</uuid> | ||
+ <name>imz-puppet- | + <name>imz-puppet-master-ALT0-clone</name> | ||
+ <uuid>463057db-4470-4b6a-b44b-6f19d8040793</uuid> | + <uuid>463057db-4470-4b6a-b44b-6f19d8040793</uuid> | ||
<memory unit='KiB'>1048576</memory> | <memory unit='KiB'>1048576</memory> | ||
Строка 135: | Строка 135: | ||
<disk type='file' device='disk'> | <disk type='file' device='disk'> | ||
<driver name='qemu' type='qcow2'/> | <driver name='qemu' type='qcow2'/> | ||
- <source file='/var/lib/libvirt/images/imz-puppet- | - <source file='/var/lib/libvirt/images/imz-puppet-master-ALT0.qcow2'/> | ||
+ <source file='/var/lib/libvirt/images/imz-puppet- | + <source file='/var/lib/libvirt/images/imz-puppet-master-ALT0-clone.qcow2'/> | ||
<target dev='vda' bus='virtio'/> | <target dev='vda' bus='virtio'/> | ||
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> | <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> | ||
Строка 163: | Строка 163: | ||
==Запуск машин== | ==Запуск машин== | ||
{{cmd|virsh start '''imz-puppet- | {{cmd|virsh start '''imz-puppet-master-ALT0'''}} | ||
Работа с машинами происходит подключением через {{prog|virt-manager}} или по {{prog|ssh}} с хост-системы-гипервизора. | Работа с машинами происходит подключением через {{prog|virt-manager}} или по {{prog|ssh}} с хост-системы-гипервизора. |
Версия от 16:30, 24 января 2017
- цель
(Об оформлении. Изменяемые (по вкусу каждого пользователя) параметры в примерах я старался выделять жирным, чтобы можно было их легко отличить от определённых не нами штук с жёстко заданными именами.)
Создание сети
- цель
- В сети у нас будет свой DNS (для обращения к puppet по имени), и для удобства -- свой DHCP-сервер. При этом хотелось бы сохранить возможность выхода в "интернет" (сеть хост-системы).
Такая сеть таким образом (как нам нужно) будет использоваться, когда машина будет создаваться virt-install --network network=puppettheatre (а не --network bridge=BRIDGE; см. man virt-install).
командой
???
(вручную через GUI virt-manager)
(Использовался virt-manager-1.4.0-alt1.)
virt-manager > Edit > Connection Details > Virtual Networks
+ (Add Network)
Тип такой сети, как нам нужна, будет называться "Isolated Physical Network".
Параметры в итоге получаются такие:
- Name
puppettheatre
- Device
- some
vibr
NN - Domain
theatre
(??? для чего используется? для чего важно?)- Network
- e.g.,
192.168.121.0/24
- Gateway
- будет автоматически выставлен в
192.168.121.1
; - Static routing
- наверное, не нужно;
- DHCP range
- Disabled
- Forwarding
- NAT
Создание машины с ALTовым puppet-мастером
командой
???
(вручную через GUI инсталлятора alterator через virt-viewer)
(Использовался virt-viewer-5.0-alt1.)
Пример:
virt-install --virt-type kvm \ --name imz-puppet-master-ALT0 \ --memory 1024 --disk size=10 \ --cdrom /space/iso/nightly/tested/regular-lxde-latest-x86_64.iso \ --network network=puppettheatre \ --os-variant altlinux7
- --name imz-puppet-master-ALT0 -- какое-нибудь имя;
- regular-lxde-latest-x86_64.iso выбран как небольшой образ для инсталляции системы с systemd (сначала грузится LiveCD, что пока не важно, хотя есть планы тестировать puppet-мастер прямо с LiveCD);
- --network network=... прокомментирован выше в #Создание сети;
- --os-variant altlinux7 просто выбран как самый старший из известных ему ALTовых.
Запуск машины
См. #Запуск машин.
Конфигурация сети на машине
(Конфигурация сети на машине задаётся, конечно, вручную -- во время инсталляции или через alterator или привычным образом через конф.файлы.)
[user@puppet ~]$ tail /etc/sysconfig/network /etc/net/ifaces/eth0/* ==> /etc/sysconfig/network <== # Used by hotplug/pcmcia/ifplugd scripts to detect current network config # subsystem. CONFMETHOD=etcnet # Used by rc.sysinit to setup system hostname at boot. HOSTNAME=puppet.localdomain # This is used by ALTLinux ppp-common to decide if we want to install # nameserver lines into /etc/resolv.conf or not. RESOLV_MODS=yes ==> /etc/net/ifaces/eth0/ipv4address <== 192.168.121.2/24 ==> /etc/net/ifaces/eth0/ipv4route <== default via 192.168.121.1 ==> /etc/net/ifaces/eth0/options <== TYPE=eth CONFIG_WIRELESS=no BOOTPROTO=static CONFIG_IPV4=yes ==> /etc/net/ifaces/eth0/resolv.conf <== nameserver 10.4.0.1 [user@puppet ~]$
- Здесь имя машины сделано
puppet
специально. - IP-адрес назначен произвольно из доступного диапазона. (Один из адресов этой сети уже использован для шлюза -- хост-системы с гипервизором.)
- Т.к. в сети есть NAT для связи со внешним миром, мы можем использовать наш реальный DNS из внешнего мира. (Был прописан вручную, конечно.)
Напоследок включим sshd для входа по сети (правда, только с хочт-системы, потому что IP нашей виртуальной машины за NAT.)
Используем машину как исходник для клонирования
Прежде, чем что-то делать с машиной, используем её как исходник для клонирования и создания других (подчинённых) нод с ALT, чтобы не повторять инсталляцию вручную.
Думаю, удобно будет её сохранить в первоначальном виде и не трогать эту копию. (А копию уже использовать как исходник для всяких ALTовых нод.)
ssh user@192.168.121.2 -t su -c /sbin/poweroff; ping 192.168.121.2 virt-clone --original imz-puppet-master-ALT0 --auto-clone
Посмотрите, что получилось:
[root@vb ~]# diff -du <(virsh dumpxml imz-puppet-master-ALT0) <(virsh dumpxml imz-puppet-master-ALT0-clone) --- /dev/fd/63 2017-01-24 14:04:17.089573354 +0300 +++ /dev/fd/62 2017-01-24 14:04:17.089573354 +0300 @@ -1,6 +1,6 @@ <domain type='kvm'> - <name>imz-puppet-master-ALT0</name> - <uuid>887ffdb5-3222-4717-8b13-820c1ba543ad</uuid> + <name>imz-puppet-master-ALT0-clone</name> + <uuid>463057db-4470-4b6a-b44b-6f19d8040793</uuid> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>1</vcpu> @@ -32,7 +32,7 @@ <emulator>/usr/bin/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> - <source file='/var/lib/libvirt/images/imz-puppet-master-ALT0.qcow2'/> + <source file='/var/lib/libvirt/images/imz-puppet-master-ALT0-clone.qcow2'/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </disk> @@ -65,7 +65,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <interface type='network'> - <mac address='52:54:00:60:5e:ca'/> + <mac address='52:54:00:e3:ae:bd'/> <source network='puppettheatre'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> [root@vb ~]#
Создание подчинённой машины с ALTом
командой
???
вручную -- склонируем созданную вручную машину
Для простоты склонируем созданную вручную машину; у нас уже заготовлена копия; её склонируем и сконфигурируем потом:
....
Запуск машин
virsh start imz-puppet-master-ALT0
Работа с машинами происходит подключением через Шаблон:Prog или по Шаблон:Prog с хост-системы-гипервизора.