Penyediaan yang Mungkin: Cara Penyediaan yang Lebih Cerdas dan Mudah



Blog Ansible Provisioning ini menunjukkan salah satu fitur Ansible yang paling berguna. Ini mendemonstrasikan cara mengatur tumpukan LAMP dan menghosting wensite di Ubuntu.

Langkah pertama dalam mengotomatiskan setiap siklus hidup operasional aplikasi adalah mengotomatiskan penyediaan infrastruktur. Provisioning adalah proses pengaturan konfigurasi, alokasi memori, ruang disk, dll. Yang mengganggu, sebelum benar-benar menggunakannya. Mari kita lihat bagaimana Penyediaan yang Mungkin membuat ini lebih sederhana dan lebih cepat.

Sebagian besar penerapan skala besar mengharuskan Anda memiliki penyiapan lingkungan yang identik di beberapa sistem.Jadi, bagaimana caranya? Jalankan set perintah yang sama pada seratus sistem secara manual ?? Nahh .. Itu sekolah yang terlalu tua. Ini adalah keahlian mesin, bukan manusia. Bagaimana jika saya memberi tahu Anda bahwa proses yang panjang dan membosankan ini dapat dilakukan hanya dengan menjalankan satu buku pedoman yang mungkin?Itulah yang akan kita bicarakan di blog ini - Penyediaan yang Mungkin.





Topik yang dibahas adalah:

Jika Anda ingin menguasai DevOps, ' kursus harus menjadi pilihan masuk Anda.



Apa yang Mungkin?

DevOps adalah budaya di mana otomatisasi diberikan prioritas yang sangat tinggi. Jika terdapat alat untuk mengotomatiskan penerapan dan proses pengujian, mengapa tidak memiliki alat untuk manajemen konfigurasi dan penyediaan. Ada jutaan cara untuk menjadi lebih pintar dan menggunakan Ansible adalah salah satunya. Ini adalah salah satu alat yang paling banyak digunakan.

Ansible menggunakan playbook berbasis YAML yang bahkan dapat dipahami oleh pemula. Ini menggunakan arsitektur tanpa agen untuk berkomunikasi dengan kliennya yang tidak melibatkan alat pihak ketiga untuk diinstal pada mesin klien, dan sebagai gantinya menggunakan koneksi berbasis SSH. Mungkin menjadi alat otomatisasi, mari kita cari tahu apa yang dapat diotomatiskan.

Apa yang Bisa Diotomatiskan?

Beri nama tahapan dalam siklus pengembangan dan Ansible akan membantu Anda, baik itu manajemen konfigurasi, penyediaan, orkestrasi, pengiriman berkelanjutan, keamanan, atau bahkan penerapan aplikasi. Ansible menyatukan alur kerja siklus pengembangan menjadi satu platform tanpa otomatisasi agen.



  1. Penyediaan: Membuat lingkungan yang cocok untuk aplikasi / perangkat lunak untuk hidup diperlukan. Ansible menyediakan cara untuk mengotomatiskan lingkungan yang dibuat untuk keberadaan aplikasi.
  2. Manajemen konfigurasi: Melakukan berbagai macam tugas konfigurasi, seperti memulai / menghentikan layanan, mengubah konfigurasi sistem, perangkat atau aplikasi, dll.
  3. Penerapan Aplikasi: Otomatiskan penentuan penerapan dengan Ansible dan kelola penerapan menggunakan Menara yang memungkinkan . Ini membuat seluruh siklus aplikasi dari produksi hingga penerapan menjadi efisien dan dapat dikelola.
  4. Pengiriman Berkelanjutan: Membuat dan mengelola pipeline continuous integration / continuous delivery bisa jadi merepotkan. Di situlah Ansible masuk dan membuat hidup pengembang lebih mudah.
  5. Keamanan dan kepatuhan: Bekerja dengan proyek, selalu menetapkan batasan dan terintegrasi dengan kebijakan keamanan perusahaan. Memiliki kebijakan keamanan yang terintegrasi secara otomatis dengan penerapan dapat mempermudah kepatuhan terhadap kebijakan.
  6. Orkestrasi: Seluruh proyek adalah kumpulan dari banyak contoh berbeda yang memiliki konfigurasi berbeda. Ansible menggabungkan dan mengelola contoh yang berbeda ini secara keseluruhan.

Kebutuhan Penyediaan yang Mungkin

