Ansible Provisioning: Daha Akıllı ve Zahmetsiz Sağlama Yolu

Bu Ansible Provisioning blogu, en kullanışlı Ansible özelliklerinden birine işaret ediyor. Bir LAMP yığınının nasıl kurulacağını ve Ubuntu'da bir web sitesinin nasıl barındırılacağını gösteriyor.

Uygulamanın herhangi bir operasyonel yaşam döngüsünü otomatikleştirmenin ilk adımı, altyapının tedarikini otomatikleştirmektir. Sağlama, yapılandırmaları gerçekten kullanmadan önce ayırma, bellek ayırma, disk alanı vb. İçin can sıkıcı bir süreçtir. Ansible Provisioning'in bunu nasıl daha basit ve daha hızlı hale getirdiğini görelim.



java yolu nasıl kurulur

Büyük ölçekli dağıtımların çoğu, birden çok sistemde aynı ortam kurulumuna sahip olmanızı gerektirir.Peki, bunu nasıl yapıyorsun? Yüz sistemde aynı komut setini manuel olarak çalıştır. Nahh .. Bu çok eski bir okul. Bu, makinelerin iyi olduğu bir şey, insanların değil. Ya size bu uzun ve sıkıcı sürecin sadece tek bir Ansible oyun kitabını çalıştırarak yapılabileceğini söyleseydim?Ansible Provisioning adlı bu blogda bundan bahsedeceğiz.



Kapsanan konular şunlardır:

DevOps'ta ustalaşmak istiyorsanız, ' Tabii ki gitmek için seçeneğiniz olmalı.



Ansible nedir?

DevOps, otomasyona gerçekten yüksek öncelik verilen bir kültürdür. Devreye alma ve test sürecini otomatikleştirecek araçlar olduğunda, neden yapılandırma yönetimi ve provizyon için araçlara sahip olmayasınız? Daha akıllı olmanın milyonlarca yolu vardır ve Ansible kullanmak bunlardan biridir. En çok kullanılan araçlardan biridir.

Ansible, yeni başlayanlar tarafından bile anlaşılabilen YAML tabanlı oyun kitaplarını kullanır. İstemcileriyle iletişim kurmak için, istemcinin makinesine herhangi bir üçüncü taraf aracı yüklenmeyen ve bunun yerine SSH tabanlı bağlantıları kullanan aracısız bir mimari kullanır. Ansible bir otomasyon aracı olduğundan, neyi otomatikleştirebileceğini öğrenelim.

Ansible Ne Otomatikleştirebilir?

Geliştirme döngüsünde bir aşamayı adlandırın ve Ansible size bu aşamada yardımcı olacaktır; yapılandırma yönetimi, provizyon, düzenleme, sürekli teslimat, güvenlik ve hatta uygulama dağıtımı. Ansible, geliştirme döngüsü iş akışını tek bir aracısız otomasyon platformunda birleştirir.



  1. Sağlama: Uygulamanın / yazılımın yaşaması için uygun bir ortam oluşturmak gereklidir. Ansible, uygulamanın varlığı için oluşturulan ortamı otomatikleştirmek için bir yol sağlar.
  2. Konfigürasyon yönetimi: Hizmetleri başlatma / durdurma, bir sistemin, aygıtın veya bir uygulamanın yapılandırmasını değiştirme gibi çok çeşitli yapılandırma görevlerini gerçekleştirin.
  3. Uygulama Dağıtımı: Ansible ile dağıtımın tanımlanmasını otomatikleştirin ve dağıtımı kullanarak yönetin Ansible kulesi . Bu, üretimden devreye almaya kadar tüm uygulama döngüsünü verimli ve yönetilebilir hale getirir.
  4. Sürekli Teslimat: Sürekli bir entegrasyon / sürekli teslimat ardışık düzeninin oluşturulması ve yönetilmesi külfetli olabilir. Ansible burada devreye girer ve geliştiricinin hayatını kolaylaştırır.
  5. Güvenlik ve uyumluluk: Projelerle çalışmak, her zaman sınırları belirler ve şirketin güvenlik politikalarıyla bütünleşir. Dağıtımla otomatik olarak entegre edilmiş güvenlik politikalarına sahip olmak, politikalara uymayı kolaylaştırabilir.
  6. Orkestrasyon: Bütün bir proje, farklı bir konfigürasyona sahip birçok farklı örnek koleksiyonudur. Ansible, bu farklı örnekleri bir bütün olarak birleştirir ve yönetir.

Ansible Provizyon İhtiyacı

