Trimming Threads: Bermigrasi dari Puppet Enterprise ke Ansible Tower. Bagian 1

Layanan Informasi Satelit Lingkungan Nasional (NESDIS) telah mengurangi biaya manajemen konfigurasi Red Hat Enterprise Linux (RHEL) sebesar 35% dengan pindah dari Puppet Enterprise ke Ansible Tower. Dalam video ini dari kategori "bagaimana kami melakukannya", insinyur sistem Michael Rau mendukung implementasi migrasi ini, berbagi tips dan pengalaman yang bermanfaat sebagai hasil dari transisi dari satu SCM ke yang lain.

Dari video ini Anda akan belajar:

  • Bagaimana membenarkan manajemen kelayakan pindah dari Puppet Enterprise ke Ansible Tower;
  • strategi apa yang digunakan untuk transisi paling lancar;
  • kiat untuk menerjemahkan manifes PE di Playbook Ansible;
  • Praktik terbaik untuk memasang Ansible Tower.



Salam kepada semua, nama saya Michael Rau, saya seorang insinyur sistem senior di ActioNet, yang bekerja untuk Administrasi Kelautan dan Atmosfer Nasional (NOAA) NESDIS. Hari ini kita akan berbicara tentang pemangkasan garis - pengalaman saya sendiri bermigrasi dari Puppet Enterprise ke Ansible Tower. Tema dari presentasi ini adalah untuk โ€œmelihat bekas lukakuโ€ yang tersisa setelah saya melakukan transisi ini di awal tahun. Saya ingin memberi tahu apa yang saya pelajari selama proses ini. Jadi ketika Anda melakukan ini, menggunakan pengalaman saya, Anda dapat melakukan transisi tanpa terlalu banyak kesulitan.

Anda melihat slide yang mirip dengan ini di awal setiap presentasi di Ansible Fest. Slide ini menunjukkan sejarah otomatisasi perusahaan saya. Saya bukan orang baru dalam bisnis ini karena saya telah menggunakan Perusahaan Wayang / Wayang sejak 2007. Saya mulai bekerja dengan Ansible pada 2016, dan saya, seperti banyak pengguna lain dari produk ini, tertarik dengan kemungkinan "trik" menggunakan baris perintah dan skrip sederhana (buku pedoman). Pada akhir 2017, saya beralih ke kepemimpinan saya tentang alasan bagus untuk pindah ke Ansible Tower. Sebentar lagi saya akan berbicara tentang alasan yang mendorong saya untuk mengambil langkah ini. Setelah mendapat persetujuan manajemen, butuh beberapa bulan lagi untuk memenuhi rencana itu, dan saya melakukan transisi pada Januari-Februari tahun ini. Jadi, kami sepenuhnya meninggalkan Wayang demi Ansible, dan ini adalah hal yang hebat.



Yang paling menarik bagi saya untuk Ansible adalah kemampuan untuk menulis dan menggunakan peran dan skrip (buku pedoman). Peran sangat bagus untuk membuat tugas (tugas) yang berbeda, tetapi saling terkait dan menempatkan semua data yang terkait dengan tugas ini di satu tempat. Playbook adalah sintaks YAML, file skrip yang menjelaskan tindakan untuk satu atau lebih host. Saya berbicara tentang fitur ini kepada pengguna, terutama pengembang perangkat lunak. Ansible Tower memungkinkan untuk mengatakan: "Tidak, Anda tidak memiliki akses ke akses shell, tapi saya memberi Anda kesempatan untuk memulai semua proses Tower dan memulai kembali layanan ketika Anda membutuhkannya." Saya akan memberi tahu Anda tentang lingkungan kerja dan peralatan yang kami gunakan.



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

Jaringan federal berarti bahwa saya harus menggunakan semua cara perlindungan informasi yang disediakan oleh tindakan legislatif. Anda harus ingat bahwa Perusahaan Wayang tidak mendukung sebagian besar peralatan yang kami gunakan. Kami terpaksa menggunakan perangkat keras anggaran karena lembaga pemerintah mengalami masalah dalam membiayai pengeluaran ini. Oleh karena itu, kami membeli perangkat keras kelas SuperMicro dan merakit peralatan kami dari bagian-bagian individual, yang perawatannya dijamin oleh kontrak pemerintah. Kami menggunakan Linux, dan ini adalah salah satu alasan penting untuk beralih ke Ansible.

Sejarah kami dengan Wayang adalah ini.



Pada tahun 2007, kami memiliki jaringan kecil 20-25 node, di mana kami menyebarkan Wayang. Pada dasarnya, simpul-simpul ini hanyalah "kotak" dari RedHat. Pada 2010, kami mulai menggunakan antarmuka web Puppet Dashboard selama 45 node. Ketika jaringan terus berkembang, pada 2014 kami beralih ke PE 3.3, membuat transisi lengkap dengan menulis ulang manifes untuk 75 node. Ini harus dilakukan karena Wayang suka mengubah aturan permainan, dan dalam hal ini mereka benar-benar mengubah bahasa. Setahun kemudian, ketika dukungan untuk Puppet Enterprise versi 3 dihentikan, kami terpaksa bermigrasi ke PE 2015.2. Saya kembali harus menulis ulang manifes untuk server baru dan membeli lisensi dengan cadangan 100 node, meskipun pada saat itu kami hanya memiliki 85 node.