Seperti disebutkan sebelumnya, langkah pertama kemengotomatiskan siklus hidup operasional aplikasimenyiapkan lingkungan, yaitu penyediaan. Penerapan besar membutuhkan beberapa host yang memiliki konfigurasi yang sama persis. Setelah menyediakan satu host, bagaimana kemungkinan Anda mendapatkan 10 host berikutnya memiliki konfigurasi yang sama persis jika dilakukan secara manual? Juga berapa banyak waktu yang akan Anda habiskan untuk melakukan tugas berulang yang sama? Di sinilah Ansible datang ke layanan kami. Anda dapat menyediakan ratusan host hanya dengan menjalankan satu pedoman. Sihir? Ha ha! Tidak, hanya evolusi dalam otomatisasi.

Demo: Buat Stack LAMP dan Terapkan Halaman Web

Misalkan Anda mencoba menerapkan situs web pada 30 sistem, setiap penerapan situs web akan membutuhkan OS dasar, server web, Basis data, dan PHP. Kami menggunakan pedoman yang memungkinkan untuk menginstal prasyarat ini di semua 30 sistem sekaligus.

Dalam demo Penyediaan yang memungkinkan ini, saya akan menunjukkan kepada Anda cara menyediakan lingkungan hosting situs web menggunakan Ansible. Kami menginstal tumpukan LAMP (Linux, Apache, MySQL, dan PHP) dan kemudian menerapkan situs web.

Untuk demo ini, saya telah menggunakan Linux VirtualBox dengan versi Ubuntu 17.04. Saya telah menggunakan dua mesin virtual, satu sebagai server saya tempat Ansible dipasang dan mesin lainnya bertindak sebagai host jarak jauh saya. Mari kita mulai dengan menyetel Ansible di server.

Saya telah membuat halaman web statis sederhana yang disimpan dalam folder indeks yang memiliki dua file, index.html, dan style.css.

index.html:

  Situs web menggunakan HTML dan CSS                Adopsi Sekarang        

style.css

* { margin: 0 bantalan: 0 } header { background-image: gradien-linier (rgba (0,0,0,0.5), rgba (0,0,0,0.5)), url ('puppie.jpg') tinggi: 100vh background-size: sampul background-position: center } .nav-menu { float: benar list-style: tidak ada margin-top: 30px } .nav-menu li { display: inline-block } .nav-menu li a { warna: pirus dekorasi-teks: tidak ada padding: 5px 20px font-family: 'Verdana', 'sans-serif' font-size: 20px } .homebtn a { batas: 1 piksel abu-abu pekat background-color: putih } .nav-menu li a: hover { batas: 1 piksel abu-abu pekat background-color: putih } .tagline { posisi: mutlak lebar: 1200px margin kiri: 0 margin-top: 0 } h1 { warna putih font-size: 50px font-family: 'Verdana', 'sans-serif' text-align: center margin-top: 275px } .adopt { margin-top: 30px margin kiri: 540 piksel } .bttn { border: 1px putih solid padding: 10px 30px warna: kuning font-family: 'Verdana', 'sans-serif' ukuran font: 22px dekorasi-teks: tidak ada } .adopt a: hover { warna latar belakang: burlywood }

Langkah 1: Jalankan perintah berikut untuk memperbarui repositori, tambahkan repositori yang diperlukan dan konfigurasikan PPA di komputer Anda untuk penginstalan yang memungkinkan:

$ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa: ansible / ansible

Tekan enter untuk menerima penambahan PPA dan akhirnya instal Ansible setelah memperbarui repositori.

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

Langkah 2: Buka file / etc / hosts server Anda dan tambahkan nama host dan alamat IP dari host tersebut.

dll host - Penyediaan yang memungkinkan - EdurekaGbr. 1 - Tambahkan host jarak jauh ke / etc / hosts File - Ansible Provisioning

Langkah 3: Karena Ansible bekerja pada arsitektur tanpa agen menggunakan SSH untuk berkomunikasi dengan hostnya, atur kunci ssh. Pada dasarnya, kami memiliki satu server dan satu host. Kami mengontrol host dengan server kami dan karenanya kami membuat kunci ssh publik di server dan menyalinnya di mesin host. Jalankan perintah berikut di server:

$ ssh-keygen