Daha önce de belirtildiği gibi, ilk adımuygulamaların operasyonel yaşam döngüsünün otomatikleştirilmesiortamı hazırlamak, yani tedarik etmek. Büyük dağıtımlar, aynı yapılandırmalara sahip birden çok ana bilgisayar gerektirir. Bir ana bilgisayarın temel hazırlığını yaptıktan sonra, manuel olarak yapılırsa sonraki 10 ana makinenin tam olarak aynı yapılandırmalara sahip olmasını sağlama şansınız nedir? Ayrıca aynı tekrar eden görevi yapmak için ne kadar zaman harcayacaksınız? Ansible'ın hizmetimize geldiği yer burasıdır. Yalnızca tek bir başucu kitabını yürüterek yüzlerce ana bilgisayarı sağlayabilirsiniz. Sihir mi? Haha! Hayır, sadece otomasyonda evrim.

Demo: Bir LAMP Yığını Oluşturun ve Bir Web Sayfası Dağıtın

Bir web sitesini 30 sistemde dağıtmaya çalıştığınızı varsayalım, her web sitesi dağıtımı bir temel işletim sistemi, web sunucusu, Veritabanı ve PHP gerektirecektir. Bu önkoşulları aynı anda 30 sistemin tamamına yüklemek için yanıtlanabilir başucu kitabı kullanıyoruz.

Bu Ansible temel hazırlığı demosunda, Ansible kullanarak web sitesi barındırma ortamının nasıl sağlanacağını göstereceğim. LAMP (Linux, Apache, MySQL ve PHP) yığınını kuruyoruz ve ardından bir web sitesi kuruyoruz.

Bu demo için Ubuntu 17.04 sürümüne sahip bir Linux VirtualBox kullandım. İki sanal makine kullandım, biri Ansible'ın kurulu olduğu sunucum, diğeri uzak ana makinem olarak çalışıyor. Ansible'ı sunucuda ayarlayarak başlayalım.

Bir klasöre kaydedilmiş basit bir statik web sayfası oluşturdum indeks iki dosyaya sahip olan index.html ve style.css.

index.html:

  HTML ve CSS kullanan web sitesi                Şimdi Kabul Edin        

style.css