Hanya 2 tahun berlalu, dan sekali lagi kami harus melakukan banyak pekerjaan untuk beralih ke versi baru PE 2016.4. Kami membeli lisensi untuk 300 node, dengan total 130 node. Kami sekali lagi harus membuat perubahan besar pada manifes, karena versi bahasa yang baru memiliki sintaks yang berbeda dari bahasa versi 2015. Akibatnya, SCM kami beralih dari sistem kontrol versi SVN ke Bitbucket (Git). Itulah "hubungan" kami dengan Wayang.

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



Argumen kedua adalah fleksibilitas. Wayang hanya mendukung perangkat keras dengan agen Wayang. Ini berarti bahwa Anda perlu menginstal agen pada semua switch, dan itu harus versi terbaru. Dan jika bagian dari sakelar Anda mendukung satu versi, dan sebagian lainnya, Anda perlu menginstal versi baru agen PE sehingga semuanya dapat bekerja dalam satu sistem SCM.

Sistem Ansible Tower bekerja secara berbeda karena tidak memiliki agen, tetapi ada modul yang mendukung switch Cisco dan semua switch lainnya. SCM ini mendukung OS Qubes, Linux, dan 4.NET UTM. Ansible Tower juga mendukung NexentaStore NAS yang berbasis pada kernel Illumos, sistem operasi open-source berbasis Unix. Ini sangat sedikit dukungan, tetapi Ansible Tower tetap melakukannya.

Argumen ketiga, yang sangat penting bagi saya dan untuk administrasi kami, adalah kemudahan pengembangan. Saya menguasai modul dan kode manifes Wayang selama 10 tahun, tetapi saya belajar Ansible selama seminggu, karena jauh lebih mudah untuk bekerja dengan SCM ini. Jika Anda menjalankan file yang dapat dieksekusi, tentu saja, jika Anda tidak melakukannya secara tidak perlu, maka penangan yang masuk akal dan responsif akan menggunakannya. Skrip playbook berbasis YAML mudah dipelajari dan cepat digunakan. Mereka yang belum pernah mendengar tentang YAML sebelumnya hanya dapat membaca skrip dan dengan mudah memahami cara kerjanya.

Jujur, Wayang mempersulit pekerjaan Anda sebagai pengembang, karena didasarkan pada penggunaan Wayang Guru. Ini adalah satu-satunya mesin yang diizinkan untuk berkomunikasi dengan agen Wayang. Jika Anda membuat perubahan pada manifes dan ingin menguji kode Anda, Anda harus menulis ulang kode untuk Master Wayang, yaitu, mengkonfigurasi file master Wayang / etc / hosts untuk menghubungkan semua klien dan memulai layanan Server Wayang. Hanya dengan begitu Anda dapat menguji pengoperasian peralatan jaringan pada satu host. Ini adalah prosedur yang agak menyakitkan.
Dalam Ansible, semuanya jauh lebih sederhana. Semua yang perlu dilakukan adalah mengembangkan kode untuk mesin yang dapat berkomunikasi melalui SSH dengan tuan rumah yang diuji. Ini jauh lebih mudah untuk dikerjakan.

Kelebihan besar berikutnya dari Ansible Tower adalah kemampuan untuk meningkatkan sistem pendukung yang ada dan menyimpan konfigurasi perangkat keras yang ada. SCM ini tanpa tindakan tambahan menggunakan semua informasi yang tersedia tentang infrastruktur dan peralatan Anda, mesin virtual, server, dll. Ini dapat berkomunikasi dengan server Satelit RH Anda, jika ada, dan memberi Anda integrasi yang tidak akan pernah Anda dapatkan ketika bekerja dengan Puppet.

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

Tower menyelamatkan Anda dari ini. Anda dapat melakukan berbagai proses pada berbagai peralatan tanpa batasan, Anda dapat melakukan pekerjaan utama, memulai proses penting lainnya, mengkonfigurasi sistem keamanan, bekerja dengan basis data. Anda dapat melakukan apa saja yang disertai dengan kesulitan tertentu di Puppet Enterprise. Jadi, jika Anda telah mengkonfigurasi pada satu host, itu akan membutuhkan waktu untuk perubahan untuk berlaku pada host lain. Di Ansible, semua perubahan berlaku secara bersamaan.

Akhirnya, pertimbangkan modul keamanan. Di Ansible Tower, ini dilaksanakan dengan sangat luar biasa, dengan akurasi dan ketelitian yang tinggi. Anda dapat memberi pengguna akses ke layanan tertentu atau ke host tertentu. Saya melakukan ini dengan karyawan saya yang terbiasa bekerja di Windows, membatasi mereka akses ke shell Linux. Saya memberi mereka akses ke Menara sehingga mereka hanya dapat melakukan pekerjaan dan hanya menjalankan layanan yang sesuai dengan kompetensi mereka.



