<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sony Vansha's Blog | Catatan & Tutorial IT]]></title><description><![CDATA[Sony Vansha's Blog berisi catatan dan tutorial seputar dunia IT yang saya sukai, mulai dari cloud computing, DevOps, sysadmin, coding, hingga teknologi lainnya.]]></description><link>https://blog.sonyvansha.my.id</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1758636277459/aae1daa4-9413-45c2-83a6-dca7ee3689f7.png</url><title>Sony Vansha&apos;s Blog | Catatan &amp; Tutorial IT</title><link>https://blog.sonyvansha.my.id</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 16:57:18 GMT</lastBuildDate><atom:link href="https://blog.sonyvansha.my.id/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Kenalan dengan Ansible: Apa Itu, Bagaimana Cara Kerjanya, dan Mengapa YAML Penting]]></title><description><![CDATA[Apa itu Ansible?
Ansible adalah sebuah alat open-source untuk pengaturan perangkat lunak, pengelolaan konfigurasi, dan penerapan aplikasi secara otomatis tanpa perlu melakukan konfigurasi secara manual. Tool ini menggunakan bahasa yang sederhana yang...]]></description><link>https://blog.sonyvansha.my.id/kenalan-dengan-ansible-apa-itu-bagaimana-cara-kerjanya-dan-mengapa-yaml-penting</link><guid isPermaLink="true">https://blog.sonyvansha.my.id/kenalan-dengan-ansible-apa-itu-bagaimana-cara-kerjanya-dan-mengapa-yaml-penting</guid><category><![CDATA[ansible]]></category><category><![CDATA[#IaC]]></category><category><![CDATA[Infrastructure as code]]></category><dc:creator><![CDATA[Irvan Sony Afandi]]></dc:creator><pubDate>Thu, 25 Sep 2025 05:00:41 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1758646632123/ac4359fc-4e0e-455d-baf6-d09f61d60716.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-apa-itu-ansible"><strong>Apa itu Ansible?</strong></h2>
<p><strong>Ansible</strong> adalah sebuah alat open-source untuk pengaturan perangkat lunak, pengelolaan konfigurasi, dan penerapan aplikasi secara otomatis tanpa perlu melakukan konfigurasi secara manual. Tool ini menggunakan bahasa yang sederhana yang mudah dipahami yaitu YAML untuk menjelaskan tugas, dan dapat bekerja dengan beragam sistem dan teknologi. </p>
<p>Ansible pertama kali dikembangkan oleh <strong>Michael DeHaan</strong>. Dirilis pada tahun 2012 dan dengan cepat mendapatkan perhatian karena sederhana dan efektif. Kemudian pada tahun 2015, ansible diakuisisi oleh <strong>Red Hat</strong> salah satu perusahaan perangkat lunak open-source terbesar. </p>
<h3 id="heading-cara-kerja-ansible"><strong>Cara Kerja Ansible</strong></h3>
<p>Bayangkan kamu seorang administrasi sistem yang bertugas pada banyak server. Setiap server memerlukan konfigurasi yang sama. Pastinya harus dilakukan konfigurasi secara satu per satu dan memerlukan waktu lama. Dengan menggunakan tools bernama ansible, kamu bisa membuat konfigurasi yang sama dengan hanya menjalankan dalam 1 waktu secara singkat. </p>
<p><strong>Perbandingan ansible dengan alat otomatisasi Lainnya</strong> </p>
<ul>
<li><p>Ansible tidak memerlukan agen yang diinstal pada setiap node, membuatnya lebih mudah untuk diimplementasikan. </p>
</li>
<li><p>Menggunakan YAML yang membuat lebih mudah dibaca dan ditulis. ● Lebih mudah dipelajari karena sintaksnya yang sederhana dan tidak memerlukan pengetahuan pemrograman yang mendalam. </p>
</li>
<li><p>Memiliki komunitas yang besar dan aktif, sehingga kamu bisa mendapatkan dukungan dan sumber daya yang banyak.</p>
</li>
</ul>
<h2 id="heading-arsitektur-ansible"><strong>Arsitektur Ansible</strong></h2>
<p>Pada ansible memiliki arsitektur yang sangat sederhana dan elegan yang menjadikan ia begitu populer. Arsitektur Ansible bersifat <strong>agentless</strong>, artinya tidak membutuhkan perangkat lunak tambahan (agent) yang diinstal pada setiap server yang akan dikelola. Hal ini membuat proses penyiapan dan pemeliharaan menjadi lebih mudah. </p>
<p><strong>Diagram arsitektur ansible</strong></p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1758646680095/dc6cddb7-0882-42d2-bd82-3ac887ca6119.png" alt class="image--center mx-auto" /></p>
<p><strong>Berikut merupakan komponen utama ansible:</strong> </p>
<ul>
<li><p><strong>Control Node:</strong> server utama tempat untuk menjalankan ansible. </p>
</li>
<li><p><strong>Managed Nodes:</strong> beberapa server yang akan dikelola bisa berupa server fisik, virtual, atau cloud instance. </p>
</li>
<li><p><strong>Inventory:</strong> sebuah file yang berisi daftar semua managed nodes yang akan dikelola. Serta dapat mengelompokan server berbeda sehingga dapat menjalankan ansible ke salah satu kelompok. </p>
</li>
<li><p><strong>Playbook:</strong> file yang berisi konfigurasi apa saja yang ditulis dalam bahasa YAML. ● <strong>Modules:</strong> unit terkecil dari ansible yang bertanggung jawab untuk melakukan tugas seperti menginstal paket, menyalin file, atau memulai layanan. </p>
</li>
<li><p><strong>SSH:</strong> ansible menggunakan protokol SSH untuk bisa berkomunikasi dengan managed nodes.  </p>
</li>
</ul>
<h2 id="heading-ansible-pakai-bahasa-apa">Ansible Pakai bahasa apa?</h2>
<p><strong>YAML (YAML Ain't Markup Language)</strong> adalah sebuah bahasa yang dirancang untuk membuat data lebih mudah dibaca oleh manusia. YAML memiliki sifat yang <strong>case-sensitive</strong>, artinya huruf besar dan kecil dianggap berbeda. Misalnya, kata "Key" dan "key" akan dianggap sebagai dua elemen berbeda.</p>
<p><img src="https://media.licdn.com/dms/image/v2/C4E12AQFUoZ1vqT1WHQ/article-cover_image-shrink_720_1280/article-cover_image-shrink_720_1280/0/1618667793120?e=2147483647&amp;v=beta&amp;t=QgQTUYYGw6GKz9yJrxHdYvvlr80j31o6kdwnFGt7O2k" alt="Getting Started with YAML" class="image--center mx-auto" /></p>
<p><strong>Berikut fungsi lain dari YAML:</strong> </p>
<ul>
<li><p>Mudah dibaca dan ringkas membantu memahami konfigurasi dan data yang disajikan dengan cepat. </p>
</li>
<li><p>Mendukung struktur data kompleks termasuk list, map, dan scalar types, seperti integer, boolean, dan float. </p>
</li>
<li><p>Digunakan di beberapa bahasa pemrograman, seperti Python, Java, Ruby, dan JavaScript. </p>
</li>
<li><p>Sering digunakan dalam alur kerja integrasi dan pengiriman terus menerus (CI/CD) seperti Jenkins dan GitLab. </p>
</li>
<li><p>YAML menggunakan <strong>Ankors</strong> untuk menghindari duplikasi serta membuat kode lebih rapi dan efisien. </p>
</li>
<li><p>Sering kali digunakan untuk konfigurasi perangkat lunak. </p>
</li>
</ul>
<p><strong>Contoh Sederhana YAML:</strong></p>
<pre><code class="lang-yaml"><span class="hljs-attr">nama:</span> <span class="hljs-string">Sony</span> 
<span class="hljs-attr">umur:</span> <span class="hljs-number">25</span> 
<span class="hljs-attr">hobi:</span> 
<span class="hljs-bullet">-</span> <span class="hljs-string">bermain</span> <span class="hljs-string">game</span> 
<span class="hljs-bullet">-</span> <span class="hljs-string">membaca</span> <span class="hljs-string">buku</span> 
<span class="hljs-attr">kota:</span> <span class="hljs-string">Blitar</span>
</code></pre>
<p>Dari contoh di atas, terlihat bahwa YAML menggunakan indentasi untuk menunjukkan hierarki data. Setiap baris dimulai dengan kunci (nama) diikuti oleh tanda titik dua (:) dan nilai. Untuk list atau array, menggunakan tanda hubung (-).</p>
]]></content:encoded></item><item><title><![CDATA[Pengenalan Jenkins: Memahami Fungsi Utama dan Cara Kerjanya dalam DevOps]]></title><description><![CDATA[Jenkins adalah alat otomatisasi open-source yang sangat populer dalam dunia pengembangan perangkat lunak. Bayangkan memiliki asisten digital yang selalu siap sedia membantu mengotomatisasi tugas-tugas berulang seperti build, testing, dan deployment a...]]></description><link>https://blog.sonyvansha.my.id/pengenalan-jenkins-memahami-fungsi-utama-dan-cara-kerjanya-dalam-devops</link><guid isPermaLink="true">https://blog.sonyvansha.my.id/pengenalan-jenkins-memahami-fungsi-utama-dan-cara-kerjanya-dalam-devops</guid><category><![CDATA[Jenkins]]></category><category><![CDATA[Devops]]></category><category><![CDATA[Pipeline]]></category><dc:creator><![CDATA[Irvan Sony Afandi]]></dc:creator><pubDate>Wed, 24 Sep 2025 05:00:50 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1758645948271/40e750d6-78da-45b2-b44c-88f549d24749.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Jenkins</strong> adalah alat otomatisasi open-source yang sangat populer dalam dunia pengembangan perangkat lunak. Bayangkan memiliki asisten digital yang selalu siap sedia membantu mengotomatisasi tugas-tugas berulang seperti build, testing, dan deployment aplikasi. Dengan Jenkins, tim pengembang bisa fokus pada pembuatan kode berkualitas tanpa harus khawatir tentang proses integrasi yang memakan waktu.</p>
<h2 id="heading-beberapa-hal-yang-disediakan-jenkins"><strong>Beberapa hal yang disediakan jenkins</strong></h2>
<p>Jenkins menyediakan berbagai fitur canggih yang mengoptimalkan setiap tahap siklus hidup pengembangan. Berikut adalah beberapa fitur utama Jenkins yang membuatnya begitu istimewa:</p>
<ol>
<li><p><strong>Otomatisasi Pembangunan:</strong> Jenkins mampu mengotomatisasi proses build dan packaging project perangkat lunak. Bayangkan, setiap kali ada perubahan yang di commit ke sistem version control seperti Git, Jenkins langsung nge build project secara otomatis, menghemat waktu dan tenaga developer.</p>
</li>
<li><p><strong>Integrasi Terus-menerus:</strong> Dengan Jenkins, project perangkat lunak dibangun dan diuji secara otomatis setiap kali ada perubahan dalam kode. Ini membantu mendeteksi dan memperbaiki masalah integrasi sejak awal, menjaga kualitas kode tetap tinggi.</p>
</li>
<li><p><strong>Deployment Terus-menerus:</strong> Jenkins dapat secara otomatis menyebarkan perangkat lunak ke berbagai environment, mulai dari pengujian hingga production. Ini membuat proses rilis menjadi lebih cepat dan lebih andal.</p>
</li>
<li><p><strong>Sistem Plugin:</strong> Dengan komunitas developer yang besar dan aktif, Jenkins menawarkan ribuan plugin untuk memperluas fungsionalitasnya. Anda dapat dengan mudah menambahkan fitur baru sesuai kebutuhan project Anda.</p>
</li>
<li><p><strong>Pembangunan Terdistribusi:</strong> Jenkins mendukung pembangunan terdistribusi di beberapa mesin, mempercepat waktu build dan meningkatkan skalabilitas. Ini berarti project besar dapat dibangun lebih cepat dengan membagi beban kerja.</p>
</li>
<li><p><strong>Laporan dan Monitoring:</strong> Jenkins menyediakan berbagai fitur laporan dan monitoring, termasuk pemberitahuan status building, hasil pengujian, dan riwayat building. Anda selalu mendapatkan wawasan terbaru tentang keadaan project Anda.</p>
</li>
<li><p><strong>Keamanan:</strong> Jenkins menawarkan kontrol akses berbasis role dan mendukung berbagai metode otentikasi dan otorisasi seperti LDAP dan Active Directory, memastikan hanya orang yang berwenang yang dapat mengaksesnya.</p>
</li>
<li><p><strong>API Akses Remote:</strong> Jenkins menyediakan API yang memungkinkan pengguna untuk mengakses fungsinya secara programatis. Anda dapat memicu building, membuat job baru, dan mengelola pengguna dengan mudah melalui API ini.</p>
</li>
</ol>
<h2 id="heading-cara-kerja-jenkins"><strong>Cara Kerja Jenkins</strong></h2>
<p>Berikut adalah gambaran umum tentang cara kerja Jenkins:</p>
<ol>
<li><p><strong>Instalasi dan Konfigurasi</strong>: Jenkins diinstal di server atau virtual machine dan dikonfigurasi dengan plugin serta pengaturan dasar.</p>
</li>
<li><p><strong>Integrasi dengan Repositori:</strong> Jenkins dihubungkan ke system version control seperti Git. Ia dapat dipicu oleh commit baru melalui polling atau webhook.</p>
</li>
<li><p><strong>Pipeline dan Jobs:</strong> Pengguna membuat jobs atau pipeline yang menentukan langkah-langkah build, test, dan deployment.</p>
</li>
<li><p><strong>Build Otomatis:</strong> Jenkins mendeteksi perubahan kode di repository, memulai proses build otomatis, dan menjalankan pengujian.</p>
</li>
<li><p><strong>Deployment:</strong> Setelah build dan pengujian berhasil, Jenkins dapat secara otomatis mendistribusikan aplikasi ke berbagai lingkungan (testing, staging, production).</p>
</li>
<li><p><strong>Monitoring dan Laporan:</strong> Jenkins menyediakan laporan hasil build, notifikasi status, dan monitoring berkelanjutan untuk setiap job.</p>
</li>
</ol>
]]></content:encoded></item><item><title><![CDATA[Panduan Step-by-Step: Setup Git Server Pribadi dengan Gogs]]></title><description><![CDATA[Di dunia pengembangan perangkat lunak, Gogs adalah platform ringan yang memungkinkan Anda untuk menjalankan server Git pribadi Anda sendiri. Dengan menggunakan Gogs, Anda dapat membuat repository Git lokal di komputer Anda dan mengelola kode Anda den...]]></description><link>https://blog.sonyvansha.my.id/panduan-step-by-step-setup-git-server-pribadi-dengan-gogs</link><guid isPermaLink="true">https://blog.sonyvansha.my.id/panduan-step-by-step-setup-git-server-pribadi-dengan-gogs</guid><category><![CDATA[Git]]></category><category><![CDATA[Gogs]]></category><category><![CDATA[GitHub]]></category><dc:creator><![CDATA[Irvan Sony Afandi]]></dc:creator><pubDate>Tue, 23 Sep 2025 16:24:06 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1758643658472/de6789fa-ead7-4e24-9c2a-daaffccdc2e5.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Di dunia pengembangan perangkat lunak, Gogs adalah platform ringan yang memungkinkan Anda untuk menjalankan server Git pribadi Anda sendiri. Dengan menggunakan Gogs, Anda dapat membuat repository Git lokal di komputer Anda dan mengelola kode Anda dengan cara yang aman dan efisien.</p>
<p><strong>Gogs</strong> yang dikenal karena antarmuka pengguna yang bersih dan responsif, menawarkan berbagai fitur seperti manajemen akses, pelacakan masalah, wiki, dan banyak lagi. Hal ini membuatnya menjadi pilihan yang menarik bagi pengembang yang ingin kontrol penuh atas proyek mereka tanpa harus mengandalkan platform pihak ketiga.</p>
<p>Dengan menggunakan Gogs untuk repository Git lokal Anda, Anda dapat dengan mudah berkolaborasi dengan tim Anda atau bahkan melakukan pengembangan perangkat lunak secara individu. Gogs memberikan fleksibilitas dan keamanan yang Anda butuhkan untuk mengelola kode Anda, menjadikannya pilihan yang menarik di dunia pengembangan perangkat lunak modern.</p>
<p>Berikut configurasi pada gogs</p>
<h2 id="heading-setup-database-mariadb"><strong>Setup Database MariaDB</strong></h2>
<p>Instal MariaDB dengan perintah:</p>
<pre><code class="lang-powershell">sudo apt install mariadb<span class="hljs-literal">-server</span> <span class="hljs-literal">-y</span>
</code></pre>
<p>Setelah terinstal, amankan server database dengan perintah:</p>
<pre><code class="lang-powershell">sudo mysql_secure_installation
</code></pre>
<p>Masuk ke consol mariadb dengan perintah:</p>
<pre><code class="lang-powershell">mysql <span class="hljs-literal">-u</span> root <span class="hljs-literal">-p</span>
</code></pre>
<p>Buat database yang akan digunakan Gogs:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">SCHEMA</span> <span class="hljs-string">`gogs`</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-built_in">CHARACTER</span> <span class="hljs-keyword">SET</span> utf8 <span class="hljs-keyword">COLLATE</span> utf8_general_ci;
</code></pre>
<p>| Notes: disini menggunakan utf8 karena gogs meminta untuk digunakan pada system storage nya</p>
<p>Buat user untuk digunakan akses database nya:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">GRANT</span> <span class="hljs-keyword">ALL</span> <span class="hljs-keyword">PRIVILEGES</span> <span class="hljs-keyword">ON</span> gogs.* <span class="hljs-keyword">TO</span> <span class="hljs-string">'gogs'</span>@<span class="hljs-string">'localhost'</span> <span class="hljs-keyword">IDENTIFIED</span> <span class="hljs-keyword">BY</span> <span class="hljs-string">'PASSWORD'</span>;
</code></pre>
<p>muat ulang tabel izin (privilege tables) di database server:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">FLUSH</span> <span class="hljs-keyword">PRIVILEGES</span>;
</code></pre>
<p>Keluar dari consol database:</p>
<pre><code class="lang-sql">exit;
</code></pre>
<h2 id="heading-setup-user-and-wget-gogs"><strong>Setup user and wget gogs</strong></h2>
<p>buat user untuk digunakan gogs, disini menggunakan nama git:</p>
<pre><code class="lang-powershell">sudo adduser -<span class="hljs-literal">-system</span> -<span class="hljs-literal">-group</span> -<span class="hljs-literal">-disabled</span><span class="hljs-literal">-password</span> -<span class="hljs-literal">-shell</span> /bin/bash -<span class="hljs-literal">-home</span> /home/git -<span class="hljs-literal">-gecos</span> <span class="hljs-string">'Gogs User'</span> git
</code></pre>
<p>Setelah membuat user untuk gogs, sekarang untuk mengunduh dan unzip gogs. Sebelum melakukan configurasi, pastikan untuk memilih versi di <a target="_blank" href="https://www.blogger.com/blog/post/edit/1680902636455767004/5727007082316014187#"><strong>halaman unduh Gogs</strong></a> untuk nomor rilis.</p>
<p>Download file gogs terbaru di dalam directory <strong>/tmp</strong> dengan perintah:</p>
<pre><code class="lang-powershell"><span class="hljs-built_in">wget</span> <span class="hljs-literal">-P</span> /tmp https://dl.gogs.io/<span class="hljs-number">0.12</span>.<span class="hljs-number">3</span>/gogs_0.<span class="hljs-number">12.3</span>_linux_amd64.tar.gz
</code></pre>
<p>Ekstrak arsip dan pindahkan ke /opt/gogs dengan perintah:</p>
<pre><code class="lang-powershell">sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz <span class="hljs-literal">-C</span> /home/git
</code></pre>
<p>Ubah kepemilikan direktori Gogs baru dengan:</p>
<pre><code class="lang-powershell">sudo chown <span class="hljs-literal">-R</span> git: /home/git/gogs
</code></pre>
<h2 id="heading-setup-file-systemd-and-start-service"><strong>Setup file systemd and start service</strong></h2>
<p>Unduhan Gogs menyertakan file systemd yang dapat Anda salin dengan mudah dengan perintah:</p>
<pre><code class="lang-powershell">sudo <span class="hljs-built_in">cp</span> /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
</code></pre>
<p>Setelah file berada di tempatnya, mulai dan aktifkan Gogs dengan perintah:</p>
<pre><code class="lang-powershell">sudo systemctl <span class="hljs-built_in">start</span> gogs
sudo systemctl enable gogs
</code></pre>
<h2 id="heading-instalasi-dari-gui-web"><strong>Instalasi dari GUI web</strong></h2>
<p>Buka web browser dan arahkan ke <code>http://YOUR_IP:3000</code> (menggunakan IP atau domain server anda). Maka akan muncul tampilan seperti ini, dimana anda harus mengkonfigurasi parameter database.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1758644807596/e5195e50-adff-4e96-8504-4edd7bb79654.png" alt class="image--center mx-auto" /></p>
<p>Pastikan untuk memilih MySQL dari dropdown database dan isi yang berikut ini:</p>
<ul>
<li><p><strong>Host:</strong> 127.0.0.1:3306</p>
</li>
<li><p><strong>User:</strong> gogs</p>
</li>
<li><p><strong>Password:</strong> kata sandi yang dibuat saat buat user gogs</p>
</li>
<li><p><strong>Database Name:</strong> gogs</p>
</li>
<li><p><strong>Domain:</strong> domain atau alamat IP host server anda</p>
</li>
</ul>
<p>Selesai, Gogs kini aktif dan berjalan di server Anda.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1758644814844/bf11446c-4e35-4ed9-be0c-8c2b494312f9.png" alt class="image--center mx-auto" /></p>
]]></content:encoded></item></channel></rss>