* { kenar boşluğu: 0 dolgu: 0 } başlık { arka plan görüntüsü: doğrusal gradyan (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') yükseklik: 100vh background-size: kapak background-position: merkez } .nav-menu { Sağa çık liste stili: yok kenar boşluğu: 30px } .nav-menu li { ekran: satır içi blok } .nav-menu li a { renk: turkuaz metin dekorasyonu: yok dolgu: 5px 20px font-family: 'Verdana', 'sans-serif' yazı tipi boyutu: 20px } .homebtn a { kenarlık: 1 piksel düz gri background-color: beyaz } .nav-menu li a: hover { kenarlık: 1 piksel düz gri background-color: beyaz } .tagline { pozisyon: mutlak genişlik: 1200px kenar-sol: 0 kenar boşluğu: 0 } h1 { Beyaz renk yazı tipi boyutu: 50px font-family: 'Verdana', 'sans-serif' metin hizalama: merkez kenar boşluğu: 275px } .evlat edinmek { kenar boşluğu: 30px kenar boşluğu: 540 piksel } .bttn { kenarlık: 1 piksel düz beyaz dolgu: 10px 30px Sarı renk font-family: 'Verdana', 'sans-serif' yazı tipi boyutu: 22px metin dekorasyonu: yok } .adopt a: hover { arka plan rengi: burlywood }

Aşama 1: Depoları güncellemek, gerekli depoları eklemek ve Ansible kurulumu için makinenizde PPA'yı yapılandırmak için aşağıdaki komutları yürütün:

$ sudo apt-get update $ sudo apt-get install yazılım-özellikleri-common $ sudo apt-add-repository ppa: ansible / ansible

PPA eklemesini kabul etmek için enter tuşuna basın ve ardından depoları güncelledikten sonra Ansible'ı kurun.

$ sudo apt-get update $ sudo apt-get install ansible

Adım 2: Sunucunuzun / etc / hosts dosyasına gidin ve ana bilgisayarın ana bilgisayar adını ve IP adresini ekleyin.

etc ana bilgisayarları - Ansible sağlama - EdurekaŞekil 1 - / etc / hosts Dosyasına Uzak ana bilgisayarları ekleyin - Ansible Sağlama

Aşama 3: Ansible, ana bilgisayarlarıyla iletişim kurmak için SSH kullanmanın aracısız mimarisi üzerinde çalışırken, ssh anahtarlarını ayarlayın. Temel olarak, bir sunucumuz ve bir ana makinemiz var. Ana makineyi sunucumuzla kontrol ederiz ve dolayısıyla sunucuda genel bir ssh anahtarı oluşturup ana makinenin makinesine kopyalarız. Sunucuda aşağıdaki komutu yürütün:

$ ssh-keygen

Dosya adını girmeniz istenecektirNeredeyimAnahtarınızı kaydetmek ve ayrıca isteğe bağlı olarak oluşturulan anahtara erişmek için sizden bir şifre oluşturmanızı istemek istiyorsunuz. Varsayılan olarak, genel anahtar .ssh / id_rsa.pub dosyasına kaydedilir ve özel anahtar .ssh / id_rsa içine kaydedilir.

Şekil 2 - ssh Anahtarı Oluşturma - Ansible Provisioning

Şimdi oluşturulan bu anahtarın ana makinenizde bulunması gerekiyor. Anahtarın ana bilgisayara kopyalanması iki şekilde yapılabilir; ya ana bilgisayara manuel olarak kopyalayın ya da ssh-copy-id komutunu kullanın. Bu durumda, ssh-copy-id root @ IP_of_host komutunu kullanarak kopyalayacağım.

$ ssh-copy-id root@192.168.56.104

Not- Bu komutu çalıştırmadan önce ana makinenize ssh yapabildiğinizden emin olun.

4. Adım: Ansible ana bilgisayarlarını yapılandırın. / Etc / ansible / hosts dosyasına gidin ve ana bilgisayar adını ekleyin. Bu, sahip olduğunuz ana bilgisayar ve sunucu sayısına göre değişecektir. Şundan fazlasına da sahip olabilirsinizbir sunucuİşte.

Şekil 3 - Envanter Dosyasına Uzak Ana Bilgisayar Ekleme - Ansible Provizyon

Adım 5: Ev sahiplerinizin hazır olup olmadığını kontrol edin. Bu komutu çalıştırın, benzer bir çıktı almalısınız.

$ ansible -m ping tüm

Şekil 4 - Uzak Ana Bilgisayarın Durumunu Kontrol Edin - Ansible Sağlama

6. Adım: Artık Ansible'ımız hazır, ortamı bir web sitesini dağıtmaya hazır hale getirelim. Apache, MySql ve PHP'yi yüklemek için tek bir Ansible başucu kitabı kullanacağız. Şuna bir bakalım.

Not: Yeni başlayan biriyseniz, şuna bir göz atın: bu nasıl oyun kitabı yazılacağını açıklayan blog.

--- # Kurulum LAMP Yığını - ana bilgisayarlar: ana bilgisayar1 görevleri: - ad: ppa deposu ekle hale: yes apt_repository: repo = ppa: ondrej / php - adı: Lamba yığınını kurun: yes apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql durumu: mevcut güncelleme önbelleği: evet - isim: apache sunucusunu başlat: evet hizmet: isim: apache2 durumu: başlatıldı etkin: evet - isim: mysql hizmetini başlat: evet hizmetler: isim: isim: mysql durumu: başlatıldı etkin: evet - ad: hedef dizin oluştur dosya: yol = / var / www / html durum = dizin modu = 0755 - ad: dağıtma indeksi.html oldu: evet kopya: src: / etc / ansible / index / index.html hedef: var / www / html / index / index.html

Burada gördüğünüz gibi 6 görevimiz var, her görev belirli bir işlevi yerine getiriyor.

  • İlk görev, MySQL ve PHP'yi kurmak için gereken depoyu ekler.
  • İkinci görev apache2, MySQL-server, PHP ve PHP-MySQL'i kurar.
  • Üçüncü ve dördüncü görev Apache ve MySQL hizmetini başlatır.
  • Beşinci görev, ana makinede bir hedef dizin oluşturur ve
  • Son olarak altıncı görev index.html dosyasını yürütür, dosyayı sunucu makineden alır ve ana makineye kopyalar.

Bu başucu kitabını aşağıdaki komutla yürütün:

$ ansible-playbook lamp.yml -K

Çizgiler olmak: evet başucu kitabında root olarak çalıştırılması gerektiğini söyler ve bu nedenle komutu çalıştırdığınızda sudo şifresi istenir.

Şekil 5 - Ansible Playbook - Ansible Provisioning'i Yürütme

Şimdi ana makineye girebilir ve web sitesinin barındırılıp barındırılmadığını kontrol edebilirsiniz.

Şekil 6 - Web Sitesini Localhost'ta Barındırın - Ansible Provisioning

Şimdi bu, sunucuyla etkileşime giren tüm ana bilgisayarlara yerleştirilecek bir web sayfası (bizim durumumuzda, yalnızca bir ana makinemiz vardı), ancak aynısı 100 uzak ana bilgisayar için bile mümkün olabilirdi.

Bu bizi Ansible Provisioning blogunun sonuna getiriyor. Bu makaleyi yararlı bulursanız, ' sunan Edureka. BT sektörünü daha akıllı hale getiren tüm araçları kapsar.

Bizim için bir sorunuz mu var? Lütfen yayınlayın ve size geri döneceğiz.