Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

17
Magdalena Wojnarowska http://itgeeks.eu/

description

Czy uważacie że przygotowanie szablonu nowej maszyny wirtualnej wymaga dużo czasu? Nie jest to prawdą. Ta prezentacja pozwoli wam na zapoznanie się z procesem tworzenia maszyn wirtualnych z wykorzystaniem Packera. Jest to opensourceowe narzędzie do przygotowywania obrazów na vagranta lub szablonów maszyn wirtualnych dla różnych hypervisorów np. VMware ESXi/Fusion, Virtualbox, KVM itd. Pokaże jak działa Packer, jak napisać własne skrypty oraz pliki konfiguracyjne. Magdalena Wojnarowska - 15.10 Katowice Women In Technology

Transcript of Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Page 1: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Magdalena Wojnarowska

http://itgeeks.eu/

Page 2: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Narzędzia

Automatyzacja Packer

Jak zacząć pracę z packerem

2/17

Page 3: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Jest to proces, który pozwala na wykonanie sekwencji zadań lub powtarzalnych czynności w sposób automatyczny nie wymagający interakcji człowieka. Osiągnąć to pozwalają np. skrypty,

programy.

http://itgeeks.eu/ 3/17

Page 4: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Jest to opensource’owe narzędzie pozwalające na automatyzację tworzenia dowolnego typu obrazu

maszyny wirtualnej. Przy użyciu skryptów automatycznych można zainstalować i

skonfigurować oprogramowanie a w wyniku otrzymać gotowy obraz maszyny.

http://itgeeks.eu/ 4/17

Page 5: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Nie wymaga instalacji – Packer wymaga jedynie wypakowania na maszynę skompresowanych plików oraz dodania ścieżki, gdzie te pliki zostały wypakowane, do zmiennej systemowej „PATH”

Małe – źródła Packer, nie potrzebują dużo miejsca na dysku

Uniwersalne – pozwalają na stworzenie identycznych obrazów na różne platformy

Konfigurowalny – skrypty umożliwiają instalację i konfigurację dowolnego oprogramowania i stworzenia dostosowanego do potrzeb obrazu

http://itgeeks.eu/ 5/17

Page 6: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Korzystając z narzędzia Packer można przygotować obrazy maszyn do:

Amazon EC2,

DigitalOcean,

Google Compute Engine,

QEMU,

VirtualBox,

Vmware.

http://itgeeks.eu/ 6/17

Page 7: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

vagrant – do pobrania ze strony- https://www.vagrantup.com/downloads.htm

virtualbox – do pobrania ze strony- https://www.virtualbox.org/wiki/Downloads

packer sources – do pobrania ze strony- http://www.packer.io/downloads.html

http://itgeeks.eu/ 7/17

Page 8: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

1. Plik json, zawierający konfigurację maszyny

2. Preseed.cfg (dla systemu operacyjnego debian, ubuntu), kickstart.cfg (dla systemu operacyjnego centos, redhat, fedora), Autounattend.xml (dla systemu operacyjnego Windows)

3. Skrypty: batch files, powershell, shell

Dodatkowo:

1. Chef recipes – wykorzystując chef solo

http://itgeeks.eu/ 8/17

Page 9: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

{ "builders": [ { } ], "provisioners": [ { } ], "post-processors": [ { } ] }

http://itgeeks.eu/ 9/17

Page 10: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

{ "type": "virtualbox-iso", "iso_url": "http://download.microsoft.com/download/6/D/A/6DAB58BA-F939-451D-9101-7DE07DC09C03/9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.ISO", "iso_checksum_type": "md5", "iso_checksum": "8503997171f731d9bd1cb0b0edc31f3d", "headless": true, "boot_wait": "2m", "ssh_username": "vagrant", "ssh_password": "vagrant", "ssh_wait_timeout": "2h", "shutdown_command": "shutdown /s /t 10 /f /d p:4:1 /c \"Packer Shutdown\"", "guest_os_type": "Windows2012_64", "disk_size": 61440, "floppy_files": [ "./answer_files/2012/Autounattend.xml", "./scripts/microsoft-updates.bat", "./scripts/win-updates.ps1", "./scripts/openssh.ps1", "./scripts/oracle-cert.cer" ], "vboxmanage": [ [ "modifyvm", "{{.Name}}", "--memory", "2048" ], [ "modifyvm", "{{.Name}}", "--cpus", "2" ] ] }

http://itgeeks.eu/ 10/17

Page 11: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

{

"type": "shell",

"remote_path": "/tmp/script.bat", "execute_command": "{{.Vars}} cmd /c C:/Windows/Temp/script.bat",

"scripts": [ "./scripts/vbox_guest.bat", "./scripts/vagrant.bat", "./scripts/enable-rdp.bat" ]

},

{ "type": "shell", "inline": [ "rm -rf /tmp/*" ]

} http://itgeeks.eu/

11/17

Page 12: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

{

"type": "vagrant",

"keep_input_artifact": false,

"output": "win_2012R2.box”

}

http://itgeeks.eu/ 12/17

Page 13: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

{ "type": "chef-solo", "cookbook_paths": ["./cookbooks"], "execute_command": "c:/opscode/chef/bin/chef-solo --no-color -c {{.ConfigPath}} -j {{.JsonPath}} -l debug", "staging_directory": "c:/windows/temp", "prevent_sudo": true, "skip_install": true, "run_list": ["dotnetframework"] } from https://github.com/

13/17

Page 14: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Zalecane jest utworzenie folderu dla packera w na dysku głównym

Wykonywanie skryptów bash używając „#!/bin/bash –eux” – w przypadku natrafienia na błąd, pominie skrypt i pójdzie dalej

Należy pamiętać, że maszyny tworzone packerem są persistent, dla ułatwienia np. do provisionowania chefem dobrze jest dodać linie: „echo "%vagrant ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/vagrant”. Może to być zrobione za pomocą skryptu lub w pliku kickstart albo preseed.

http://itgeeks.eu/ 14/17

Page 15: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

Packer współpracuje z innymi opensource’owymi rozwiązaniami jak Vagrant, Docker, Chef:

http://itgeeks.eu/ 15/17

Page 16: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

http://www.packer.io/

http://blog.endpoint.com/2014/03/provisioning-development-environment.html

https://stackmachine.com/blog/building-a-vagrant-base-box-with-packer

http://kappataumu.com/articles/creating-an-Ubuntu-VM-with-packer.html

http://itgeeks.eu/ 16/17

Page 17: Automatyzacja tworzenia maszyn wirtualnych Magdalena Wojnarowska

DZIĘKUJĘ ZA UWAGĘ

ZAPRASZAM DO ODWIEDZENIA:

http://itgeeks.eu/

ORAZ ZAPRASZAM DO UCZESTNICTWA W OPEN SOFTWARE BAR CAMP W GLIWICACH

(30.10.2014):

http://www.meetup.com/Gliwice-Software-BarCamp

17/17