Basitçe söylemek gerekirse, makine imajı oluşturmak için kullanacağımız açık kaynaklı bir araçtır. Tek bir yapılandırmayla birden çok platform için makine imajları oluşturmamıza olanak tanıyan açık kaynaklı bir araçtır.
En güzel yanı tüm büyük işletim sistemlerinde çalışmasıdır. Mac OS, FreeBSD, Linux, Open BSD ve Windows dahil. Ayrıca kalabalık bir yapıya sahipsiniz ve tek bir yapılandırma dosyası kullanarak farklı platformlar ve paralel için birden fazla makine görüntüsü oluşturabilirsiniz. Şimdi burada ihtiyacımız olan en önemli şey, Packer’ın konfigürasyon yönetim sisteminizin yerini almamasıdır. Aslında gider ve ona paralel olarak çalışır. Dolayısıyla, Bash script, puppet veya chef kullanıyorsanız, imajları yapılandırmak için paketleyicili olanları kullanabilirsiniz.
Bir makine imajı, önceden yapılandırılmış bir işletim sistemi içeren tek bir statik birimdir.
Aşağıdaki bağlantıdan Packer paketini indirebiliriz.
https://www.packer.io/downloads.html
Packer Şablonu
Packer nasıl çalışır, gidip bir paketleyici derlemesi yürütürüz, bir şablon dosyası geçireceğiz. ve bu şablon dosyası JSON’dur.
Yapılandırma dosyasında bazı bileşenleri tanımlayacağız ve paketleyici bu bileşenleri kullanarak bizim için bir makine imajı oluşturacak. Packer şablon dosyasının ek faydası, hem insanlar hem de makineler tarafından taşınabilir, statik, okunabilir ve sinirlenebilir(irritable) olmasıdır. Şimdi, bunun anlamı, kendi başınıza veya ekonomik sürece girmek için inşa etmeniz ve kodunuzun devam etmesi gerektiğidir. Paketleyici dosyanızı oluşturun.
Öyleyse oradaki şablon yapısı hakkında konuşalım. Bahsettiğimiz ilk şey yapı, structure. Şimdi, kurucu bileşeni bir dizi olacak çünkü içeri girmek için onu yapılandırmalı, inşa etmelisiniz.
Ne tür bir imajın yaratılacağını belirlemek için nesnelerin birden fazla kurucusunu ve oluşturucusunu belirtin. Bu bir docker görüntüsü olacak mı yoksa bu tür şeylerin her ikisi de oluşturduğumuzda mı tanımlayacak. Şimdi açıklama isteğe bağlıdır ve bu, şablonumuzun ne yaptığına dair bir açıklama sunabileceğimiz bir dizeden başka bir şey değildir. Ayrıca template gittik ve Packer’ın minimal sürümünü belirledik.
Sırada son işlemcimiz var ve son işlemcinin amacı, her şey tamamlandıktan ve imaj oluşturulduktan sonra, bir docker görüntüsüne gitme ve etiketleme veya yayınlama gibi olaydan sonra gerçekleştirilebilecek bazı eylemlere sahip olmanızdır. makine görüntülerimizi sağlama söz konusu olduğunda bir havuza bir docker imajı. Burada hükümler bir dizi de gelir ve burada sağlayacağımız şey, nasıl gidip makine imajımızı nasıl yapılandıracağınızdır. Ve daha önce de söylediğim gibi, Puppet, Chef, Ansible gibi çeşitli konfigürasyon yönetimi araçlarını kullanabilir veya sadece bash komut dosyalarını kullanabiliriz.
Değişkenler, şablonlarımızı daha esnek hale getirmemizi sağlar, bu nedenle çalışma zamanında değişkenleri geçirme yeteneğine sahibiz. Paketleyici inşa ettiğimizde Değişkenler, şablonumuzla tüketilecek anahtar değer çiftlerinden başka bir şey değildir.
Packer Komutları
packer build – bir şablon alır ve bir dizi yapı oluşturmak için içindeki tüm yapıları çalıştırır. Bir şablon içinde belirtilen çeşitli yapılar, aksi belirtilmedikçe paralel olarak yürütülür. Ve yaratılan eserler, yapının sonunda çıkacaktır.
packer fix – Geriye dönük uyumsuz parçaları bulur ve bunları güncel hale getirir
packer inspect – Bir şablonu okur ve şablonun tanımladığı çeşitli bileşenleri çıkarır.
packer validate – Bir şablonun syntax ve yapılandırmasını doğrular.
Builder
Şimdi biraz builders hakkında konuştuk. Rodeoya sahibiz ve bir paketleyici dosyasıyla birden fazla makine oluşturuyoruz. Packerin desteklediği yapılara göz gezdirmek gerekirse,
- Amazon AMI
- Azure Resource Manager
- Docker
- Hyper V
- Open Stack
- VirtualBox
- VMware
Provisioners / Sağlayıcılar
Artık makine görüntülerimizi başlattıktan sonra gidip yapılandırma yeteneğine sahibiz.
Örnek sağlayıcılara bakacak olursak,
- Ansible
- Chef
- File
- Powershell
- Puppet
- Shell
Post Processors
Imaj oluşturucu tarafından oluşturulduktan ve provizyon sağlayıcı tarafından sağlandıktan sonra çalışırlar.
Örnek Post-Processors
- Amazon Import
- Checksum
- Docker Push
- Google Compute Image Exporter
- Shell
- Vagrant
- vSphere
Packer kurulumu ile bir sonraki yazımıza devam edelim,