Mari kita lihat hal-hal yang perlu Anda lakukan sebelumnya untuk memfasilitasi transisi ke Ansible Tower. Pertama-tama, perlu menyiapkan peralatan Anda. Jika ada 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, tetapi jika Anda tidak menambahkannya di sana sebelum pindah ke Tower, Anda akan kehilangan sejumlah keuntungan. Ini mungkin merupakan basis data awal "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 membuat semua perubahan infrastruktur ke database, lalu Ansible akan tahu host mana yang harus berada dalam sistem baru. Anda tidak perlu memberi tahu SCM ini,host mana yang Anda tambahkan dan host mana yang tidak ada lagi, karena dia akan mengetahui semua ini secara otomatis. Semakin banyak data akan ada dalam database, Ansible yang lebih berguna dan fleksibel. Ini berfungsi seolah-olah hanya membaca barcode status peralatan dari database.

Luangkan waktu untuk mengenal baris perintah di Ansible. Jalankan beberapa perintah khusus untuk menguji skrip perangkat keras, tulis dan jalankan beberapa skrip playbook yang sederhana namun bermanfaat, gunakan templat Jinja2 yang sesuai. Cobalah menulis peran dan skrip untuk proses multi-tahap yang kompleks menggunakan konfigurasi perangkat keras standar yang sering dijumpai. Bermainlah dengan benda-benda ini, ujilah cara kerjanya. Dengan cara ini Anda akan belajar cara bekerja dengan alat untuk membuat perpustakaan yang digunakan di Menara. Saya sudah mengatakan bahwa saya membutuhkan sekitar 3 bulan untuk mempersiapkan transisi. Saya pikir berdasarkan pengalaman saya, Anda akan dapat melakukannya lebih cepat. Jangan anggap waktu ini hilang, karena nantinya Anda akan merasakan semua kelebihan dari pekerjaan yang dilakukan.

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



Apakah Anda perlu menggunakan sistem pada perangkat keras kosong, pada mesin virtual kosong? Atau apakah Anda ingin menjaga kondisi kerja asli dan pengaturan peralatan yang ada? Ini adalah aspek yang sangat penting untuk pekerjaan perusahaan milik negara, jadi Anda harus yakin bahwa Anda akan dapat bermigrasi dan menggunakan Ansible pada konfigurasi yang ada. Identifikasi proses administrasi rutin yang ingin Anda otomatisasi. Cari tahu apakah Anda perlu menggunakan aplikasi dan layanan spesifik pada sistem baru. Buat daftar apa yang ingin Anda lakukan dan prioritaskan.

Kemudian mulailah menulis kode untuk skrip dan peran yang akan membantu Anda menyelesaikan tugas yang direncanakan. Gabungkan mereka dalam Projects, koleksi skrip playbook yang relevan secara logis. Setiap Proyek akan berhubungan dengan repositori Git yang terpisah atau repositori lain tergantung pada manajer kode mana 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 Tower (SCM) apa pun, termasuk Git, Subversion, Mercurial, dan Red Hat Insights. Dalam satu Proyek, Anda dapat menempatkan skrip sebanyak yang Anda inginkan. Sebagai contoh, saya membuat satu Proyek dasar, di mana saya menempatkan skrip untuk elemen utama RedHat, skrip untuk dasar-dasar Linux,Skenario untuk baseline yang tersisa. Dengan demikian, dalam satu proyek ada berbagai peran dan skrip yang dikelola dari satu repositori Git.

Jalankan semua ini melalui baris perintah, ini adalah cara yang baik untuk menguji kinerja mereka. Dengan cara ini Anda bersiap-siap untuk instalasi Menara.

Mari kita bicara sedikit tentang transcoding manifes Wayang, karena saya menghabiskan banyak waktu di sana sampai saya menemukan apa yang benar-benar perlu dilakukan.



Seperti yang saya katakan sebelumnya, Wayang menyimpan semua pengaturan dan parameter peralatan dalam satu manifes panjang, dan manifes ini berisi semua yang harus dilakukan SCM ini. Selama masa transisi, Anda tidak perlu memasukkan semua tugas Anda ke dalam satu daftar, alih-alih pikirkan struktur sistem baru: peran, skrip, tag, grup, dan apa yang seharusnya ada di sana. Beberapa elemen jaringan yang berdiri sendiri harus dikelompokkan ke dalam grup yang Anda dapat membuat skrip. Elemen infrastruktur yang lebih kompleks yang melibatkan sejumlah besar sumber daya, termasuk kelas otonom, dapat digabungkan dalam peran. Sebelum migrasi, Anda harus memutuskan ini. Jika Anda membuat banyak peran atau skrip yang tidak sesuai pada satu layar, Anda harus menggunakan tag untuk dapat menangkap bagian-bagian individual dari infrastruktur.

18:00

Memangkas Utas: Bermigrasi dari Puppet Enterprise ke Ansible Tower. Bagian 2

Sedikit iklan :)


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

Dell R730xd 2 kali lebih murah di pusat data Equinix Tier IV di Amsterdam? Hanya kami yang memiliki 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 dari $ 99! Baca tentang Cara Membangun Infrastruktur Bldg. kelas c menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

All Articles