Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Layanan Informasi Data Satelit Lingkungan Nasional (NESDIS) telah mengurangi biaya manajemen konfigurasi untuk Red Hat Enterprise Linux (RHEL) sebesar 35% dengan bermigrasi dari Puppet Enterprise ke Ansible Tower. Dalam video "bagaimana kami melakukannya", insinyur sistem Michael Rau menjelaskan kasus migrasi ini, berbagi tips berguna dan pembelajaran dari perpindahan dari satu SCM ke SCM lainnya.

Dari video ini Anda akan belajar:

  • bagaimana memberikan alasan kepada manajemen mengenai kelayakan peralihan dari Perusahaan Boneka ke Menara Ansible;
  • strategi apa yang harus digunakan agar transisi berjalan selancar mungkin;
  • tip untuk mentranskode manifes PE menjadi Ansible Playbook;
  • Rekomendasi untuk pemasangan Ansible Tower yang optimal.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Halo semuanya, nama saya Michael Rau, saya Insinyur Sistem Senior di ActioNet, yang bekerja untuk layanan NESDIS Administrasi Kelautan dan Atmosfer Nasional (NOAA). Hari ini kita akan berbicara tentang pemangkasan tali - pengalaman saya sendiri saat bermigrasi dari Perusahaan Boneka ke Ansible Tower. Tema presentasi ini adalah β€œmelihat bekas luka saya” yang tersisa setelah saya melakukan transisi ini di awal tahun. Saya ingin berbagi apa yang saya pelajari melalui proses ini. Jadi ketika Anda melakukan sesuatu seperti ini, menggunakan pengalaman saya, Anda dapat melakukan transisi tanpa kerja ekstra apa pun.

Anda melihat slide serupa dengan ini di awal setiap presentasi di Ansible Fest. Slide ini menguraikan sejarah otomasi perusahaan saya. Saya bukan orang baru dalam hal ini karena saya sudah menggunakan Wayang/Perusahaan Wayang sejak 2007. Saya mulai bekerja dengan Ansible pada tahun 2016, dan seperti banyak pengguna lain dari produk ini, saya tertarik dengan kemungkinan β€œtrik” menggunakan baris perintah dan skrip sederhana (buku pedoman). Di penghujung tahun 2017, saya menghubungi manajemen saya tentang alasan kuat pindah ke Ansible Tower. Sebentar lagi saya akan memberi tahu Anda tentang alasan yang mendorong saya untuk mengambil langkah ini. Setelah mendapat persetujuan manajemen, butuh beberapa bulan lagi untuk menyelesaikan rencana tersebut, dan saya melakukan transisi pada Januari-Februari tahun ini. Jadi, kami benar-benar meninggalkan Wayang demi Ansible, dan ini adalah hal yang hebat.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Yang paling menarik bagi saya tentang Ansible adalah kemampuannya menulis dan menggunakan peran dan pedoman. Peran sangat bagus untuk membuat tugas yang berbeda namun terkait dan meletakkan semua data yang terkait dengan tugas tersebut di satu tempat. Playbook adalah sintaks YAML, file skrip yang menjelaskan tindakan untuk satu atau lebih host. Saya memberi tahu pengguna tentang fitur-fitur ini, terutama pengembang perangkat lunak. Ansible Tower memberi Anda kemampuan untuk mengatakan, "tidak, Anda tidak memiliki akses shell, tapi saya memberi Anda kemampuan untuk menjalankan semua proses Tower dan memulai ulang layanan saat Anda membutuhkannya." Saya akan bercerita tentang lingkungan kerja dan peralatan yang kami gunakan.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Ini adalah LAN federal, 7 situs fisik yang terhubung melalui cloud MPLS, 140 server RHEL, 99% di antaranya adalah virtual (vSphere), perangkat keras SuperMicro, penyimpanan jaringan NexentaStore, satu set switch Cisco, Arista dan Cumulus, serta manajemen ancaman terpadu Fortinet UTM alat di setiap situs.

Jaringan federal berarti saya harus menggunakan semua tindakan keamanan informasi yang diatur oleh hukum. Anda harus ingat bahwa Puppet Enterprise tidak mendukung sebagian besar perangkat keras yang kami gunakan. Kami terpaksa menggunakan perangkat keras anggaran karena lembaga pemerintah mempunyai masalah dalam membiayai pos pengeluaran ini. Itu sebabnya kami membeli perangkat keras SuperMicro dan merakit peralatan kami dari masing-masing bagian, yang pemeliharaannya dijamin oleh kontrak pemerintah. Kami menggunakan Linux dan ini adalah salah satu alasan penting untuk beralih ke Ansible.

