Puppet/Запуск puppetry (пример с libvirt)

Материал из ALT Linux Wiki


Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


цель
  • Виртуальная сеть с виртуальными машинами для тестирования отработки манифестов puppet на подчинённых нодах с ALT-ом.
  • Образы для таких виртуальных машин.

(Об оформлении. Изменяемые (по вкусу каждого пользователя) параметры в примерах я старался выделять жирным, чтобы можно было их легко отличить от определённых не нами штук с жёстко заданными именами.)


Создание сети

цель
В сети у нас будет свой 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 vibrNN
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ом

командой

???

вручную -- склонируем созданную вручную машину

Для простоты склонируем созданную вручную машину; у нас уже заготовлена копия; её склонируем и сконфигурируем потом:

   virt-clone --original imz-puppet-master-ALT0-clone --name imz-puppet-slave-ALT0 --auto-clone

Запуск машин

virsh start imz-puppet-master-ALT0

Работа с машинами происходит подключением через virt-manager или по ssh с хост-системы-гипервизора.