Anda akan diminta untuk memasukkan nama filedimana sayaAnda ingin menyimpan kunci Anda dan juga meminta Anda membuat sandi untuk mengakses kunci yang dihasilkan yang bersifat opsional. Secara default, kunci publik disimpan dalam file .ssh / id_rsa.pub dan kunci privat disimpan dalam .ssh / id_rsa.

Gbr. 2 - Buat Kunci ssh - Penyediaan yang Mungkin

Sekarang kunci yang dihasilkan ini harus ada di host Anda. Menyalin kunci ke dalam host dapat dilakukan dengan dua cara, baik secara manual menyalin ke host atau menggunakan perintah ssh-copy-id. Dalam kasus ini, saya akan menyalinnya menggunakan perintah ssh-copy-id root @ IP_of_host.

$ ssh-copy-id root@192.168.56.104

Catatan- Pastikan Anda dapat melakukan ssh ke host Anda sebelum menjalankan perintah ini.

Langkah 4: Konfigurasi Ansible host. Buka file / etc / ansible / hosts dan tambahkan nama host. Ini akan bervariasi sesuai dengan jumlah host dan server yang Anda miliki. Anda juga dapat memiliki lebih darisatu serversini.

Gbr. 3 - Tambahkan Host Jarak Jauh di File Inventaris - Penyediaan yang Mungkin

Langkah 5: Periksa apakah host Anda sudah siap. Jalankan perintah ini, Anda akan mendapatkan hasil yang serupa.

cara membalikkan angka di java
$ ansible -m ping semua

Gbr. 4 - Periksa Status Host Jarak Jauh - Penyediaan yang Mungkin

Langkah 6: Sekarang Ansible kami sudah siap, mari kita siapkan lingkungan untuk menerapkan situs web. Kami akan menggunakan satu buku pedoman yang Mungkin untuk menginstal Apache, MySql, dan PHP. Mari kita lihat.

Catatan: Jika Anda seorang pemula, lihatlah ini blog yang menjelaskan cara menulis pedoman.

--- # Setup LAMP Stack - hosts: tugas host1: - name: Tambahkan repositori ppa menjadi: yes apt_repository: repo = ppa: ondrej / php - name: Instal lamp stack menjadi: yes apt: pkg: - apache2 - mysql-server - php7.0 - php7.0-mysql state: sekarang update cache: yes - name: start apache server menjadi: yes service: name: apache2 state: mulai diaktifkan: yes - name: start mysql service menjadi: yes services: name: mysql state: mulai diaktifkan: yes - name: buat file direktori target: path = / var / www / html state = mode direktori = 0755 - nama: gunakan index.html menjadi: yes copy: src: / etc / ansible / index / index.html tujuan: var / www / html / index / index.html

Di sini seperti yang Anda lihat, kami memiliki 6 tugas, masing-masing tugas melakukan fungsi tertentu.

  • Tugas pertama menambahkan repositori yang diperlukan untuk menginstal MySQL dan PHP.
  • Tugas kedua menginstal apache2, MySQL-server, PHP, dan PHP-MySQL.
  • Tugas ketiga dan keempat memulai layanan Apache dan MySQL.
  • Tugas kelima membuat direktori target di mesin host dan
  • Akhirnya, tugas keenam mengeksekusi file index.html, mengambil file dari mesin server dan menyalinnya ke mesin host.

Jalankan pedoman ini dengan perintah berikut:

$ ansible-playbook lamp.yml -K

Garis menjadi: ya di playbook mengatakan bahwa ia perlu dijalankan sebagai root dan karenanya ketika Anda menjalankan perintah, ia akan meminta kata sandi sudo.

Gbr. 5 - Jalankan Buku Panduan yang Mungkin - Penyediaan yang Mungkin

Sekarang Anda dapat masuk ke mesin host dan memeriksa apakah situs web telah dihosting.

Gbr. 6 - Host Situs Web di Localhost - Penyediaan yang Mungkin

Sekarang itu adalah halaman web yang akan digunakan di semua host yang berinteraksi dengan server (dalam kasus kami, kami hanya memiliki satu host) tetapi hal yang sama akan dimungkinkan bahkan untuk 100 host jarak jauh.

Ini membawa kita ke bagian akhir blog Ansible Provisioning. Jika menurut Anda artikel ini bermanfaat, lihat ' ditawarkan oleh Edureka. Ini mencakup semua alat yang membuat industri TI lebih pintar.

Ada pertanyaan untuk kami? Silakan posting di dan kami akan menghubungi Anda kembali.