Sejarah kami dengan Wayang adalah sebagai berikut.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Pada tahun 2007, kami memiliki jaringan kecil yang terdiri dari 20-25 node, di mana kami menerapkan Puppet. Pada dasarnya, node ini hanyalah β€œkotak” RedHat. Pada tahun 2010, kami mulai menggunakan antarmuka web Puppet Dashboard untuk 45 node. Ketika jaringan terus berkembang, kami beralih ke PE 2014 pada tahun 3.3, melakukan transisi lengkap dengan penulisan ulang manifes untuk 75 node. Hal ini terpaksa dilakukan karena Wayang suka mengubah aturan permainan, dan dalam hal ini mereka mengubah bahasa sepenuhnya. Setahun kemudian, ketika dukungan untuk Puppet Enterprise versi 3 berakhir, kami terpaksa bermigrasi ke PE 2015.2. Kami harus menulis ulang manifes lagi untuk server baru dan membeli lisensi dengan cadangan 100 node, meskipun saat itu kami hanya memiliki 85 node.

Hanya 2 tahun telah berlalu, dan kami kembali harus melakukan banyak pekerjaan untuk bermigrasi ke versi baru PE 2016.4. Kami membeli lisensi untuk 300 node, hanya memiliki 130. Kami sekali lagi harus membuat perubahan besar pada manifes karena versi bahasa yang baru memiliki sintaksis yang berbeda dari bahasa versi 2015. Hasilnya, SCM kami beralih dari kontrol versi SVN ke Bitbucket (Git). Ini adalah β€œhubungan” kami dengan Wayang.

Jadi, saya harus menjelaskan kepada manajemen mengapa kami perlu pindah ke SCM lain dengan menggunakan argumen berikut. Yang pertama adalah tingginya harga layanan. Saya berbicara dengan orang-orang di RedHat dan mereka mengatakan bahwa biaya menjalankan jaringan 300 node dengan Ansible Tower adalah setengah dari biaya Puppet Enterprise. Jika Anda juga membeli Ansible Engine, biayanya akan hampir sama, tetapi Anda akan mendapatkan lebih banyak fitur daripada PE. Karena kami adalah perusahaan milik negara yang dibiayai dari anggaran federal, ini adalah argumen yang cukup kuat.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Argumen kedua adalah keserbagunaan. Wayang hanya mendukung perangkat keras yang memiliki agen Wayang. Artinya agen harus diinstal di semua switch, dan harus versi terbaru. Dan jika beberapa switch Anda mendukung satu versi, dan beberapa mendukung versi lainnya, Anda perlu menginstal versi baru agen PE pada switch tersebut sehingga semuanya dapat bekerja di sistem SCM yang sama.

Sistem Ansible Tower bekerja secara berbeda karena tidak memiliki agen apa pun, namun memiliki modul yang mendukung switch Cisco dan semua switch lainnya. SCM ini mendukung Qubes OS, Linux dan 4.NET UTM. Ansible Tower juga mendukung pengontrol penyimpanan jaringan NexentaStore berdasarkan kernel Illumos, sistem operasi sumber terbuka berbasis Unix. Dukungannya sangat kecil, tetapi Ansible Tower tetap melakukannya.

Argumen ketiga, yang sangat penting bagi saya dan pemerintahan kita, adalah kemudahan penggunaan. Saya menghabiskan 10 tahun untuk menguasai modul Wayang dan kode manifes, tetapi saya mempelajari Ansible dalam waktu seminggu karena SCM ini lebih mudah digunakan. Jika Anda menjalankan file yang dapat dieksekusi, tentu saja, kecuali Anda melakukannya jika tidak perlu, maka penangan yang cerdas dan responsif akan bekerja dengannya. Playbook berbasis YAML mudah dipelajari dan cepat digunakan. Mereka yang belum pernah mendengar tentang YAML sebelumnya dapat dengan mudah membaca skripnya dan memahami cara kerjanya dengan mudah.

Sejujurnya, Puppet membuat pekerjaan Anda sebagai developer jauh lebih sulit karena didasarkan pada penggunaan Puppet Master. Ini adalah satu-satunya mesin yang diizinkan untuk berkomunikasi dengan agen Boneka. Jika Anda telah membuat perubahan apa pun pada manifes dan ingin menguji kode Anda, Anda harus menulis ulang kode untuk Puppet Master, yaitu, mengkonfigurasi file Puppet Master /etc/hosts untuk menghubungkan semua klien dan memulai layanan Puppet Server. Hanya setelah ini Anda dapat menguji pengoperasian peralatan jaringan pada satu host. Ini adalah prosedur yang agak menyakitkan.
Semuanya jauh lebih sederhana di Ansible. Yang perlu Anda lakukan hanyalah mengembangkan kode untuk mesin yang dapat berkomunikasi melalui SSH dengan host yang diuji. Ini jauh lebih mudah untuk dikerjakan.

Keuntungan besar berikutnya dari Ansible Tower adalah kemampuan untuk memanfaatkan sistem pendukung yang ada dan mempertahankan konfigurasi perangkat keras yang ada. SCM ini menggunakan semua informasi yang tersedia tentang infrastruktur dan perangkat keras Anda, mesin virtual, server, dll. tanpa langkah tambahan apa pun. Itu dapat berkomunikasi dengan server Satelit RH Anda, jika Anda memilikinya, dan memberi Anda integrasi yang tidak akan pernah Anda dapatkan dengan Puppet.

Hal penting lainnya adalah kontrol detail. Anda tahu bahwa Wayang adalah sistem modular, ini adalah aplikasi klien-server, jadi Anda harus mendefinisikan aspek yang ada dari semua mesin Anda dalam satu manifes yang panjang. Dalam hal ini, keadaan setiap elemen sistem harus diuji setiap setengah jam - ini adalah periode default. Beginilah cara Wayang bekerja.

Tower menyelamatkan Anda dari itu. Anda dapat menjalankan berbagai proses pada berbagai peralatan tanpa batasan; Anda dapat melakukan pekerjaan dasar, menjalankan proses penting lainnya, menyiapkan sistem keamanan, dan bekerja dengan database. Anda dapat melakukan segala hal yang sulit di Perusahaan Boneka. Jadi, jika Anda mengonfigurasinya di satu host, perlu waktu agar perubahan diterapkan pada host lainnya. Di Ansible, semua perubahan berlaku secara bersamaan.

Terakhir, mari kita lihat modul keamanan. Ansible Tower mengimplementasikannya dengan luar biasa, dengan sangat presisi dan hati-hati. Anda dapat memberi pengguna akses ke layanan tertentu atau ke host tertentu. Saya melakukan ini dengan karyawan saya yang terbiasa bekerja di Windows, membatasi akses mereka ke shell Linux. Saya memastikan bahwa mereka memiliki akses ke Tower sehingga mereka hanya dapat melakukan pekerjaan dan hanya menjalankan layanan yang relevan bagi mereka.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Mari kita lihat hal-hal yang perlu Anda lakukan sebelumnya untuk mempermudah transisi Anda ke Ansible Tower. Pertama-tama, Anda perlu menyiapkan peralatan Anda. Jika beberapa elemen infrastruktur Anda belum ada dalam database, Anda perlu menambahkannya di sana. Ada sistem yang tidak mengubah karakteristiknya dan oleh karena itu tidak ada dalam database Wayang, namun jika Anda tidak menambahkannya di sana sebelum pindah ke Tower, Anda akan kehilangan sejumlah keuntungan. Ini mungkin merupakan database awal yang β€œkotor”, tetapi harus berisi informasi tentang semua peralatan yang Anda miliki. Oleh karena itu, Anda harus menulis skrip perangkat keras dinamis yang secara otomatis akan memasukkan semua perubahan infrastruktur ke dalam database, kemudian Ansible akan mengetahui host mana yang harus ada di sistem baru. Anda tidak perlu memberi tahu SCM ini host mana yang Anda tambahkan dan host mana yang sudah tidak ada lagi, karena SCM akan mengetahui semua ini secara otomatis. Semakin banyak data yang ada dalam database, Ansible akan semakin berguna dan fleksibel. Ia bekerja seolah-olah hanya membaca kode batang status perangkat keras dari database.

Luangkan waktu untuk mengenal baris perintah di Ansible. Jalankan beberapa perintah khusus untuk menguji skrip perangkat keras, tulis dan jalankan beberapa skrip pedoman yang sederhana namun berguna, gunakan templat Jinja2 jika diperlukan. Cobalah menulis peran dan skrip untuk proses multi-langkah yang kompleks menggunakan konfigurasi perangkat keras yang umum dan umum ditemui. Mainkan hal-hal ini, uji cara kerjanya. Dengan cara ini Anda akan mempelajari cara menggunakan alat pembuatan perpustakaan yang digunakan di Tower. Saya telah mengatakan bahwa saya memerlukan waktu sekitar 3 bulan untuk mempersiapkan transisi. Saya pikir berdasarkan pengalaman saya, Anda akan dapat melakukan ini lebih cepat. Jangan anggap waktu ini terbuang percuma, karena nantinya Anda akan merasakan segala manfaat dari pekerjaan yang dilakukan.

Selanjutnya, Anda perlu memutuskan apa yang Anda harapkan dari Ansible Tower, apa sebenarnya yang harus dilakukan sistem ini untuk Anda.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Apakah Anda perlu menerapkan sistem pada perangkat keras kosong, pada mesin virtual kosong? Atau apakah Anda ingin mempertahankan kondisi pengoperasian dan pengaturan asli peralatan yang ada? Ini adalah aspek yang sangat penting bagi perusahaan publik, jadi Anda harus yakin bahwa Anda dapat memigrasi dan menerapkan Ansible pada konfigurasi yang ada. Identifikasi proses administratif rutin yang ingin Anda otomatisasi. Cari tahu apakah Anda perlu menerapkan aplikasi dan layanan tertentu pada sistem baru. Buatlah daftar apa yang ingin Anda lakukan dan prioritaskan.

Kemudian mulailah menulis kode skrip dan peran yang memungkinkan tugas yang Anda rencanakan untuk diselesaikan. Gabungkan semuanya ke dalam Proyek, kumpulan logis dari buku pedoman yang relevan. Setiap Proyek akan menjadi milik repositori Git terpisah atau repositori berbeda bergantung pada pengelola kode yang Anda gunakan. Anda dapat mengelola skrip playbook dan direktori playbook dengan menempatkannya secara manual di Project Base Path di server Tower, atau dengan menempatkan playbook di sistem manajemen kode sumber (SCM) apa pun yang didukung oleh Tower, termasuk Git, Subversion, Mercurial, dan Red Hat Wawasan. Dalam satu Proyek Anda dapat menempatkan skrip sebanyak yang Anda inginkan. Misalnya, saya membuat satu Proyek dasar di mana saya menempatkan skrip untuk elemen inti RedHat, skrip untuk inti Linux, dan skrip untuk garis dasar lainnya. Jadi, dalam satu proyek terdapat berbagai peran dan skenario yang dikelola dari satu repositori Git.

Menjalankan semua hal ini melalui baris perintah adalah cara yang baik untuk menguji fungsinya. Ini akan mempersiapkan Anda untuk instalasi Menara.

Mari kita bicara sedikit tentang transcoding manifes Boneka, karena saya menghabiskan banyak waktu untuk hal ini sampai saya menemukan apa yang sebenarnya perlu dilakukan.

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 1

Seperti yang saya katakan sebelumnya, Wayang menyimpan semua pengaturan dan opsi perangkat keras dalam satu manifes yang panjang, dan manifes ini menyimpan semua yang harus dilakukan SCM ini. Saat melakukan transisi, Anda tidak perlu menjejalkan semua tugas Anda ke dalam satu daftar; sebaliknya, pikirkan tentang struktur sistem baru: peran, skrip, tag, grup, dan apa yang harus dimasukkan ke dalamnya. Beberapa elemen jaringan otonom harus dikelompokkan ke dalam kelompok yang skripnya dapat dibuat. Elemen infrastruktur yang lebih kompleks yang melibatkan sejumlah besar sumber daya, termasuk kelas mandiri, dapat digabungkan menjadi beberapa peran. Sebelum bermigrasi, Anda perlu memutuskan hal ini. Jika Anda membuat peran atau skenario besar yang tidak muat dalam satu layar, Anda harus menggunakan tag agar dapat menangkap bagian infrastruktur tertentu.

18:00

Memotong benang: bermigrasi dari Perusahaan Boneka ke Ansible Tower. Bagian 2

Beberapa iklan πŸ™‚

Terima kasih untuk tetap bersama kami. Apakah Anda menyukai artikel kami? Ingin melihat konten yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikan kepada teman, cloud VPS untuk pengembang mulai $4.99, analog unik dari server level awal, yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps dari $19 atau bagaimana cara berbagi server? (tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

Dell R730xd 2x lebih murah di pusat data Equinix Tier IV di Amsterdam? Hanya disini 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV dari $199 di Belanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mulai $99! Membaca tentang Bagaimana membangun infrastruktur corp. kelas dengan penggunaan server Dell R730xd E5-2650 v4 senilai 9000 euro untuk satu sen?

Sumber: www.habr.com

Tambah komentar