tag:blogger.com,1999:blog-25143392999154667222024-03-13T06:05:37.036+07:00Catatan Si JuniorTrust Me, Saya Bukan Anak ITAlfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.comBlogger86125tag:blogger.com,1999:blog-2514339299915466722.post-18384135270950487412021-02-18T17:02:00.008+07:002022-01-31T03:38:06.334+07:00Resize Partisi Root Debian Server Tanpa Restart Server<p>Berikut adalah environment yang saya gunakan</p><p>OS : Debian 10</p><p>Kapasitas Disk awal : 8 GB</p><p>Kapasitas Disk akhir : 40GB</p><p>partprobe : v3.2</p><p>fdisk : 2.33.1</p><p>resize2fs: 1.44.5<br /> <span></span></p><a name='more'></a><br /><p></p><p>struktur partisi hanya / saja <br /></p><p>Versi debian</p><p><br /></p><p> <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjxQ3blqopmC8-v0R-WIlb4be5ViW4jWlClzdIBKXKCWp_Q24eiYTLE6VvbBxQEtXMILPuHOdItOLOMLd19bG_NLSAAaUMKhy_CpJkPpbI2ooG1DeR-mZopTYk8TEcIj0aaDmtU6C6jQw/s372/debian-version.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="141" data-original-width="372" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjxQ3blqopmC8-v0R-WIlb4be5ViW4jWlClzdIBKXKCWp_Q24eiYTLE6VvbBxQEtXMILPuHOdItOLOMLd19bG_NLSAAaUMKhy_CpJkPpbI2ooG1DeR-mZopTYk8TEcIj0aaDmtU6C6jQw/s320/debian-version.png" width="320" /></a></div><br /><p></p><p> </p><p> <br /></p><p> </p><p>struktur partisi sistem <br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipoSA8AMrcsxh4GpRj-D8m0tLDp5m_5A1vItvajsH4MfvFL5CCN6ityuQkOh2OWcaZ04ueqOb_QAL1tVOI4hfomnrAdLolzPnLNvopEWdRIYo4IcbQei5ycjqMigclEOZuAim2ZCM2rdA/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="174" data-original-width="451" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipoSA8AMrcsxh4GpRj-D8m0tLDp5m_5A1vItvajsH4MfvFL5CCN6ityuQkOh2OWcaZ04ueqOb_QAL1tVOI4hfomnrAdLolzPnLNvopEWdRIYo4IcbQei5ycjqMigclEOZuAim2ZCM2rdA/" width="320" /></a></div><p><br /></p><p>untuk melihat struktur disk yang ada pada server</p><p></p><div class="separator" style="clear: both; text-align: center;"></div><p></p><p></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNpAhYyZKeoG3nQjhkbDCytUboBU7RWrhPZoUQZoj0iOlZBQCeRMPhGDHaOmr8SZG2z7GEXF1RJwM0I5HgojUZVCzrWgW_CKZ4vqH1fSxKzeYzsof0v5Qh1UvRb983hKTzx3-UEiUU51g/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="109" data-original-width="374" height="93" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNpAhYyZKeoG3nQjhkbDCytUboBU7RWrhPZoUQZoj0iOlZBQCeRMPhGDHaOmr8SZG2z7GEXF1RJwM0I5HgojUZVCzrWgW_CKZ4vqH1fSxKzeYzsof0v5Qh1UvRb983hKTzx3-UEiUU51g/" width="320" /></a></div><br /><br /><p></p><p>partisi dengan tool fdisk</p><p>sudo fdisk /dev/sda</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBw8HG6lpkJOW4ruDpjNbgp_hp1fWPeVWNF1iUhrOa7kQS7o-1lgFMfTtiP7RwNfH_jN4GSGXUaHsaou1KWAj0465FBRJ7oV-Qilm3q8p2TMX0RAMqLNA511XJOO1A41wO07KRGeWFT-4/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="597" data-original-width="561" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBw8HG6lpkJOW4ruDpjNbgp_hp1fWPeVWNF1iUhrOa7kQS7o-1lgFMfTtiP7RwNfH_jN4GSGXUaHsaou1KWAj0465FBRJ7oV-Qilm3q8p2TMX0RAMqLNA511XJOO1A41wO07KRGeWFT-4/" width="226" /></a></div><p><br /></p><p>bagi yang mengalami error seperti gambar berikut </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVq0wzdO8mZdHnwOs7TVhDV-WeFS9PjeMeZ-AbR2oDGLHRPKdXhnOfhdJtl66Z_HcuydnjNGZS5MhxJ8h1Dc1GcYEh5XRnq9UK3bkRrbloVsAu5XO4uZwLnWhMlIUTODMJ9OjrymQhshk/s797/gpt1.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="241" data-original-width="797" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVq0wzdO8mZdHnwOs7TVhDV-WeFS9PjeMeZ-AbR2oDGLHRPKdXhnOfhdJtl66Z_HcuydnjNGZS5MhxJ8h1Dc1GcYEh5XRnq9UK3bkRrbloVsAu5XO4uZwLnWhMlIUTODMJ9OjrymQhshk/s320/gpt1.JPG" width="320" /></a></div><p>gunakan perintah parted -l (referensi dapat dilihat <a href="https://superuser.com/a/1410949" target="_blank">disini</a>)<br /></p><p>ketika kita run kembali command fdisk /dev/sda output yang dihasilkan kurang lebih seperti gambar berikut<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsykHW4OpeBlBq7CJyf-r4aB_SXqosWdBB-VJmhn50A9_axUmxzi-_ZGqKlZ4l3seISjDqXr6QVokWoC4AS41I9UI8COWEDhaJPn1olPQZdWI1Yx-BUZ75n0XlxeClabHRwc-qgR1eggg/s850/gpt2.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="544" data-original-width="850" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsykHW4OpeBlBq7CJyf-r4aB_SXqosWdBB-VJmhn50A9_axUmxzi-_ZGqKlZ4l3seISjDqXr6QVokWoC4AS41I9UI8COWEDhaJPn1olPQZdWI1Yx-BUZ75n0XlxeClabHRwc-qgR1eggg/s320/gpt2.JPG" width="320" /></a></div><br /><p>selanjutnya tekan p untuk melihat struktur partisi</p><p>dan tekan d untuk menghapus partisi</p><p><br /></p><p>jika terdapat beberapa partisi, maka kita akan diminta untuk memilih</p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6DfqeOu6hTIzcXQNH_xkxvwA6NeoT0nwFcXkukks-017jhCedjJHQXHmNwA8wCGDyKoSVUffJlXqe0ydFBLQ3Pb_t4mUQV9Xr-IBW4s9hEMQDr0-PtMIWEpmjOIcA9TzzPS3aSf-1OWc/s638/multi-partisi.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="389" data-original-width="638" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6DfqeOu6hTIzcXQNH_xkxvwA6NeoT0nwFcXkukks-017jhCedjJHQXHmNwA8wCGDyKoSVUffJlXqe0ydFBLQ3Pb_t4mUQV9Xr-IBW4s9hEMQDr0-PtMIWEpmjOIcA9TzzPS3aSf-1OWc/s320/multi-partisi.JPG" width="320" /></a></p><p><br /></p><p>untuk membuat partisi baru</p><p><br /></p><p></p><div class="separator" style="clear: both; text-align: center;"></div><p></p><p></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_IqNBnxYO1uwhYmUmpX0bgmTFuDGFmH2F6ZKg7EPZN_WjJLG4NYaZK6rPARF1kEnjyMlPSDvkBOF8I-sTaNO8RxK6yEqgfIf-5-t-eJT5PIgjmVQMnbDyEjI97Rmtskp2jsE9B7Dhhr4/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="607" data-original-width="734" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_IqNBnxYO1uwhYmUmpX0bgmTFuDGFmH2F6ZKg7EPZN_WjJLG4NYaZK6rPARF1kEnjyMlPSDvkBOF8I-sTaNO8RxK6yEqgfIf-5-t-eJT5PIgjmVQMnbDyEjI97Rmtskp2jsE9B7Dhhr4/" width="290" /></a></div><br /><br /><p></p><p><br /></p><p><br /></p><p>jika sudah akan otomatis keluar dari aplikasi fdisk. dan disk kita masih memiliki kapasitas yang berubah (masih 8GB)</p><p><br /></p><p><span> </span></p><div class="separator" style="clear: both; text-align: center;"></div><p></p><p></p><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCG3XjhB87n0_Z_9qclgB2Wnjx6u1tBxUZ3kd_e31oZIECtKdkT54S6_2aOlqT_A8z2HzdLp3RTX4cZTgXSSQDa3Qik4ib3jx0tK-Y6Ra2-8lLuTQ_Daa3hemhzYHpaENhTiaswTtMO9A/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="291" data-original-width="471" height="198" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCG3XjhB87n0_Z_9qclgB2Wnjx6u1tBxUZ3kd_e31oZIECtKdkT54S6_2aOlqT_A8z2HzdLp3RTX4cZTgXSSQDa3Qik4ib3jx0tK-Y6Ra2-8lLuTQ_Daa3hemhzYHpaENhTiaswTtMO9A/" width="320" /></a></div><br /><br /><p></p><p><br /></p><p></p><p>run partprobe, jika belum terinstall, gunakan perintah apt-get install parted -y<br /></p><p><br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgznEMRPP2K_qs9-sLkjV7K9iiFLhU0pEB72A54z3h41kI0ONx8ziZQq1B-LUdfj9KsNOn9-uSUt2yPnorniEMpiX34T0xsEWF2t_cz6ejtDftuE28-ssArnvGWdUKETBG43s9rLxJV3h0/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="191" data-original-width="546" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgznEMRPP2K_qs9-sLkjV7K9iiFLhU0pEB72A54z3h41kI0ONx8ziZQq1B-LUdfj9KsNOn9-uSUt2yPnorniEMpiX34T0xsEWF2t_cz6ejtDftuE28-ssArnvGWdUKETBG43s9rLxJV3h0/" width="320" /></a></div><p></p><p><br /></p><p>jika partisi lebih dari satu, maka sesuaikan id device nya</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIt7_1rEUq9Nks8zamtFMzRTsMbote7LXE9DgmBSSJc2hMyRyG5Y2evACOFmwa2EorQ6dJcJzI2fOVB4kGKzF9A1kNs1ahG5XLY5xCSx-q2d-Doc3HSoHwQgJBC8Tf_5akCMEhLY4_y1g/s688/partprobe-multi-partition.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="180" data-original-width="688" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIt7_1rEUq9Nks8zamtFMzRTsMbote7LXE9DgmBSSJc2hMyRyG5Y2evACOFmwa2EorQ6dJcJzI2fOVB4kGKzF9A1kNs1ahG5XLY5xCSx-q2d-Doc3HSoHwQgJBC8Tf_5akCMEhLY4_y1g/s320/partprobe-multi-partition.JPG" width="320" /></a></div><br /><p>atau lebih lengkapnya</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiNGaiWHOLE23aGZs5_VkF1Rofed1IDqsLl2cgfTVXGdI7OZjXsMw6Zp0jrFTS6Gy4VP_rK7D8fFPP3-7xjTU_StFII4XyevOnMUVTGp6I7ZUFoph6MQhTnEW-481g5M95wcSY7v4HE5s/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="257" data-original-width="449" height="183" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiNGaiWHOLE23aGZs5_VkF1Rofed1IDqsLl2cgfTVXGdI7OZjXsMw6Zp0jrFTS6Gy4VP_rK7D8fFPP3-7xjTU_StFII4XyevOnMUVTGp6I7ZUFoph6MQhTnEW-481g5M95wcSY7v4HE5s/" width="320" /></a></div><br /><br /><p>bagi yang menggunakan format file system xfs, mungkin akan mengalami error berikut:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhXo7yZglWcR1UCv__m1gQchgvNLIYRyVsabe_2iV3Pc9BwvMBShUEJzO0lgq8LriUrtdnFTRxWypasXhSiHxFNdBxcxAHFDMn0fWLfGsgoH9vrviUEr9WCfgEgAmWrtlFKFS_rZz83ZXZ7J5HWwlELaADGHLOHYU7TdIj9jAL0GFSTAbMcxwtTgIY=s620" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="103" data-original-width="620" height="53" src="https://blogger.googleusercontent.com/img/a/AVvXsEhXo7yZglWcR1UCv__m1gQchgvNLIYRyVsabe_2iV3Pc9BwvMBShUEJzO0lgq8LriUrtdnFTRxWypasXhSiHxFNdBxcxAHFDMn0fWLfGsgoH9vrviUEr9WCfgEgAmWrtlFKFS_rZz83ZXZ7J5HWwlELaADGHLOHYU7TdIj9jAL0GFSTAbMcxwtTgIY=s320" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiBc0yzxfgeanwv64KGeArP3xaNqm45iGGL09SCG0n4SqMo1vJv2aTi54ogUSp_gkTv23RLJyvz1YCLqGHH6Ego6VjqEeRb6kHuSg-RGSiboeUuWTw6N5cnvIIJV-HQy0WbSd4zi_b6hx0sEX9_yP10LWMLaLFqxcV5jVZ3WSBH5zQuzkdMh3sRI4U=s653" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="234" data-original-width="653" height="115" src="https://blogger.googleusercontent.com/img/a/AVvXsEiBc0yzxfgeanwv64KGeArP3xaNqm45iGGL09SCG0n4SqMo1vJv2aTi54ogUSp_gkTv23RLJyvz1YCLqGHH6Ego6VjqEeRb6kHuSg-RGSiboeUuWTw6N5cnvIIJV-HQy0WbSd4zi_b6hx0sEX9_yP10LWMLaLFqxcV5jVZ3WSBH5zQuzkdMh3sRI4U=s320" width="320" /></a></div><p>semoga bermanfaat<br /></p><p></p><p></p><p></p><p>referensi:</p><ul style="text-align: left;"><li><a href="https://stackoverflow.com/a/40200406">https://stackoverflow.com/a/40200406</a></li></ul><p><br /></p><p><br /></p><p><br /></p>Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com3tag:blogger.com,1999:blog-2514339299915466722.post-64949317680239326892020-11-02T12:40:00.002+07:002020-11-02T12:40:41.199+07:00Issue Anyar<p><br />
<span face=""arial" , "tahoma" , "helvetica" , "freesans" , sans-serif" style="background-color: white; font-size: 13px;">Original <a href="https://jateng.tribunnews.com/2019/09/18/lirik-lagu-kartonyono-medot-janji-denny-caknan" target="_blank">song</a> </span><span face=""arial" , "tahoma" , "helvetica" , "freesans" , sans-serif" style="background-color: white; font-size: 13px;">By : Didi Kempot</span><br />
<span face=""arial" , "tahoma" , "helvetica" , "freesans" , sans-serif" style="background-color: white; font-size: 13px;">Parodied By : </span><a href="https://plus.google.com/u/0/+kahidna" style="background-color: white; color: black; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;" target="_blank">Alfin Hidayat</a><br />
<span style="font-size: small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">koyo ngene rasane wong handle server<br />rino wengi layarku werno ne peteng<br />tansah kelingan kepingin nyawang<br />sedelo wae uwis ruwet tenan</span></span></span><br />
</p><a name='more'></a><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><br />koyo ngene rasane wong handle server<br />rino wengi layarku werno ne peteng<br />tansah kelingan kepingin nyawang<br />sedelo wae uwis ruwet tenan<br /><br />cidro janji tegane kowe ngapusi<br />nganti sprene ra ono dokumentasi<br />nangis batinku nyawang configmu<br />teles kebes misuh misuh ning laptopku<br /><br />dudu commit anyar sing nang njero repo git ku<br />nanging issue anyar sing mbok assign-ke ning aku<br /><br />dudu config ambyar sing mbok bugfix ning repoku<br />nanging kowe lali ngganteni port service app mu<br /><br />ning opo ngomong aku, yen mung gawe mumetku<br />pamer issue anyar nggo aku</span></span>Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-9572997201155508692020-06-20T19:45:00.005+07:002023-03-28T13:28:46.567+07:00Belajar RAID - Part 1<div style="text-align: justify;">Kali ini saya mau bikin catetan soal RAID. Alhamdulillah dapet voucher gratis icip huawei cloud. Terimakasih banyak <a href="https://praxisacademy.id/" target="_blank">praxis academy</a> dan huawei cloud indonesia yang kemaren ngadakan workshop dan share beberapa voucher huawei cloud buat peserta. :D<br /></div><div><br /></div><div style="text-align: justify;">Saya masih sedikit banget ilmu tentang raid, makanya saya semangat buat explore tentang raid. Catatan ini akan saya buat beberapa part, karena raid ada banyak dan catatan-catatannya otomatis ada banyak. Biar enak gitu bacanya.<br /></div><span><a name='more'></a></span><div><br /></div><div>Seperti biasa, first thing first. berikut adalah environment :</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">OS : Ubuntu Server 18.04.4 LTS<br />Tools: mdadm (v4.1-rc1),hdparm (v9.54)<br />Disk : 4 @10GB<br />Platform : Huawei Cloud</span></pre></div><div>Pertama tentu install terlebih dahulu mdadm,<br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">sudo apt-get install -y mdadm</span></pre></div><div><br /></div><div>Tentunya buat terlebih dahulu disk yang akan kita RAID. Kalo di huawei Cloud kurang lebih tampilannya akan seperti berikut</div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjnJumV_QfT9oYU4OjSmn8DiFStp7dSqwZGsG2Kia6x9cxTV1PQFIR0BIt9pkA_gnfGs-1esBwMsHkxiFbLxXr8XPPbZSqxYQ9VbaEFpxMlP9mzfXIp9N3hpxQWKoWIqKY_nlr32OCz7Q/s1107/volume-dashboard.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="563" data-original-width="1107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjnJumV_QfT9oYU4OjSmn8DiFStp7dSqwZGsG2Kia6x9cxTV1PQFIR0BIt9pkA_gnfGs-1esBwMsHkxiFbLxXr8XPPbZSqxYQ9VbaEFpxMlP9mzfXIp9N3hpxQWKoWIqKY_nlr32OCz7Q/s320/volume-dashboard.png" width="320" /></a></div><div>Attach masing-masing disk ke instance, kemudian bisa cek dengan perintah :</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT</span></pre></div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfVykJWdXGIw_oDP4oFVbsU1-ugl-4tOGJeIVgRiYnHovlc04BSngLRUT5_kE_3tYnAbf5LXFlTHXFh21ZKlT4tAcju_7cII0P3b_b8QNMC9yZ7zuaFs_1KMqHBPs8L7gREAYoh4QSjfA/s414/disks.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="122" data-original-width="414" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfVykJWdXGIw_oDP4oFVbsU1-ugl-4tOGJeIVgRiYnHovlc04BSngLRUT5_kE_3tYnAbf5LXFlTHXFh21ZKlT4tAcju_7cII0P3b_b8QNMC9yZ7zuaFs_1KMqHBPs8L7gREAYoh4QSjfA/s320/disks.png" width="320" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE-651tVVBuz5VTPv2-kyUgHM5vcIQjqTASnqb5ed_hZbMzD8bcBf5V41ZFeD4KLUozs6apqA3uGYRHt_wYh0vDO3z-Nv8I12ndu4EJZGGq1tQX11Ld__Nu121Rgw-vC36HYJ_1hb8PfA/s503/list-disk.png" style="margin-left: 1em; margin-right: 1em;"></a></div><div><br /></div><div>Cek status raid dengan perintah :</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">cat /proc/mdstat</span></pre></div><div>jika tidak ada raid yang berjalan, output yang dihasilkan kurang lebih sebagai berikut :</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8YsrmDWgh9tfnbJjfiDwcYHM_bULHLAH_mVnS8IgSBFH8vd4HTK30LbtAiOS2DKteM9pEOZmcHlnS4dz-Ty6YaEqC55epAtdmcwXYkYhkK_0GZW4sjCD9o9fxchJXQ0xanwRQZd-VWYM/s622/status-raid.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="49" data-original-width="622" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8YsrmDWgh9tfnbJjfiDwcYHM_bULHLAH_mVnS8IgSBFH8vd4HTK30LbtAiOS2DKteM9pEOZmcHlnS4dz-Ty6YaEqC55epAtdmcwXYkYhkK_0GZW4sjCD9o9fxchJXQ0xanwRQZd-VWYM/s320/status-raid.png" width="320" /></a></div><div><br /></div><div><br /></div><div><br /></div><div><b>Membuat RAID - 0</b></div><div>sebagai catatan, membuat dari disk yang fresh baru di buat.</div><div><br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">mdadm --create --verbose /dev/md<span style="color: #d52c1f;">212</span> --level=<span style="color: #0f9d58;">0</span> --raid-devices=<span style="color: #4285f4;">2</span> /dev/<span style="color: #f57c00;">vdc</span> /dev/<span style="color: #f57c00;">vdd</span></span></pre></div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGJG7pKjtu60hpPSoP_k82nXah7YwFo2CaPxsNrQsbNnUqCLPUzvL5-_A3mRnO_v8F27FfndX8XzYnsA0tfjY3q9NpCKvj6nZ_GusertR_Q9KGa3Ndg66Ru6rH-BL3OBhp9Wj0vDIOXSw/s719/raid0-2disk.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="63" data-original-width="719" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGJG7pKjtu60hpPSoP_k82nXah7YwFo2CaPxsNrQsbNnUqCLPUzvL5-_A3mRnO_v8F27FfndX8XzYnsA0tfjY3q9NpCKvj6nZ_GusertR_Q9KGa3Ndg66Ru6rH-BL3OBhp9Wj0vDIOXSw/s320/raid0-2disk.png" width="320" /></a></div><div><br /></div><div><br /></div><div>cek kembali dengan perintah <br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT</span></pre></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSjEGqI7G91C6yTtnlBh8duimMXe8FRmgcSUd-c5AszgViUSroQB1WrNWmNVR-D4BjvWaB-blvjgSBjNpOxuAsb1w-PpJl2kcKQZDenmksJfGz6Sxa2LgglICeMZ5fcw3-M5qEAH22ng0/s427/disks.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="151" data-original-width="427" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSjEGqI7G91C6yTtnlBh8duimMXe8FRmgcSUd-c5AszgViUSroQB1WrNWmNVR-D4BjvWaB-blvjgSBjNpOxuAsb1w-PpJl2kcKQZDenmksJfGz6Sxa2LgglICeMZ5fcw3-M5qEAH22ng0/s320/disks.png" width="320" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_sfABrauvi6C0Ccq7GgouKvrsmPrK91SY1YvX-Z-bScl7AmH049vnmvjwRUBUMWAHsLWa43Er4Nx-hNu3mqMod9uB_KW-JAeJ29iz9YAkum4WQS8wSlALrP4uW4NVaoEcRUdlxyNWmqQ/s460/list-disk-with-new-raid.png" style="margin-left: 1em; margin-right: 1em;"></a></div><div><br /></div><div>Bisa kita lihat device vdc dan vdd adalah linux_raid_member<br /></div><div><br /></div><div>eit, belum selesai, kita perlu memformat raid yang sudah kita buat tadi.</div><div>sesuai kan dengan id raid yang kita buat tadi</div><div></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">mkfs.ext4 /dev/<span style="color: #d52c1f;">md212</span></span></pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqwTTxNhtq-V9jnuh60qEz876MAeKqzBnWjeJq3XWOTP6_nalQ2fCPaRzPcGwZtOh__2LkBY4Ke9O3_TpurXorUoe7YVF25wIas0JW4fhv6IyMkEik4QMUUZlUmqrIsOn5cTW7KrDZ-MQ/s574/format-ext4-raid0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="190" data-original-width="574" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqwTTxNhtq-V9jnuh60qEz876MAeKqzBnWjeJq3XWOTP6_nalQ2fCPaRzPcGwZtOh__2LkBY4Ke9O3_TpurXorUoe7YVF25wIas0JW4fhv6IyMkEik4QMUUZlUmqrIsOn5cTW7KrDZ-MQ/s320/format-ext4-raid0.png" width="320" /></a></div><div><br /></div><div><br /></div><div>selanjutnya kita bisa mount raid yang sudah di buat</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">mount /dev/<span style="color: #b51200;">md212</span> /path/to/mount/raid/<br /><span style="color: #d52c1f;"></span></span></pre></div><div>kemudian cek dengan command df <br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">df -h</span></pre></div><div>output yang dihasillkan seharusnya menunjukkan dimana md212 di mount (raid saya muncul di bagian paling bawah)<br /></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP6jgD3vKrYrdxOivCZcHE0_mghaa7cWD_Ae4ohWlBIfXjBgOJK1mZdkBQZe7d3EcyZ42TKFgW__9KS6t8CcRAi-zTN-48MS0VtVEwavtDOpw3o4bFLRNcn3C2YvsCCbbs3Mssqe4_O-o/s375/disks.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="153" data-original-width="375" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP6jgD3vKrYrdxOivCZcHE0_mghaa7cWD_Ae4ohWlBIfXjBgOJK1mZdkBQZe7d3EcyZ42TKFgW__9KS6t8CcRAi-zTN-48MS0VtVEwavtDOpw3o4bFLRNcn3C2YvsCCbbs3Mssqe4_O-o/s320/disks.png" width="320" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuhSUfrlj15tsCkShbcW9BMJ-8LslbnKGRi0TlBtKj2Mj6vfO-7dPoi0yH1zINpAdaLVvmz2vX4MH0fBNkcnBvYNRiDcKvIQDSNtuGozKnuyBtcdejB5mbuQ2G4iDNHY_kpiFV3eHFh1g/s966/df-after-mount-raid.png" style="margin-left: 1em; margin-right: 1em;"></a></div><div><br /></div><div>Selanjutnya kita coba membuat file di raid tersebut, saya menggunakan command touch <br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">touch another-sample{1..10}</span></pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoKE4w_mLt_H426rgA0hj3eML-0dgAxeXomKTg0c-7GnG-buLXgIiwlizTRrzDuxTeeiIg0iHpuurKF-n6maHwj-tnYYWK6ULkXzVayqxpqDYXcZPyKP6JRjsd7FNBwNNXA0SCiyB4TYY/s701/test-create-file.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="176" data-original-width="701" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoKE4w_mLt_H426rgA0hj3eML-0dgAxeXomKTg0c-7GnG-buLXgIiwlizTRrzDuxTeeiIg0iHpuurKF-n6maHwj-tnYYWK6ULkXzVayqxpqDYXcZPyKP6JRjsd7FNBwNNXA0SCiyB4TYY/s320/test-create-file.png" width="320" /></a></div><div><br /></div><div>Kemudian kalo kita cek kembali status dari mdadm dengan perintah <br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">cat /proc/mdstat</span></pre></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4to17L0y4Mj1KvJG4GwFBQuvOBzT_uWZJLFpLLLom5jS98JM0xb0TO2nAuBLm3IrQjYcyc9KLrbO4J5sajV6c7R9bJuDiSmiAfuZmJ4RQbnp8Iks7itRr1lCS5ZL1E-ZfcTdfDS3LZ8o/s653/mdadm-status-after.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="90" data-original-width="653" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4to17L0y4Mj1KvJG4GwFBQuvOBzT_uWZJLFpLLLom5jS98JM0xb0TO2nAuBLm3IrQjYcyc9KLrbO4J5sajV6c7R9bJuDiSmiAfuZmJ4RQbnp8Iks7itRr1lCS5ZL1E-ZfcTdfDS3LZ8o/s320/mdadm-status-after.png" width="320" /></a></div><div></div><div><br /></div><div>Nah.. sampai disini, kita sudah membuat raid0 dan mencoba menggunakannya. :D</div><div><br /></div><div><b>Benchmark Performa</b></div><div><br /></div><div>Untuk benchmarking kita menggunakan tool hdparm. yang akan kita bandingkan adalah raid md212 dan disk vdb <br /></div><div><br /></div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_sfABrauvi6C0Ccq7GgouKvrsmPrK91SY1YvX-Z-bScl7AmH049vnmvjwRUBUMWAHsLWa43Er4Nx-hNu3mqMod9uB_KW-JAeJ29iz9YAkum4WQS8wSlALrP4uW4NVaoEcRUdlxyNWmqQ/s460/list-disk-with-new-raid.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="155" data-original-width="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_sfABrauvi6C0Ccq7GgouKvrsmPrK91SY1YvX-Z-bScl7AmH049vnmvjwRUBUMWAHsLWa43Er4Nx-hNu3mqMod9uB_KW-JAeJ29iz9YAkum4WQS8wSlALrP4uW4NVaoEcRUdlxyNWmqQ/s320/list-disk-with-new-raid.png" width="320" /></a></div><div>perintah yang digunakan adalah</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">hdparm -tT /dev/vdb</span></pre></div><div>untuk raid, kita sesuaikan path device nya<br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">hdparm -tT /dev/</span></pre></div><div>Berikut adalah hasil benchmarking <br /></div><div><br /></div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNLKLNzSdR9gs8MMvAN0vn4tCmFHlhrwFq9YtvtobTEgWRUp1ybngxM4nVqt-TDaoOs6peGo6Q5pZBt-ZjriHxr8H3J207SdZ_OGaHH1v0xo-i9rxvfixsTx9g4Ph59xvjwOWXsXAvVfk/s546/benchmark-hardisk10gb-raid0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="205" data-original-width="546" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNLKLNzSdR9gs8MMvAN0vn4tCmFHlhrwFq9YtvtobTEgWRUp1ybngxM4nVqt-TDaoOs6peGo6Q5pZBt-ZjriHxr8H3J207SdZ_OGaHH1v0xo-i9rxvfixsTx9g4Ph59xvjwOWXsXAvVfk/s320/benchmark-hardisk10gb-raid0.png" width="320" /></a></div><div>wait, tapi kan size nya beda berarti, yang vdb 10GB, yang md212 20GB.</div><div>oke, kita buat satu disk lagi sebesar 20GB kalo gitu :D</div><div><br /></div><div>buat disk baru via dashboard, attach, lalu pastikan disk terbaru sudah terbaca (disk terbaru ada di baris paling bawah)</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT</span></pre></div><div><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMJQehQAlbLQJGK3BMouZvoHa25UvVGlysrd0qXzwURkfEX7BwzVd4hFwaatSOP0zouL-GFKlmLpcST5GBuGUvasGsKJsAXdP8o5S4NBVo0d_90iCB2dr0FvO6bt2zw1gPhyphenhyphenfbwjRzNlY/s419/disks.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="167" data-original-width="419" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMJQehQAlbLQJGK3BMouZvoHa25UvVGlysrd0qXzwURkfEX7BwzVd4hFwaatSOP0zouL-GFKlmLpcST5GBuGUvasGsKJsAXdP8o5S4NBVo0d_90iCB2dr0FvO6bt2zw1gPhyphenhyphenfbwjRzNlY/s320/disks.png" width="320" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW-hDKu-QA5Z1GiDZdduzbYXMFL1hZRMUGH2t6kVXssZER5tzkW5eTp2GYUQLCdnvXccm1Lv2aSmzuoxiy5laqHKWwPho5CBNDQit_1fQ5RahLulTSG1T9nzpLzBACf6aB-uLsAK9Ykdo/s497/disk-20gb.png" style="margin-left: 1em; margin-right: 1em;"></a></div><div><br /></div><div>kemudian format menjadi ext4 dengan perintah <br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">mkfs.ext4 /dev/vdf<span style="color: #d52c1f;"></span></span></pre></div><div></div><div>oke, sekarang kita benchmark ulang dan berikut adalah hasilnya</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmL44P_nygfAeu_nW2ysOGgxp1PLmxDzb2ESo-ebY0oEQ5Bre1uzlcPvsjxQkAn1ecrXetkE44RpPt9nB45RPREU6k-Dx4_awtg7gTldpgkiau6F1ypmU7IVtenUtG-CREpIuO9vLi99s/s500/bench-hdd20-raid0.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="205" data-original-width="500" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmL44P_nygfAeu_nW2ysOGgxp1PLmxDzb2ESo-ebY0oEQ5Bre1uzlcPvsjxQkAn1ecrXetkE44RpPt9nB45RPREU6k-Dx4_awtg7gTldpgkiau6F1ypmU7IVtenUtG-CREpIuO9vLi99s/s320/bench-hdd20-raid0.png" width="320" /></a></div><div><br /></div><div><br /></div><div><br /></div><div><b>Mengembalikan RAID</b></div><div>sebelum mengembalikan raid, pastikan data yang ada pada raid sudah diamankan. selanjutnya cek status raid dengan perintah :</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">cat /proc/mdstat</span></pre></div><div>selanjutnya kita unmount raid dengan perintah :</div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">umount -l/dev/md<span style="color: #d52c1f;">212</span></span></pre></div><div>dan pastikan ulang raid tidak ada dalam daftar disk dengan perintah<br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">df -h</span></pre></div><div>output yang dihasilkan kurang lebih sebagai berikut :</div><div><br /></div><div><br /></div><div>sebagai penanda atau pembanding, jika kita list saat kondisi raid, struktur block device nya akan nampak sebagai berikut.<br /></div><div><br /></div><div><br /></div><div>selanjutnya kita stop layanan raid dengan perintah (sesuaikan id raid yang digunakan):<br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">mdadm --stop /dev/md<span style="color: #d52c1f;">212</span></span></pre></div><div>kemudian <br /></div><div><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new", "courier", monospace;">mdadm --remove /dev/md<span style="color: #d52c1f;">212</span></span></pre></div><div><br /></div><div><b>Catatan Behaviour Raid<br /></b></div><div>Berikut adalah beberapa catatan selama uji coba raid0 :<br /></div><div><ol style="text-align: left;"><li style="text-align: left;">raid bisa digunakan untuk disk yang memiliki kapasitas berbeda (pada gambar raid disk 10GB dan 20GB)<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI1ELrMwdozA0sq8DO2BoQ3B-duhxi5-_bSS_uWH5jswP13lGzR3OSsi1gaIXSfgXpowxXR5VSXXu8KB-A_rc-L_tbw7i37o-D_pcJhJe4FsprQZ17nWVxsyzctKq7sb1ICUD9c7p4FGs/s645/raid-can-perform-with-different-disk-size.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="585" data-original-width="645" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgI1ELrMwdozA0sq8DO2BoQ3B-duhxi5-_bSS_uWH5jswP13lGzR3OSsi1gaIXSfgXpowxXR5VSXXu8KB-A_rc-L_tbw7i37o-D_pcJhJe4FsprQZ17nWVxsyzctKq7sb1ICUD9c7p4FGs/s320/raid-can-perform-with-different-disk-size.png" width="320" /></a></div></li><li style="text-align: left;">raid tidak bisa di stop apabila posisi raid masih termounting<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjf6cMkjn8nmRBESHrU5-_tKFpDVuZBp32mRhr-XHyK8hJVA1x3M1QW0SGcG_nDR0lmj_tIaGIheb99q7XbJrhe7noUWUS4Y-YROxqbX2ENYbhvaGUOoDuDpUpoNH1NjsNDp2f7k-xfP0/s840/raid-stop-behaviour.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="134" data-original-width="840" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjf6cMkjn8nmRBESHrU5-_tKFpDVuZBp32mRhr-XHyK8hJVA1x3M1QW0SGcG_nDR0lmj_tIaGIheb99q7XbJrhe7noUWUS4Y-YROxqbX2ENYbhvaGUOoDuDpUpoNH1NjsNDp2f7k-xfP0/s320/raid-stop-behaviour.png" width="320" /></a></div></li><li>jika raid di stop, kemudian raid dibuat ulang dengan member device yang
sama maka data akan tetap. meskipun id raid diubah data tidak mengalami
perubahan.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNAUh66AE0szlfzfVvaE46gVgeJb3MTNpD4m9aBFHxNsYnHYE6wqGZBhlAKEdGY-iXmiVWKFzCawxcpzSY7H0AaeuIb3YRLoMBqGFb1Irhcp_DC9epZz3S87m2Fw6FZxNMU4Wr6isEQpM/s714/raid0-behaviour-recreate.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="373" data-original-width="714" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNAUh66AE0szlfzfVvaE46gVgeJb3MTNpD4m9aBFHxNsYnHYE6wqGZBhlAKEdGY-iXmiVWKFzCawxcpzSY7H0AaeuIb3YRLoMBqGFb1Irhcp_DC9epZz3S87m2Fw6FZxNMU4Wr6isEQpM/s320/raid0-behaviour-recreate.png" width="320" /></a></div><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC1kFrCTr5WkSscFQL-5d47Pi1U3vOmjF5aj3AFLEjrw7qlVU17inkATRb4-BlkrMw1TN5O9hUVQ63Qt3EvCdDAcAOQykdycAiQ9XTJTmR0SyHTQv4SYqQGmc1bf28_UBrxV-WPBpfk98/s714/raid0-behaviour-recreate.png" style="margin-left: 1em; margin-right: 1em;"></a></li><li>jika raid di stop, kemudian dibuat raid baru dengan penambahan disk baru. maka proses mount akan error.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF3imSpvqPoNM1IjGzcw0GdWcbkzEX8YnTqsZHAaQ4vNR6eQrvcnCTRB5ZYqNaHyDyLpXH6ZW1tNYM5JzxJeUDuW62J1hMDIUwIVw_dXup_umwsYiq_mTGZ2iZ8eAZ7sbc5K3Sft1rskA/s917/raid0-behaviour-stop-then-add-newone.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="553" data-original-width="917" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjF3imSpvqPoNM1IjGzcw0GdWcbkzEX8YnTqsZHAaQ4vNR6eQrvcnCTRB5ZYqNaHyDyLpXH6ZW1tNYM5JzxJeUDuW62J1hMDIUwIVw_dXup_umwsYiq_mTGZ2iZ8eAZ7sbc5K3Sft1rskA/s320/raid0-behaviour-stop-then-add-newone.png" width="320" /></a></div></li><li>dan error yang terjadi pada point nomor 3. apabila kita stop raid yang sudah dibuat. kemudian kita kembalikan ke raid awal (hanya 2 device), data masih utuh. artinya jika raid berhasil dibuat, tapi gagal di mounting. data masih aman.<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEuKvfAd7BPifJZzAst5HG0X8QWQQ3WlWpS7ZU36yDIl1uG-V-3wEFk1iUPpp_Jb9JEmahZDztE0QGoPY9W5mFLwH1flADcqHukIHYfMjOBNARSRD_ThXesZlY55waDi3abajgb_BoIb8/s906/raid0-behaviour-recreate-after-different-creation.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="365" data-original-width="906" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEuKvfAd7BPifJZzAst5HG0X8QWQQ3WlWpS7ZU36yDIl1uG-V-3wEFk1iUPpp_Jb9JEmahZDztE0QGoPY9W5mFLwH1flADcqHukIHYfMjOBNARSRD_ThXesZlY55waDi3abajgb_BoIb8/s320/raid0-behaviour-recreate-after-different-creation.png" width="320" /></a></div></li></ol></div><div>Semoga bermanfaat.<br /></div><div><br /></div><div>Referensi :</div><div><ul style="text-align: left;"><li><a href="https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04">https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-16-04</a></li><li><a href="https://linuxhint.com/benchmark_hard_disks_linux/">https://linuxhint.com/benchmark_hard_disks_linux/</a></li><li><a href="https://www.geeksforgeeks.org/hdparm-command-in-linux-with-examples/">https://www.geeksforgeeks.org/hdparm-command-in-linux-with-examples/</a></li></ul></div>Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-21413161143368278522020-04-07T21:48:00.002+07:002020-04-19T21:20:11.237+07:00Nginx Config Cheat Sheet<div style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcG5EgcZpae-IdXwVcD7J5OBqb1MZNrKkSkaKvaoSXYmLRx-UyhG355xXkjOYSgL1O1AbmliLFtYnaOxzorxaDLPqZYFi67nEWJ_K2zcCd80x4eXFQ5IBUo19b6xDrqtVcYOAdMANWydM/s1600/nginx.png" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1600" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcG5EgcZpae-IdXwVcD7J5OBqb1MZNrKkSkaKvaoSXYmLRx-UyhG355xXkjOYSgL1O1AbmliLFtYnaOxzorxaDLPqZYFi67nEWJ_K2zcCd80x4eXFQ5IBUo19b6xDrqtVcYOAdMANWydM/s200/nginx.png" width="120" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Nginx</b></td></tr>
</tbody></table>
Nginx adalah salah satu webserver yang ringan dan powerfull. Sehingga kabarnya hampir 30% website di dunia menggunakan webserver ini. Dulu si lebih sering pake Apache2/Httpd, maklum ngikut arus yang uda ada, namun semenjak saya pindah kerja, hampir mayoritas webserver menggunakan Nginx, rada kagok dan karena masih awal-awal jadi bingung, gimana ngapalinnya semua bagian-bagian config tersebut. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ternyata oh ternyata, jangan khawatir, ngga usah diapalin, dipahami aja fungsi-fungsi dari masing-masing bagian,. Untuk confignya ga usah di buat pusing. Mozilla sudah berbaik hati membuatkan generator config. Ngga cuma nginx, tapi ada beberapa config lain seperti apache, haproxy, redis, traefik dan masih banyak lagi. bisa di cek <a href="https://ssl-config.mozilla.org/" target="_blank">disini</a>.</div>
<br />
<a name='more'></a>Seperti biasa, first thing first, untuk environment yang saya gunakan adalah sebagai berikut :<br />
<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">
OS : Ubuntu Server 18.04 LTS
Nginx : 1.17.10
</span></pre>
Dan berikut adalah beberapa cheat sheet config Nginx yang sudah saya pelajari dan saya gunakan selama bekerja dengan nginx<br />
<br />
<b>Setup SSL Nginx</b><br />
Untuk meningkatkan kualitas dan keamanan dari web, kita bisa memasang sertifikat SSL, berikut adalah config minimal untuk memasang sertifikat SSL di Nginx<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
listen <b>443</b> ssl http2; </span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"># <b>by default, its used 443</b></span>
listen [::]:<b>443</b> ssl http2; # <b>by default, its used 443</b>
# .....
server_name <b>your.domain.here</b>;
ssl_certificate <b>/path/to/your/certificate.crt</b>;
ssl_certificate_key <b>/path/to/your/privkey.pem</b>;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
<b> # intermediate configuration</b>
ssl_protocols TLSv1.2 TLSv1.3; <b># adjust your protocol here</b>
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# .....
}</span></pre>
<br />
<b>Force atau Redirect http ke https</b><br />
Ada saat dimana kita perlu untuk mengamankan situs dan user dengan cara mengaktifkan fiture enkripsi atau https di web <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;"><b># http section</b>
server {
listen 80;
listen [::]:80;
<b># just put the return command here</b>
return 301 https://$host$request_uri;
}
</span><b># https section</b>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
#.....
<b> # put resource rule and path and ssl here config here</b>
#.....
}</span></span></pre>
<br />
<b>Setup Default Config Vhost</b><br />
dan sebagai catatan, apabila kita menggunakan satu server untuk beberapa resource web, maka hanya ada <b>satu</b> file config yang berisi <b>default_server </b>untuk tiap instance nginx<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
listen 80 <b>default_server</b>;
listen [::]:80 <b>default_server</b>;
# .....
}</span></pre>
<br />
<b>Proxy External Public Resource ke Web</b><br />
Misalnya kita akan menempatkan path tertentu, namun konten dari path tersebut diambil dari external page atau resource. Contohnya page tersebut memiliki folder <b>assets</b>, agar page dapat tampil sempurna di web kita confignya adalah sebagai berikut<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
# .....
location <b>/assets/</b> {<b> # put the path and make sure last slash included</b>
proxy_pass https://external.domain.here<b>/assets</b>;
}
# .....
}</span></pre>
<br />
<b>Load balance atau proxy resource </b><br />
Misalnya dari gateway ke server-server backend, atau dari dari host ke container<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
# .....
location / {
proxy_pass https://<b>your.domain.here</b>; <b># put upstream domain here</b>
}
# .....
}
upstream <b>your.domain.here</b> {<b> # customize domain name</b>
server 172.10.0.2:443; <b># container/backend server IP address</b>
}</span></pre>
<br />
<b>Redirect Request apapun ke Halaman tertentu</b><br />
Semisal kita ingin request-request apapun yang ditujukan ke www.bukananakit.com (/about atau /contact dan path-path lain) di arahkan ke homepage bukananakit.com <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
# .....
rewrite ^ <b>https://bukananakit.com</b> # put the target here
# .....
}</span></pre>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Redirect dan Menimpa Domain tanpa Mengubah URL Path</b> </div>
<div style="text-align: justify;">
Semisal URL lama <b>http://www.bukananakit.com</b>/resource/web kemudian ingin di redirect ke URL baru menjadi <b>http://bukananakit.com</b>/resource/web, atau apapun yang diawali dari www. namun ingin me-redirect ke domain yang tidak memiliki www, dan tanpa mengubah path url </div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
# .....
rewrite ^ <b>https://bukananakit.com</b>$request_uri; # put the target here
# .....
}</span></pre>
<br />
<div style="text-align: justify;">
<b>Mengubah Path URL </b> </div>
<div style="text-align: justify;">
Semisal URL lama <b>http://www.bukananakit.com</b>/resource/web kemudian ingin diubah menjadi <b> http://www.bukananakit.com</b>/<span style="color: red;">baru</span>/resource/web tanpa ingin mengubah apapun yang ada di dalam code</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
# .....
</span><span style="font-family: "courier new" , "courier" , monospace;"><code> location = /resource/web {
return 301 /<b>baru</b></code></span><span style="font-family: "courier new" , "courier" , monospace;"><code><span style="font-family: "courier new" , "courier" , monospace;"><code>/resource/web </code></span>; <b># put the new path here</b>
}</code>
# .....
}</span></pre>
Semoga bermanfaat. Jika ada pertanyaan silahkan tinggalkan komentar atau bisa chat via telegram.<br />
<br />
Referensi :<br />
<ul>
<li><a href="https://stackoverflow.com/questions/14491944/nginx-convert-subdomain-to-path-component-without-redirect">https://stackoverflow.com/questions/14491944/nginx-convert-subdomain-to-path-component-without-redirect</a></li>
<li><a href="https://ssl-config.mozilla.org/">https://ssl-config.mozilla.org/</a></li>
<li><a href="https://serverfault.com/questions/548591/nginx-redirect-one-path-to-another">https://serverfault.com/questions/548591/nginx-redirect-one-path-to-another</a></li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-8520711193332382922020-04-05T06:47:00.000+07:002020-04-12T09:27:55.468+07:00Install Docker di Linux Mint Debian 4<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeuLGMZC5XG-WQr3X1X8QZFKkBTAz-eT5GReFhZWHtLipi8P1j4cabBQmbBlQHKaBWkmPQXVMyTut_eaEhoPb-chvcj5c9Bu-ADSdk1ODQgJNUDq9KtfvB_yMTYbrlh745b2V9_sdIXUU/s1600/linux-mint.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="150" data-original-width="150" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeuLGMZC5XG-WQr3X1X8QZFKkBTAz-eT5GReFhZWHtLipi8P1j4cabBQmbBlQHKaBWkmPQXVMyTut_eaEhoPb-chvcj5c9Bu-ADSdk1ODQgJNUDq9KtfvB_yMTYbrlh745b2V9_sdIXUU/s200/linux-mint.png" width="120" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Linux Mint Logo</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Linux Mint Debian adalah salah satu varian Linux Mint yang menggunakan Debian versi stable sebagai basis pembuatan distro Linux Mint. Kenapa? Ya.. mungkin tim developer Linux Mint melihat Debian versi stable memiliki kestabilan yang lebih mumpuni, sedangkan Ubuntu adalah hasil pengembangan dari Debian unstable (mungkin yang stable juga ada tapi saya belum cari infonya), yang berdampak pada kestabilan Ubuntu yang berdampak juga pada Linux Mint Ubuntu. Tapi itu cuma pendapat saya aja setelah baca beberapa postingan grup forum milik Linux Mint, <a href="https://forums.linuxmint.com/viewtopic.php?t=154220" target="_blank">disini</a> dan <a href="https://forums.linuxmint.com/viewtopic.php?t=273469" target="_blank">disini</a>. Bisa jadi ada alasan lain dibaliknya. Masih Bingung? Boleh kok PM. ;) </div>
<div style="text-align: justify;">
<br />
<a name='more'></a>Oke, jadi ceritanya alhamdulillah kantor memfasilitasi saya dengan laptop. Kebetulan spek nya oke, jadi.. So, why don't give a shot something different. :D<br />
<br />
Yang kenal saya pasti taulah, saya tipikal suka dengan sesuatu yang <i>wash wush, brash bresh, lash lesh</i> (baca: ringan, cepat) tanpa terlalu memperhatikan estetika dan keindahan. Maksudnya saya suka kerja pake tools yang ringan, cepat, dan ga perlu bagus-bagus UI nya. Kayak distro Lubuntu misalnya. Secara fungsional experiencenya sama dengan Ubuntu, tapi urusan UI memang ga seindah Gnome 3, tapi performa sangat berdampak di komputer yang spesifikasinya tergolong menengah bawah.</div>
<br />
<div style="text-align: justify;">
Jadi untuk harian saya memutuskan menginstall Linux Mint Debian 4 di laptop kantor. Why? Ya selain selisih dikit waktu releasenya dengan datengnya laptop kantor, sekalian icip-icip gimana sih performa Debian kalo buat aktivitas harian. Tapi di tulisan ini saya bukan mau review si Linux Mint Debian (saya singkat LMDE), tapi mau bahas gimana cara install Docker di LMDE.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Seperti yang kita tau. Docker bisa di install diatas Linux terutama yang berbasis atau masih dalam linkungan keluarga Debian, Ubuntu, Centos (bisa dilihat <a href="https://docs.docker.com/engine/install/" target="_blank">disini</a>). Nah, beberapa waktu yang lalu saya teringat temen kantor yang Laptopnya saya terinstall LMDE 3, sedangkan dia kudu install flutter yang basically support installasi diatas Debian dan variannya. Dan sayangnya skrip installernya ngga support karena gagal mendeteksi kalo LMDE adalah distro Linux yang berbasis Debian. Padahal tinggal ganti lsb-release aja, terus skrip installernya jalan.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Dari situ saya berpikir untuk mendokumentasikan hal yang sama, namun untuk aplikasi atau tools atau apps yang berbeda. Kali ini saya nulis installasi Docker diatas LMDE. Dari dokumentasi memang ada keterangan untuk distro yang tidak disebutkan bisa mengikuti tutorial atau metode distro induk (cek <a href="https://docs.docker.com/engine/install/#supported-platforms" target="_blank">disini</a>). Salah satu cara lain yang gampang ya kita bisa download deb file docker yang versi Debian, lalu install pake gdebi atau command dpkg. Iya, bisa pake cara itu, tapi kurang asik menurut saya, saya suka cara lain. :P</div>
<br />
<div style="text-align: justify;">
Cara yang lain saya maksud adalah tetap menggunakan perintah apt-get seperti yang dijelaskan pada dokumentasi dari Docker, namun dengan sedikit bagian yang berbeda. </div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_PD708lio0HjWmGkkfmED3XG65si9p5zBMirk_2WIL9uve-vEyKe0zBWF2b0nfAct8Uynn8-ltOIjjamIvj2XX8tzD3htm3DD3LVku0on9O8-FINgdSrCD0pYiJ51hsjEsNRHT2Pd6go/s1600/lsb-before.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="92" data-original-width="284" height="63" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_PD708lio0HjWmGkkfmED3XG65si9p5zBMirk_2WIL9uve-vEyKe0zBWF2b0nfAct8Uynn8-ltOIjjamIvj2XX8tzD3htm3DD3LVku0on9O8-FINgdSrCD0pYiJ51hsjEsNRHT2Pd6go/s200/lsb-before.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>lsb-release LMDE</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Biasanya sebelum menginstall aplikasi, kita perlu memperhatikan versi codename dari distro Linux yang digunakan, bisa kita cek dengan command :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">lsb_release -a</span></pre>
<br />
<div style="text-align: justify;">
Disitu kita lihat bahwa codename yang tertera adalah "debbie", sedangkan codename tersebut tidak ada di daftar versi yang <a href="https://docs.docker.com/engine/install/debian/" target="_blank">disupport</a> oleh Docker untuk versi Debian (ingat, LMDE basisnya Debian). Sehingga, kita tidak bisa menggunakan "debbie" sebagai codename saat menambahkan repository Docker.</div>
<br />
Trus gimana dong? :(<br />
Berikut catatan dari saya. ;)<br />
<br />
<div style="text-align: justify;">
Catatan kali ini, saya akan menginstall docker yang berasal dari repository resmi milik docker inc. Environment saya kali ini adalah sebagai berikut<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">
OS : Linux Mint Debian 4
Docker version : 19.03.8, build afacb8b7f0
</span></pre>
Sebelumnya kita perlu memastikan tidak ada docker versi lama yang terinstall (tidak masalah jika output apt-get tidak menemukan package docker/containerd):</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get -y remove docker docker-engine docker.io containerd runc</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ku48pQA4VZ06Su2y8QhXCYSMChvPcBPIASNR76rjFZP0zhsY8_07Mou2iEZASEXxflrirWUxs4IAZKn0qVpcDAzuD0NNwuwtzejiiD2A2N64KRFe10yHspl3kORfgRhoEUw-89LtyYE/s1600/remove-docker-old.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="109" data-original-width="660" height="52" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4ku48pQA4VZ06Su2y8QhXCYSMChvPcBPIASNR76rjFZP0zhsY8_07Mou2iEZASEXxflrirWUxs4IAZKn0qVpcDAzuD0NNwuwtzejiiD2A2N64KRFe10yHspl3kORfgRhoEUw-89LtyYE/s320/remove-docker-old.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Output jika tidak ada docker yang terinstall</b></td></tr>
</tbody></table>
Kemudian, refresh repository untuk memastikan repository pada sistem kita up to date:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get update</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjrbUKAQ8S15zGNt3yflsGdxf4f6dzawuEcWXjg-wAJ3flcMJa27DWMru0MWVT5slkEiyWOp19UFMFTvZwNw9H7-ofYPU1EJ-jN4AA0Zugz-ZVm-kRq3BdTGEv7RHTtq-sjHxv7wjP14Y/s1600/apt-update1.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="187" data-original-width="549" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjrbUKAQ8S15zGNt3yflsGdxf4f6dzawuEcWXjg-wAJ3flcMJa27DWMru0MWVT5slkEiyWOp19UFMFTvZwNw9H7-ofYPU1EJ-jN4AA0Zugz-ZVm-kRq3BdTGEv7RHTtq-sjHxv7wjP14Y/s320/apt-update1.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Refresh repository</b></td></tr>
</tbody></table>
Selanjutnya install dependensi yang diperlukan untuk menginstall package docker :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU6c6GU8jhoAka5BqHJnWRXSQU-axUYcltUd5ub9kVXqD9sbPVz2A7y2fkXdY0MFC19LAvUfsNw0WiQvKGgzX5M65IODzNZW7tP3FfzcTGgg4taAHpvkAAhVJkRDgu5hY13d_xjvf7DN0/s1600/install-dep-docker.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="378" data-original-width="917" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhU6c6GU8jhoAka5BqHJnWRXSQU-axUYcltUd5ub9kVXqD9sbPVz2A7y2fkXdY0MFC19LAvUfsNw0WiQvKGgzX5M65IODzNZW7tP3FfzcTGgg4taAHpvkAAhVJkRDgu5hY13d_xjvf7DN0/s320/install-dep-docker.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Install dependensi untuk install Docker</b></td></tr>
</tbody></table>
<br />
Selanjutnya tambahkan gpgp key dari Docker inc <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -</pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs5Z2P3YBKoaruqIQ4v0mgVoHhadQA_RRjpebPDyUHIWJWt7MaVYYG6DZ5vzTJvKGmAbvPNj6sNTXG2MHcwSzq_ENg7YLr_UmkE3Rg-34I74E8oEUVUZVBt86K9vqG76HO2EwAyqgsJuo/s1600/add-key.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="52" data-original-width="721" height="23" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs5Z2P3YBKoaruqIQ4v0mgVoHhadQA_RRjpebPDyUHIWJWt7MaVYYG6DZ5vzTJvKGmAbvPNj6sNTXG2MHcwSzq_ENg7YLr_UmkE3Rg-34I74E8oEUVUZVBt86K9vqG76HO2EwAyqgsJuo/s320/add-key.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Penambahan gpg key dari Docker</b></td></tr>
</tbody></table>
Kkemudian verifikasi gpg key yang sudah ditambahkan dengan perintah berikut dan pastikan key yang muncul adalah <code class="highlighter-rouge">: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88</code><br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo apt-key fingerprint 0EBFCD88</pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFtA9FEi5GTmAw-W2Zhz_PvI0mDiHzee98nwDQytjDGNdGMja_Fi4YUH8WkXTwO8_jSSR8xZFc67wYW1_uWLuJcF4I5veOyntexFOqww6T-QvIWayN3J_fcyqU0Gfg00daXfUuLEImTzI/s1600/add-fingerprint.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="112" data-original-width="501" height="71" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFtA9FEi5GTmAw-W2Zhz_PvI0mDiHzee98nwDQytjDGNdGMja_Fi4YUH8WkXTwO8_jSSR8xZFc67wYW1_uWLuJcF4I5veOyntexFOqww6T-QvIWayN3J_fcyqU0Gfg00daXfUuLEImTzI/s320/add-fingerprint.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Verifikasi gpg key dari Docker</b></td></tr>
</tbody></table>
<br />
Nah, disinilah yang perlu dimodifikasi sedikit. Jika di tutorial resmi Docker, untuk Debian, menggunakan command berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
<b>$(lsb_release -cs)</b> \
stable"</pre>
<div style="text-align: justify;">
Pada command diatas, bagian yang saya tebali, adalah command lsb_release yang mana pada bagian tersebut akan menghasilkan string codename distro yang digunakan (misalnya : bionic, buster, strech, xenial dkk). Seperti yang sudah saya jelaskan, codename di LMDE adalah debbie, sehingga ketika di eksekusi, command tersebut akan memunculkan error not found saat kita mengupdate repository.</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdN4qVSGPi-MpAKHFPTDMwJEle7DrranLXw5H7x2TAP45siwFjAspOJpc9quxdr3UZ6xyM0qm9hjz3XP6rcrI1E85U97y9HwBuiVHeKXwAACLk7-0vfnOL2QbHYFFcN5UO3CIHVDeJQXE/s1600/error-add.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="366" data-original-width="755" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdN4qVSGPi-MpAKHFPTDMwJEle7DrranLXw5H7x2TAP45siwFjAspOJpc9quxdr3UZ6xyM0qm9hjz3XP6rcrI1E85U97y9HwBuiVHeKXwAACLk7-0vfnOL2QbHYFFcN5UO3CIHVDeJQXE/s320/error-add.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">error saat update</td></tr>
</tbody></table>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Untuk mengantisipasi hal tersebut, kita bisa menimpa command lsb_release diatas, menjadi codename distro Linux yang digunakan. Karena LMDE 4 berbasis Debian "buster", maka command sebelumnya berubah menjadi :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
<b>buster</b> \
stable"</pre>
<div style="text-align: justify;">
<b>atau</b>, kita bisa menambahkan repository docker inc secara manual kedalam sistem kita. Kali ini saya menggunakan teks editor nano, bisa diganti dengan teks editor lain seperti vi/vim, gedit dan sejenisnya:</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo nano /etc/apt/sources.list.d/docker-repositories.list</pre>
Kemudian masukkan config berikut, kemudian simpan.<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">deb [arch=amd64] https://download.docker.com/linux/debian <b>buster</b> stable</pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiynb3q7uTxJ7r6SUbmYtuA64i9ugNKrBopxVucasP7DaqvQOAc3x4jBPNFnmVXO9gjX7vWP0pb29LY78k6GpLy5sFlXTPOmRjEEGAeWKNeV5GnNHW8G9zikMz0iXTsX8e12OKsd68KW5o/s1600/add-docker-repo.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="98" data-original-width="919" height="34" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiynb3q7uTxJ7r6SUbmYtuA64i9ugNKrBopxVucasP7DaqvQOAc3x4jBPNFnmVXO9gjX7vWP0pb29LY78k6GpLy5sFlXTPOmRjEEGAeWKNeV5GnNHW8G9zikMz0iXTsX8e12OKsd68KW5o/s320/add-docker-repo.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Tambahkan Config repo untuk LMDE</b></td></tr>
</tbody></table>
Kemudian kita refresh kembali repository sistem kita<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo apt-get update</pre>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBrAxPaiSgA9eg5eYmKTDakHxJcyfMKjbzQD_K4my_Sg2rvVzUxqJ_FsxEMc4-4nHgdLO_9Hp1cAniHfW0JrJKI-YBL_-miGe8E_yrYBshT4GpPvDa-bnY7J126ToWXK5OtUhQgAxGOfQ/s1600/update-docker-repo.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="226" data-original-width="696" height="103" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBrAxPaiSgA9eg5eYmKTDakHxJcyfMKjbzQD_K4my_Sg2rvVzUxqJ_FsxEMc4-4nHgdLO_9Hp1cAniHfW0JrJKI-YBL_-miGe8E_yrYBshT4GpPvDa-bnY7J126ToWXK5OtUhQgAxGOfQ/s320/update-docker-repo.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Refresh repo</b></td></tr>
</tbody></table>
<br />
<br />
Install docker dengan perintah berikut:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo apt-get install -y docker-ce docker-ce-cli containerd.io</pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7NHj4oiUvOkxYQx4R9V-BfR4xRebordKWCmmK8M68Dp2BpLr5KOWJiMl-KjRGbrR3A2xq_pTcK4-_5o5Gd1GfUum2NUhqrs_ttcJuYjPOanV3lGbhjgjrNNnlUAMTlUbDMWz5ZPmsmoQ/s1600/proses-install1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="669" data-original-width="934" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7NHj4oiUvOkxYQx4R9V-BfR4xRebordKWCmmK8M68Dp2BpLr5KOWJiMl-KjRGbrR3A2xq_pTcK4-_5o5Gd1GfUum2NUhqrs_ttcJuYjPOanV3lGbhjgjrNNnlUAMTlUbDMWz5ZPmsmoQ/s320/proses-install1.png" width="320" /></a></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmg6DAlqLg31UEFbcxZdVT4nrQRUC581fW99Qn-AbwI4-o7WIs7FLMAPJwEpAVS4l6lZ9cbTo7sA7smP2r5OvTz87bzhjb_wWy0Cfvv5_UrsniVd8fBuBOzN7YfG-601XV6s1QZT3cMWI/s1600/proses-install2.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="671" data-original-width="929" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmg6DAlqLg31UEFbcxZdVT4nrQRUC581fW99Qn-AbwI4-o7WIs7FLMAPJwEpAVS4l6lZ9cbTo7sA7smP2r5OvTz87bzhjb_wWy0Cfvv5_UrsniVd8fBuBOzN7YfG-601XV6s1QZT3cMWI/s320/proses-install2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Instalasi Docker</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Jika proses install berhasil, maka output yang muncul harusnya identik dengan gambar diatas. Kemudian kita coba run sample container hello world dengan command berikut :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">sudo docker run hello-world</pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMiLT8bO0yWGpyIkeTMs3miVW1Wieqr6m1KZj_hl4H0MWNPF3uAX6swWMNDDUMowaXiOy-q2zGue_2zX5E15liB3H05NaS4BSeNtV4Nbn2hEKAb5MEBjO0q5-PyI5el8XlHJbdy08H2U/s1600/installed-docker.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="460" data-original-width="643" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnMiLT8bO0yWGpyIkeTMs3miVW1Wieqr6m1KZj_hl4H0MWNPF3uAX6swWMNDDUMowaXiOy-q2zGue_2zX5E15liB3H05NaS4BSeNtV4Nbn2hEKAb5MEBjO0q5-PyI5el8XlHJbdy08H2U/s320/installed-docker.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Docker Hello World</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Jika output saat eksekusi perintah docker run sama atau indentik dengan gambar diatas, artinya docker sudah terinstall dan LMDE siap untuk digunakan ber-dockeria. Jika tidak, silahkan tinggalkan komentar atau bisa kita diskusikan via email atau kontak telegram saya diatas.</div>
<br />
Semoga bermanfaat.<br />
<br />
Referensi :<br />
<ul>
<li><a href="https://docs.docker.com/install/linux/docker-ce/debian/">https://docs.docker.com/install/linux/docker-ce/debian/</a></li>
<li><a href="https://linuxmint.com/rel_debbie.php">https://linuxmint.com/rel_debbie.php</a> </li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-20294601891227415112020-03-27T23:08:00.001+07:002020-03-29T11:49:18.165+07:00Catatan Kasar Belajar Kubernetes Berikut adalah catatan belajar kubernetes secara kasar. Saking kasarnya, saya catet bab ato bagian yang esensi ketika deploy kubernetes di Server AWS. <br />
panduan cepat bisa lihat disini https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#limitations<br />
<br />
<a name='more'></a><br />
<br />
pastikan posisi swap off, dan tidak menyala ketika booting/restart dengan remark /etc/fstab<br />
alasan bisa dilihat disini https://serverfault.com/questions/881517/why-disable-swap-on-kubernetes<br />
<br />
<br />
<br />
tentukan ip address, di aws private IP bsa di associate, <br />
jadi ketika di deploy bisa di akes via publik,<br />
agar lebih mudah, masukkan ke /etc/hosts<br />
<br />
172.31.53.121 kube-master<br />
172.31.59.163 kube-node-2<br />
172.31.62.61 kube-node-1<br />
<br />
<br />
<br />
first thing to know, kubernetes adalah tool orchestration.<br />
runtime bsa menggunakan beberapa opsi container, salah satunya docker, <br />
jika menggunakan docker, maka perlu di optimasi<br />
lihat https://kubernetes.io/docs/setup/production-environment/container-runtimes/#docker<br />
<br />
<br />
<br />
untuk installasi kubernetes, yang digunakan adalah kubeadm. dan lakukan di semua node<br />
baik itu node master maupun node worker, semua membutuhkan kubeadm.<br />
tutorial nya bisa dilihat disini, OS yang digunakan debian buster.<br />
works dengan mengikuti config yang ada disini https://www.howtoforge.com/tutorial/how-to-install-kubernetes-on-ubuntu/<br />
<br />
<br />
<br />
saat init cluster kubernetes, pastikan ip api advertise adalah ip milik node master<br />
untuk IP pod network, di sesuaikan dengan plugin network yang digunakan. pada catatan ini menggunakan flannel <br />
cek disini, untuk pod network cidr sesuaikan dengan docs https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network<br />
<br />
sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=PRIVATE_IP --kubernetes-version "1.18.0"<br />
<br />
bagi yang menggunakan floating IP (seperti Elastic IP AWS atau floating IP openstack) tambahkan floating IP ke dalam command ke command sehingga menjadi<br />
sudo kubeadm init --pod-network-cidr=10.244.10.0/16
--apiserver-advertise-address=PRIVATE_IP --kubernetes-version "1.18.0"
--apiserver-cert-extra-sans=FLOATING_IP <br />
<br />
<br />
<br />
<br />
kemudian lakukan config (jika cluster di reset, dan di init ulang, ulangi tahap ini lagi)<br />
mkdir -vp $HOME/.kube<br />
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config<br />
sudo chown $(id -u):$(id -g) $HOME/.kube/config<br />
<br />
<br />
<br />
setelah itu, inisialisasi network untuk pod. jika connection refuse, bisa ditunggu terlebih dahulu, <br />
mungkin sekitar 10 setelah di init. Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:<br />
http://kubernetes.io/docs/concepts/cluster-administration/addons/<br />
<br />
<br />
<br />
setelah cluster siap, cek cluster dengan beberapa command berikut:<br />
kubectl get node<br />
kubectl get pod (--all-namespaces)<br />
kubectl get deployment (--all-namespaces)<br />
kubectl get service (--all-namespaces)<br />
kubectl get namespace<br />
kubectl get secret<br />
kubectl get serviceaccount<br />
<br />
untuk menambah node, bisa menggunakan perintah dengan template berikut :<br />
kubeadm join 172.31.53.121:6443 --token xdrh4p.owk9pi9x6r1l7aky \<br />
--discovery-token-ca-cert-hash sha256:600368886d02e164e41843a2e9d57f78cd96195cfc896e771a6a18d51b572f30<br />
atau apabila catatan kita hilang, kita bisa meng-generate, lihat lengkapnya <a href="https://stackoverflow.com/a/54339229" target="_blank">disini</a><br />
<a href="https://stackoverflow.com/a/54339229" target="_blank"><br /></a>
Memasang Dashboard Kubernetes<br />
Bisa dilihat selengkapnya <a href="https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/" target="_blank">disini</a><br />
<br />
Menghapus Service<br />
menghapus namespaces, artinya menghapus semua resource yang ada di dalam namespaces<br />
lihat https://stackoverflow.com/a/52363990<br />
<br />
issues :<br />
- Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes") [fixed by run "export KUBECONFIG=/etc/kubernetes/kubelet.conf"]<br />
- connection refuse, tunggu beberapa menit, ada kemungkinan kubernetes cluster belum ready<br />
<br />
<br />
<br />
Referensi :<br />
<ul>
<li>https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#limitations</li>
<li>http://kubernetes.io/docs/concepts/cluster-administration/addons/ </li>
<li>https://kubernetes.io/docs/reference/access-authn-authz/rbac/ </li>
<li>https://stackoverflow.com/a/46360852 </li>
<li>https://stackoverflow.com/questions/52449797/setting-up-clusters-and-work-nodes-how-do-i-set-kubeconfig-variable-in-windows </li>
<li>https://github.com/kubernetes/kubernetes/issues/48378 </li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-15852852028956640082020-02-29T22:00:00.001+07:002020-02-29T22:00:10.845+07:00Replikasi Mysql dengan SymmetricDS<br />
<br />
<br />
https://severalnines.com/blog/overview-postgresql-mysql-cross-replicationAlfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-12240624018690624232020-02-29T21:57:00.000+07:002020-05-31T23:59:37.400+07:00setup phppgadminSetup phppgadmin<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<a href="https://github.com/phppgadmin/phppgadmin/blob/master/INSTALL">https://github.com/phppgadmin/phppgadmin/blob/master/INSTALL</a><br />
<a href="https://stackoverflow.com/questions/19204816/login-disallowed-for-security-reasons-postgresql-centos-server">https://stackoverflow.com/questions/19204816/login-disallowed-for-security-reasons-postgresql-centos-server</a>Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-39367400225397667052020-01-24T16:51:00.004+07:002021-09-15T05:00:57.559+07:00MySQL CLI Cheat Sheet<br />
Berikut adalah environment yang saya gunakan<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">OS : Ubuntu Server 16.04.6 LTS
MySQL : MySQL 5.7.28</span></pre>
<br />
<a name='more'></a><br />
<br />
<br />
<b>Administrasi Database dan Tabel</b><br />
Membuat database baru<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">CREATE DATABASE <b>[nama_database];</b></span></pre>
Memilih database<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">use <b>[nama_database]</b></span></pre>
Menghapus database<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">DROP DATABASE [nama_database];</span></pre>
Menghapus tabel dan isinya<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">DROP table <b>[nama_tabel]</b>;</span></pre>
Mengosongkan isi tabel<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">DELETE FROM <b>[nama_tabel]</b>;</span></pre>
Menghapus kolom tabel<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE <b>[nama_tabel]</b> DROP COLUMN <b>[nama_kolom]</b>;</span></pre>
Membuat tabel dengan beberapa primary key<br />
<pre style="-webkit-text-stroke-width: 0px; background-color: #eff0f1; border-radius: 3px; border: 0px none; box-sizing: inherit; color: #242729; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: normal; font-variant-caps: normal; font-variant-east-asian: inherit; font-variant-ligatures: normal; font-variant-numeric: inherit; font-weight: 400; letter-spacing: normal; line-height: inherit; margin: 0px 0px 1em; max-height: 600px; orphans: 2; overflow-wrap: normal; overflow: auto; padding: 12px 8px; text-align: left; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; vertical-align: baseline; widows: 2; width: auto; word-spacing: 0px;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;">CREATE TABLE <b>[nama_tabel]</b> (
<b>[kolom_pertama]</b> <b>[TIPE_DATA]</b>,
</code><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><b>[kolom_kedua]</b></code> </code><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><b>[TIPE_DATA]</b></code>,
</code><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><b>[kolom_ketiga]</b></code> </code><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><b>[TIPE_DATA]</b></code><b>(ALOKASI)</b>,
primary key (</code><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><b>[kolom_pertama]</b></code>, </code><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><code style="background-color: #eff0f1; border: 0px none; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><b>[kolom_kedua]</b></code>)
);</code></pre><p>
</p><p><br />
<br />
<b>Adminstrasi User</b><br />
Membuat user MySQL baru (hanya akses lokal)<br />
</p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">CREATE USER '<b>[nama_user]</b>'@'localhost' IDENTIFIED BY '<b>[password_user]</b>';</span></pre>
Membuat user MySQL baru (akses hanya dari IP/DOMAIN tertentu)<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">CREATE USER '<b>[nama_user]</b>'@'<b>[ip_atau_domain]</b>' IDENTIFIED BY '<b>[password_user]</b>';</span></pre>
<br />
Membuat user MySQL baru (akses dari manapun)<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">CREATE USER '<b>[nama_user]</b>'@'%' IDENTIFIED BY '<b>[password_user]</b>';</span></pre><p>
untuk akses diluar lokal, pastikan MySQL dapat di akses dari jaringan luar. Caranya bisa dilihat di. . . . . . . . (belum ditulis, :P)</p><p>Menampilkan hak akses yang diberikan ke user</p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><code><span class="amp-wp-981e973" data-amp-original-style="color: rgb(0, 153, 0);">SHOW GRANTS FOR '[user]'@'[host]';</span></code></pre><p>Menampilkan list user dan host</p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><code><span class="amp-wp-981e973" data-amp-original-style="color: rgb(0, 153, 0);">SELECT User,Host FROM mysql.user;</span></code></pre><p>Memberikan full akses database ke user</p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">GRANT ALL PRIVILEGES ON *.* TO '[user]'@'[host]';</span></pre><p>Memberikan full akses suatu table pada database ke user</p><p></p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">GRANT ALL PRIVILEGES ON [nama_table].[nama_db] TO '[user]'@'[host]';</span></pre><p>Menarik hak akses suatu table pada database dari user</p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">REVOKE ALL PRIVILEGES ON [nama_table].[nama_db] FROM '[user]'@'[host]';</span></pre><p>Menghapus user<br /></p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">DROP USER '[user]'@'[host]';</span></pre><p><br />
<b><br /></b>
<b>Menyalin dan Menyisip</b> <br />
Menyalin isi kolom tertentu ke kolom lain<br />
</p><pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">UPDATE `<b>[nama_tabel]</b>` SET <b>[kolom_target]</b>=[<b>kolom_sumber</b>];</span></pre>
Menyisipkan kolom baru setelah kolom tertentu pada sebuah tabel<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE table ADD COLUMN <b>[nama_kolom]</b> AFTER <b>[nama_kolom_sebelum_kolom_baru]</b>; </span></pre>
Menyisipkan kolom baru ke di bagian paling kiri tabel<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE <b>[nama_tabel]</b> ADD COLUMN <b>[nama_kolom]</b> INT(11) FIRST;</span></pre>
<br />
<br />
<br />
<b>Mengubah atau Menambah Primary Key pada Tabel</b><br />
Pada beberapa kasus, mungkin kita perlu mengubah (mengganti, menambah, atau menghapus) primary key yang sudah ada karena terjadi perubahan arsitektur tabel database, berikut adalah cheat sheenya. <br />
<br />
Menghapus primary key<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE [</span><span style="font-family: "courier new" , "courier" , monospace;"><b><span style="font-family: "courier new" , "courier" , monospace;"><b>nama_tabel</b></span></b></span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">] </span>DROP INDEX `PRIMARY`;</span></pre>
Mengganti primary key<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE [</span><span style="font-family: "courier new" , "courier" , monospace;"><b><span style="font-family: "courier new" , "courier" , monospace;"><b>nama_tabel</b></span></b></span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">] </span>DROP INDEX `PRIMARY`,
ADD PRIMARY KEY ([<b>id_baru]</b>);</span></pre>
Jika ingin memiliki beberapa primary key, maka tinggal tambahkan kolom kedalam parameter PRIMARY KEY, sehingga command menjadi :<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE <b>[</b></span><span style="font-family: "courier new" , "courier" , monospace;"><b><span style="font-family: "courier new" , "courier" , monospace;"><b>nama_tabel</b></span>]</b>
DROP INDEX `PRIMARY`,
ADD PRIMARY KEY (<b>[id_lama]</b>,<b>[id_baru]</b>);</span></pre>
<br />
<b>Mengganti opsi kolom auto increment pada tabel</b><br />
pertama hapus dulu auto_increment pada kolom yang memilik opsi auto increment dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE `<b>[nama_tabel]</b>` CHANGE `<b>[id_lama]</b>` `<b>[id_lama]</b>` INT(11) NOT NULL;</span></pre>
kemudian berikan opsi auto_increment ke kolom baru dengan perintah <br />
<pre style="background-color: #eff0f1; border: 0px none; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">ALTER TABLE `[nama_tabel]` CHANGE `<b>[id_baru]</b>` `<b>[id_baru]</b>` INT(11) NOT NULL AUTO_INCREMENT;</span></span></pre>
<br />
Semoga bermanfaat. :)<br />
<br />
Referensi :<br />
<ul>
<li><a href="https://stackoverflow.com/questions/9001939/copy-values-from-one-column-to-another-in-the-same-table">https://stackoverflow.com/questions/9001939/copy-values-from-one-column-to-another-in-the-same-table</a></li>
<li><a href="https://forums.mysql.com/read.php?10,301647,301663#msg-301663">https://forums.mysql.com/read.php?10,301647,301663#msg-301663</a> </li>
<li><a href="https://stackoverflow.com/questions/9070764/insert-auto-increment-primary-key-to-existing-table">https://stackoverflow.com/questions/9070764/insert-auto-increment-primary-key-to-existing-table</a> </li>
<li><a href="https://stackoverflow.com/questions/217945/can-i-have-multiple-primary-keys-in-a-single-table">https://stackoverflow.com/questions/217945/can-i-have-multiple-primary-keys-in-a-single-table</a></li><li><a href="https://chartio.com/resources/tutorials/how-to-grant-all-privileges-on-a-database-in-mysql/">https://chartio.com/resources/tutorials/how-to-grant-all-privileges-on-a-database-in-mysql/</a></li><li><a href="https://www.cyberciti.biz/faq/how-to-delete-remove-user-account-in-mysql-mariadb/">https://www.cyberciti.biz/faq/how-to-delete-remove-user-account-in-mysql-mariadb/</a> <br /></li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-54287254908340206262020-01-05T21:38:00.002+07:002020-01-06T00:36:27.122+07:00Install Git Versi Terbaru di Linux Server<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2zOFUUVzeClt_MKSKfKwIULMfUzkmTB__VT5perHXG-tYZfVYSeXmFb9eWT8OKQlKtYn_GEfEq5UM1GA1LheN8vxWdJgT13fE8nMI5VxaUtoX7Iumkln8C7o2UoCEoph8cz7mxbzanl8/s1600/git-logo.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="200" data-original-width="588" height="67" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2zOFUUVzeClt_MKSKfKwIULMfUzkmTB__VT5perHXG-tYZfVYSeXmFb9eWT8OKQlKtYn_GEfEq5UM1GA1LheN8vxWdJgT13fE8nMI5VxaUtoX7Iumkln8C7o2UoCEoph8cz7mxbzanl8/s200/git-logo.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Git</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Git adalah salah satu version control dan tool kolaborasi yang banyak digunakan oleh developer saat ini. Sehingga kebutuhan akan tersedianya git pada sistem, bisa di bilang menjadi hal yang utama dalam proses development.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<a name='more'></a><div style="text-align: justify;">
Kali ini saya di beri tugas untuk handle dan explore <a href="https://vufind.org/" target="_blank">VuFind</a>, salah satu produk berbasis opensource untuk mesin pencari katalog pada perpustakaan. Dan kebetulan, OS yang digunakan adalah Centos 6. Supaya tidak mengganggu sistem pada production, maka saya berinisiatif mendeploy server dengan OS Centos 6. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Dan saya baru ingat, versi git yang tersedia di repository Centos 6 adalah versi yang lawas (kalo di server saya 1.7.1). Sehingga fitur-fitur baru git seperti git submodule dan sebagainya mungkin bisa jadi problem saat proses development. (Lihat lebih detail <a href="https://stackoverflow.com/questions/1777854/how-can-i-specify-a-branch-tag-when-adding-a-git-submodule/18799234#18799234" target="_blank">disini</a>)</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoI0DPTKk48njzLDYy5AMo1r0RoM1NSCqSkgH88WvNezFYWA4C5PPaGBJ8sQg1MG-YE-00Xs3Udjqrvqs0IuSEnz2Q-xO4gEPG74aa7yLy_cvaBTLJoKpgUiSv6ZKExGFxr3r3IwvXo0g/s1600/old-version-git.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="81" data-original-width="315" height="51" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoI0DPTKk48njzLDYy5AMo1r0RoM1NSCqSkgH88WvNezFYWA4C5PPaGBJ8sQg1MG-YE-00Xs3Udjqrvqs0IuSEnz2Q-xO4gEPG74aa7yLy_cvaBTLJoKpgUiSv6ZKExGFxr3r3IwvXo0g/s200/old-version-git.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Git Versi Lawas</b></td></tr>
</tbody></table>
Seperti biasa, first thing first, berikut adalah spesifikasi yang saya gunakan saat menginstall git versi terbaru :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">OS : CentOS 6.10
vCPU : 1
RAM : 1GB</span></pre>
<div style="text-align: justify;">
Untuk distro Linux lain bisa mengikuti dengan mengadaptasikan perintah install ataupun nama package yang tersedia di repository (misalnya jika menggunakan ubuntu, maka perintah <span style="font-family: "courier new" , "courier" , monospace;">yum</span> diganti <span style="font-family: "courier new" , "courier" , monospace;">apt</span> dan nama package di adaptasikan dengan nama package di repo Ubuntu).</div>
<br />
<div style="text-align: justify;">
Pertama, install basic compiler pada server dengan menggunakan perintah :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo yum groupinstall -y "Development Tools"</span></pre>
</div>
<div style="text-align: justify;">
Install dependensi tambahan yang diperlukan untuk mengkompilasi source code git :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo yum install -y unzip asciidoc xmlto curl-devel</span></pre>
</div>
<div style="text-align: justify;">
Kemudian download source code terbaru git dengan perintah-perintah berikut, (pada catatan saya kali ini saya akan menginstall di folder <span style="font-family: "courier new" , "courier" , monospace;">/usr/local<span style="font-family: "arial" , "helvetica" , sans-serif;">) :</span></span></div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">cd /tmp
wget -O git.zip https://github.com/git/git/archive/master.zip</span></pre>
</div>
<div style="text-align: justify;">
extract file yang sudah kita download dengan perintah :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">unzip git.zip</span></pre>
</div>
<div style="text-align: justify;">
lakukan proses kompilasi dengan perintah berikut (ganti prefix sesuai dengan kebutuhan) :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">cd git-master
make configure && ./configure --prefix=<b>/usr/local</b>
make all doc</span></pre>
</div>
<div style="text-align: justify;">
selanjutnya install git dengan perintah :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo make install install-doc install-html</span></pre>
</div>
<div style="text-align: justify;">
kemudian pastikan git yang terinstall adalah versi terakhir dengan perintah :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">git --version</span></pre>
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0BS1EWLnSsb9_HMCh_3_Ii3KbbPxYJBOnRaWJvJI24nxORuWX4VcJHpf0R0dtF7l6AkIzwowyB7B271JJgyb0Jgs0jqWOn9kNPbQjk1MHGNCuYWWHLHhEXxODuxH5x8XrB3So1JIZ1_A/s1600/git-version.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="62" data-original-width="324" height="38" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0BS1EWLnSsb9_HMCh_3_Ii3KbbPxYJBOnRaWJvJI24nxORuWX4VcJHpf0R0dtF7l6AkIzwowyB7B271JJgyb0Jgs0jqWOn9kNPbQjk1MHGNCuYWWHLHhEXxODuxH5x8XrB3So1JIZ1_A/s200/git-version.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Versi Git yang Terinstall</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Pada saat catatan ini dibuat, versi terakhir dari branch master git adalah 2.25.0-rc1, versi terakhir git bisa di cek <a href="https://github.com/git/git" target="_blank">disini</a>.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj1pfmtBdzNPkNBxN_GamSHZjyqAKnBj5WHP7sG7JISiiIxR3cPJgbS8ug2dt1OJacYIeC9YP2xYlB-_zDjy23K8SgL7dZelJY2mTN5E_4GPV3DJUZx6XVVp70mNC8anmVfU2MuUCGOsw/s1600/git-repo-tags.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="335" data-original-width="358" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj1pfmtBdzNPkNBxN_GamSHZjyqAKnBj5WHP7sG7JISiiIxR3cPJgbS8ug2dt1OJacYIeC9YP2xYlB-_zDjy23K8SgL7dZelJY2mTN5E_4GPV3DJUZx6XVVp70mNC8anmVfU2MuUCGOsw/s200/git-repo-tags.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Versi Git yang Tersedia </b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Silahkan tinggalkan komentar atau hubungi via email/telegram yang tertera di profil saya. Semoga bermanfaat.</div>
<br />
referensi :<br />
<ul>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-git-on-a-centos-6-4-vps">https://www.digitalocean.com/community/tutorials/how-to-install-git-on-a-centos-6-4-vps</a></li>
<li><a href="https://stackoverflow.com/questions/24634092/git-submodule-update-not-functioning">https://stackoverflow.com/questions/24634092/git-submodule-update-not-functioning</a></li>
<li><a href="https://stackoverflow.com/questions/1777854/how-can-i-specify-a-branch-tag-when-adding-a-git-submodule/18799234#18799234">https://stackoverflow.com/questions/1777854/how-can-i-specify-a-branch-tag-when-adding-a-git-submodule/18799234#18799234</a> </li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-10022577402051433322019-12-31T22:46:00.000+07:002020-04-19T22:28:20.803+07:00Konfigurasi SSL Web Menggunakan Lets Encrypt<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Pada catatan saya kali ini, saya akan menggunakan docker, namun secara logic, implementasinya seharusnya tidak beda dengan anda mengeksekusi langsung di host. Bagian yang saya tebalkan adalah value atau variabel yang dapat disesuaikan dengan kebutuhan anda, sehingga tidak selalu harus bernilai sama.</div>
<div style="text-align: justify;">
<br />
<a name='more'></a><br /></div>
<div style="text-align: justify;">
Environment :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">OS : Ubuntu Server 18.04 LTS
Docker : Docker version 18.09.7, build 2d0083d
Nginx : 1.17.10</span></pre>
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Dependensi dan versi yang saya gunakan :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">- git versi 2.20.1
- certbot versi terakhir
</span></pre>
</div>
<div style="text-align: justify;">
Semua command yang saya tuliskan menggunakan user root, bagi anda yang tidak menggunakan user root, pastikan user anda dapat menggunakan perintah sudo. Dan perlu di ingat, bila anda menggunakan sudo, maka setiap perintah disini wajib ditambahkan sudo di depannya.<br />
<br />
Pertama, kita siapkan folder untuk volume webserver kita. Kali ini saya menggunakan directory /root/webserver sebagai folder volume untuk container webserver. Folder volume bisa di sesuaikan kebutuhan.<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -it --rm \
-v /root/webserver/htdocs/:/usr/share/nginx/html \
-v /root/webserver/etc/nginx:/etc/nginx \
nginx true</span></pre>
Setelah itu bisa kita cek apakah folder volume yang dibutuhkan sudah terbentuk atau belum. Hasil pengecekan kurang lebih terlihat seperti gambar<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgde0dDxk0GwuMkuhZl6WWlfmfro9qI3jdGetC2KjUO_I-I5TmMUJUt6o43OHEpgLlXQXbM6nahCoqEzBPJQuCmZVmjo5y-OLCBoh79-9El05P65MPaGUcpi_p-KC9x1DRO4p6mrQKCe_I/s1600/folder-volume.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="969" height="81" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgde0dDxk0GwuMkuhZl6WWlfmfro9qI3jdGetC2KjUO_I-I5TmMUJUt6o43OHEpgLlXQXbM6nahCoqEzBPJQuCmZVmjo5y-OLCBoh79-9El05P65MPaGUcpi_p-KC9x1DRO4p6mrQKCe_I/s320/folder-volume.png" width="320" /></a></div>
<br />
<br />
Selanjutnya copy config nginx yang ada dalam image, ke folder volume yang sudah terbentuk. Jika kita tidak mengcopy config tersebut, lalu kita menggunakan volume untuk config nginx, maka besar kemungkinan nginx akan crash dan tidak dapat berjalan. untuk mengcopy config tersebut, kita bisa gunakan perintah sebagai berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -it --rm \
-v /root/webserver/etc/nginx/:/target \
nginx cp -arvf /etc/nginx/. /target</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMIdW30HszO6e-mdxmNcldHfjdms6YvjvMiVnDvUo2Ks95pTsLAMBXaw6BHYdax4oEOF0cMGMLJnrfw9s4AT5sITrLDQMTTS0iJ9Rep2-IH71ph90875sKJlDE6n0zf_IvACNbBZVsrHE/s1600/copy-nginx-config.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="305" data-original-width="828" height="117" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMIdW30HszO6e-mdxmNcldHfjdms6YvjvMiVnDvUo2Ks95pTsLAMBXaw6BHYdax4oEOF0cMGMLJnrfw9s4AT5sITrLDQMTTS0iJ9Rep2-IH71ph90875sKJlDE6n0zf_IvACNbBZVsrHE/s320/copy-nginx-config.png" width="320" /></a></div>
</div>
<div style="text-align: justify;">
Dari gambar bisa kita lihat, config nginx sudah tercopy ke directory volume nginx. Selanjutnya kita perlu sedikit mengubah config pada nginx. Sebenarnya ini bersifat opsional, tapi alangkah lebih baik jika kita tambahkan. Saya menggunakan teks editor nano, anda bisa menggunakan teks editor lain seperti pico, vi/vim, atau neovim.</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">nano webserver/etc/nginx/conf.d/default.conf </span></pre>
</div>
<div style="text-align: justify;">
Kemudian sesuaikan line pertama pada config tersebut, di bagian yang saya tebali silahkan anda ganti dengan domain webserver anda <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">server {
listen 80;
server_name <b>registry.bukananakit.com</b>;
</span></pre>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiylQEGSI5p4QV5OyxJJdslwCAmxvHxICh5GM9YfdBM89PxqqBFKwwrONvC6dzZHK6sL_cksestgFQOhqrNKwPThrV3MCiG4jb7IDwL6Hq0xFZFwyHL1TgEQJp1aOOq_ybeKyvVOOxQUCs/s1600/conf.d.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="72" data-original-width="442" height="52" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiylQEGSI5p4QV5OyxJJdslwCAmxvHxICh5GM9YfdBM89PxqqBFKwwrONvC6dzZHK6sL_cksestgFQOhqrNKwPThrV3MCiG4jb7IDwL6Hq0xFZFwyHL1TgEQJp1aOOq_ybeKyvVOOxQUCs/s320/conf.d.png" width="320" /></a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Kalau sudah, kita bisa mulai run mulai mendeploy nginx webserver. Karena goal kita adalah memasang SSL dari letsencrypt, maka kita perlu menambahkan directory /etc/letsencrypt ketika mendeploy nginx webserver. Pastikan port 80 dan 443 tidak digunakan saat anda mendeploy container. Untuk perintah nya sebagai berikut :</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -d --net=host \
--hostname webserver \
--name webserver \
-v /root/webserver/htdocs/:/usr/share/nginx/html \
-v /root/webserver/etc/nginx:/etc/nginx \
-v /etc/letsencrypt/:/etc/letsencrypt/ \
nginx</span></pre>
</div>
<div style="text-align: justify;">
<span id="goog_1877999937"></span><span id="goog_1877999938"></span> Kemudian pastikan container nginx sudah running. Kita bisa cek dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker ps</span></pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZL6Y7qxOD_cOmjkadjsNXzp34aBY87iMbn1bP_PwT7bxp4ec7M0lCLkXutTt7ezOQn5DWOiH5K5GVsdC-HLrWyIZRo1CPgbEQcpERY9VTOwXqIHL7IPpqUJtGs8GmVL7vOherRdiYoAA/s1600/deploy-list-container.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="141" data-original-width="1351" height="33" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZL6Y7qxOD_cOmjkadjsNXzp34aBY87iMbn1bP_PwT7bxp4ec7M0lCLkXutTt7ezOQn5DWOiH5K5GVsdC-HLrWyIZRo1CPgbEQcpERY9VTOwXqIHL7IPpqUJtGs8GmVL7vOherRdiYoAA/s320/deploy-list-container.png" width="320" /></a></div>
<br />
Selanjutnya cek via browser, sesuikan dengan domain anda, kalo saya berarti http://registry.bukananakit.com. Hasilnya mungkin awalnya akan terlihat seperti ini<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWQlhYn4Sk-iILL6JcVvXq9dvdKoeLD_rozfXDsEnus7crKYlOHH3KupRjhXQ_mKT2xPUiDSY8obhH_BEO-faIcvD5e_EOW6xnwtrbdZDX7V5yCmb4cIJUCgiBChJ7NYc95BheI6mWkgg/s1600/forbidden.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="248" data-original-width="861" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWQlhYn4Sk-iILL6JcVvXq9dvdKoeLD_rozfXDsEnus7crKYlOHH3KupRjhXQ_mKT2xPUiDSY8obhH_BEO-faIcvD5e_EOW6xnwtrbdZDX7V5yCmb4cIJUCgiBChJ7NYc95BheI6mWkgg/s320/forbidden.png" width="320" /></a></div>
<br />
Mengapa begitu? karena di root folder webserver kita belum menempatkan file apapun. Untuk sederhananya, kita bisa mengisi folder tersebut menggunakan perintah berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">echo "<h3>Its Working</h3>" > webserver/htdocs/index.html</span></pre>
Kemudian kita tinggal refresh halaman tadi, dan seharusnya muncul output sebagai berikut:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5R55LjXNgI31qhpAkgw5Oye1N07afLDw4Ft6vStT3OlcgQGiRIJQ0NA1K2R-rQWGlGDnXhZQ2X9XLjrzjpHJzuPfx6br-4_IWXvuz5U6B2a6vLc3e71aovaZ7F-bW0oL6k4rux8k5yF4/s1600/its-working.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="201" data-original-width="829" height="77" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5R55LjXNgI31qhpAkgw5Oye1N07afLDw4Ft6vStT3OlcgQGiRIJQ0NA1K2R-rQWGlGDnXhZQ2X9XLjrzjpHJzuPfx6br-4_IWXvuz5U6B2a6vLc3e71aovaZ7F-bW0oL6k4rux8k5yF4/s320/its-working.png" width="320" /></a></div>
<br />
Oke, webserver sudah ready, saat nya memasang SSL menggunakan letsencrypt. Pastikan git sudah terinstall di server anda. Untuk directory certbot, saya menggunakan directory /opt/certbot. Directory ini bisa diganti sesuai dengan kebutuhan. Pertama, kita clone terlebih dahulu certbot dengan perintah berikut:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">git clone https://github.com/certbot/certbot /opt/certbot</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXAB48U2A-3nw97pzu5qc6nrolfTH6vtjdthVYuqVprpAQ7zVPk1MaQBW0ihAZCQR0V1hVMlYDeKAJsq7JNv43lMP2c64AFLRWTbw_lFNMp3NCUROmORBwA7fZL0ranGDBnfHqB2hFio/s1600/clone-cerbot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="147" data-original-width="562" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijXAB48U2A-3nw97pzu5qc6nrolfTH6vtjdthVYuqVprpAQ7zVPk1MaQBW0ihAZCQR0V1hVMlYDeKAJsq7JNv43lMP2c64AFLRWTbw_lFNMp3NCUROmORBwA7fZL0ranGDBnfHqB2hFio/s320/clone-cerbot.png" width="320" /></a></div>
<br />
Selanjutnya kita run command berikut (sesuaikan value yang ada di command dengan kebutuhan anda) :<br />
<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;"><b>/opt/certbot/</b>certbot-auto certonly --non-interactive \
--webroot -d <b>registry.bukananakit.com</b> \
-w "<b>/root/webserver/htdocs</b>" \
--agree-tos \
--email "<b>admin@bukananakit.com</b>"</span></pre>
Certbot akan merefresh repo dan menginstall dependensi yang dia perlukan. output (karena panjang saya potong) dari dependensi kurang lebihnya akan seperti berikut :<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFUO_L_lwutesMWHQaClxlz5R9bePj4UglHY-2k4kcns0Kbl9rWlzvGh8RQS8RgfTeqP54G00143goIjOsmbrkJDk4utL7fI7CWYndrC86hs_zYqPn8AMor0-GGf3I4UXwIfwrPcfuUjg/s1600/get-ssl-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="522" data-original-width="1355" height="123" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFUO_L_lwutesMWHQaClxlz5R9bePj4UglHY-2k4kcns0Kbl9rWlzvGh8RQS8RgfTeqP54G00143goIjOsmbrkJDk4utL7fI7CWYndrC86hs_zYqPn8AMor0-GGf3I4UXwIfwrPcfuUjg/s320/get-ssl-1.png" width="320" /></a></div>
<br />
Kemudian jika sudah selesai, akan terlihat seperti gambar berikut :<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw53vTukdVeAIetLoU0ephwDL9Yl3g62r32DtDONiadqgUGQSaS0DwNhEX6_fbHFOezXMRSvUPGgk87AIsMXBDClB9Dup9oUf4W5OWFhYaImF_H5eABUQc79MV_uaGOC-oRpzag48QyNc/s1600/get-ssl-2-success.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="592" data-original-width="1347" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw53vTukdVeAIetLoU0ephwDL9Yl3g62r32DtDONiadqgUGQSaS0DwNhEX6_fbHFOezXMRSvUPGgk87AIsMXBDClB9Dup9oUf4W5OWFhYaImF_H5eABUQc79MV_uaGOC-oRpzag48QyNc/s320/get-ssl-2-success.png" width="320" /></a></div>
<br />
Bisa kita lihat, proses menginstall SSL dengan letsencrypt sudah berhasil (jika output berbeda, mungkin proses install belum berhasil). Terdapat beberapa "Important Notes" yang perlu kita cermati, beberapa diantaranya adalah :</div>
<div style="text-align: justify;">
1. certificate ssl terletak di directory:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">/etc/letsencrypt/live/registry.bukananakit.com/fullchain.pem</pre>
2. certificate ssl terletak di directory:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">/etc/letsencrypt/live/registry.bukananakit.com/privkey.pem</pre>
3. config account certbot terletak di directory:</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">/etc/letsencrypt/</pre>
</div>
<div style="text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_IiPCfLB2yP9uH-HLMHN6uhQcYE54ItGgzxlJ0cCfwFLYadce8JNTb1HrP6OGF3Gr0E6TO_c2iVnQ-y7xzFl7FQsrdwS0nKaGRNwGxfAaeBkZwah9YcBrrINUm2dpExP6XA4QAL9Rqso/s1600/list-certificate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="166" data-original-width="535" height="99" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_IiPCfLB2yP9uH-HLMHN6uhQcYE54ItGgzxlJ0cCfwFLYadce8JNTb1HrP6OGF3Gr0E6TO_c2iVnQ-y7xzFl7FQsrdwS0nKaGRNwGxfAaeBkZwah9YcBrrINUm2dpExP6XA4QAL9Rqso/s320/list-certificate.png" width="320" /></a></div>
<br />
4. SSL akan kadaluarsa pada : 2020-07-18</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMQUKRSypbZC5p6byTkyX1pXInUXIav_xG5lgqLKieg_sAucfLr4oA7J0vNN8_n3Yf7p_vbuWucU-lJ8riudrkJ4TsORd5JW-bpZIUWfb-4LrTBMqStgAOt2gkhjR9lDwvMZne7zuvJsg/s1600/expired-date.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="149" data-original-width="532" height="89" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMQUKRSypbZC5p6byTkyX1pXInUXIav_xG5lgqLKieg_sAucfLr4oA7J0vNN8_n3Yf7p_vbuWucU-lJ8riudrkJ4TsORd5JW-bpZIUWfb-4LrTBMqStgAOt2gkhjR9lDwvMZne7zuvJsg/s320/expired-date.png" width="320" /></a></div>
<br />
<br />
<div style="text-align: justify;">
Nah, kita sudah mendapatkan SSL dengan letsencrypt. Selanjutnya kita akan menginstall SSL tersebut ke webserver nginx yang sudah kita deploy. Kita perlu terlebih dahulu menambahkan config https di nginx. Kita akan menambahkan config yang sudah kita buat tadi. Kembali silahkan gunakan teks editor favorit anda. </div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">nano webserver/etc/nginx/conf.d/default.conf</pre>
<br />
Kemudian tambahkan config berikut, di bagian paling bawah. jangan lupa sesuaikan dengan directory yang anda gunakan:<br />
<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">server {
listen 443 ssl http2; # by default, its used 443
listen [::]:443 ssl http2; # by default, its used 443
server_name <b>registry.bukananakit.com</b>;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
ssl_certificate <b>/etc/letsencrypt/live/registry.bukananakit.com/fullchain.pem</b>;
ssl_certificate_key <b>/etc/letsencrypt/live/registry.bukananakit.com/privkey.pem</b>;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
# intermediate configuration
ssl_protocols TLSv1.2 TLSv1.3; # adjust your protocol here
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
}</pre>
<br />
Kurang lebih terlihat sebagai berikut :<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHZX1LSsp4qYYhBoK564ecCx0nDI9dVCXjD_o77eQ0m51-5XJ8lG4Od4zK35mdB_3kIjitgGeNqcF6obE7Q5FD-Z9S4C5akH9ViU02aGHQk3B0Doa42Z2RjPO-Wkmzg7UL-CYnvttXuyE/s1600/setup-ssl-nginx.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="287" data-original-width="1352" height="67" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHZX1LSsp4qYYhBoK564ecCx0nDI9dVCXjD_o77eQ0m51-5XJ8lG4Od4zK35mdB_3kIjitgGeNqcF6obE7Q5FD-Z9S4C5akH9ViU02aGHQk3B0Doa42Z2RjPO-Wkmzg7UL-CYnvttXuyE/s320/setup-ssl-nginx.png" width="320" /></a></div>
<br />
<br />
<div style="text-align: justify;">
Selanjutnya kita cek, apakah config yang kita buat sintaksnya sudah sesuai atau belum. Kita bisa menggunakan perintah :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">docker exec -it webserver nginx -t</pre>
<div style="text-align: justify;">
Bila tidak ada kesalahan, output yang dihasilkan akan terlihat seperti berikut :</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8tONMVyyzBzobEo4sPHDzk3qvcngwMjlbOPVYsvjNTAQhK66n0Zt-0zjFlu_NKA7JMCuXAb9x7LkWzXwrdinU9Acp4MZPYhs6SE5KLSpqkG_MYI-jmUug2p8OOX79r0X6wZvVRtxSBs4/s1600/test-nginx.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="87" data-original-width="507" height="54" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8tONMVyyzBzobEo4sPHDzk3qvcngwMjlbOPVYsvjNTAQhK66n0Zt-0zjFlu_NKA7JMCuXAb9x7LkWzXwrdinU9Acp4MZPYhs6SE5KLSpqkG_MYI-jmUug2p8OOX79r0X6wZvVRtxSBs4/s320/test-nginx.png" width="320" /></a></div>
<br />
<br />
Selanjutnya kita restart docker container nginx dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">docker restart webserver </pre>
<div style="text-align: justify;">
Pastikan container webserver running. kemudian kita bisa cek SSL melalui browser dengan mengakses https://registry.bukananakit.com. bagi yang menggunakan firefox, seharusnya kita bisa melihat tanda kunci warna hijau di sebelah URL,</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy_b4wnmnpFsdFVTe7HVHKjHaBgze22213utVU5NBgO9RW1-jjnu1Dr7zpi6e03ZEIYBqCRdGYJ50CMDubqhaDAqwIvOHLR4FfBY6SpEymGCeQfXZOBHRcr9DDDVlALpjHEAEuQ6fZsao/s1600/ssl-working.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="178" data-original-width="787" height="72" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy_b4wnmnpFsdFVTe7HVHKjHaBgze22213utVU5NBgO9RW1-jjnu1Dr7zpi6e03ZEIYBqCRdGYJ50CMDubqhaDAqwIvOHLR4FfBY6SpEymGCeQfXZOBHRcr9DDDVlALpjHEAEuQ6fZsao/s320/ssl-working.png" width="320" /></a></div>
<br />
Dan kalau kita cek, maka certificate akan terlihat seperti pada gambar berikut:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieOIZ8TDbFFaFYPeWGAF2moOUI3EK6NRNlm32X6Q8UNofcyDLeOIjaOmDrPEn9mLVgu9w93iN3GV6qRCBo64jqnfMo9mlsGmF8aRLGb4pWZMhNwoMyAVqG_61fuPQqDQuotUBXy_z_bYw/s1600/check-ssl.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="579" data-original-width="651" height="284" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieOIZ8TDbFFaFYPeWGAF2moOUI3EK6NRNlm32X6Q8UNofcyDLeOIjaOmDrPEn9mLVgu9w93iN3GV6qRCBo64jqnfMo9mlsGmF8aRLGb4pWZMhNwoMyAVqG_61fuPQqDQuotUBXy_z_bYw/s320/check-ssl.png" width="320" /></a></div>
<br />
Saya menulis beberapa cheat sheet nginx config. Silahkan bagi yang membutuhkannya bisa di akses disini. <a href="https://bukananakit.blogspot.com/2020/04/nginx-config-cheat-sheet.html" target="_blank">disini</a>.<br />
<br />
Semoga bermanfaat.<br />
<br />
<div style="text-align: justify;">
Referensi :</div>
<ul style="text-align: justify;">
<li><a href="https://medium.com/@saurabh6790/generate-wildcard-ssl-certificate-using-lets-encrypt-certbot-273e432794d7">https://medium.com/@saurabh6790/generate-wildcard-ssl-certificate-using-lets-encrypt-certbot-273e432794d7</a></li>
<li><a href="https://hub.docker.com/_/nginx" target="_blank">https://hub.docker.com/_/nginx</a></li>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-use-certbot-standalone-mode-to-retrieve-let-s-encrypt-ssl-certificates-on-ubuntu-1804">https://www.digitalocean.com/community/tutorials/how-to-use-certbot-standalone-mode-to-retrieve-let-s-encrypt-ssl-certificates-on-ubuntu-1804</a> </li>
</ul>
<div style="text-align: justify;">
</div>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-88060241724665380072019-12-13T15:46:00.004+07:002020-01-24T17:08:32.867+07:00Membuat Swap Memory di Ubuntu Server<div class="separator" style="clear: both; text-align: justify;">
Beberapa waktu lalu saya diminta untuk mendeploy <a href="https://www.elastic.co/what-is/elk-stack">ELK Stack</a> dan <a href="https://www.confluent.io/">Kafka</a> di sebuah server milik kantor. Ternyata, untuk service Kafka, spesifikasi server yang disediakan memiliki resource yang bisa dibilang terbatas. Yang Menjadi problem adalah Ram server hanya memiliki kapasitas 2GB dan belum memiliki swap memory. Karena server ini digunakan untuk keperluan research, dibandingkan mengupgrade spesifikasi server, saya pikir akan lebih cepat dan hemat membuat swap memory. Sekalian saya pengen lihat, seberapa besar pengaruh hadirnya swap memory di server yang memiliki spesifikasi minim.</div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<a name='more'></a><br />
<div style="text-align: justify;">
Seperti biasa, first thing first. Berikut adalah spesifikasi-spesifikasi yang saya gunakan saat membuat catatan ini :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">vCPU : 1
RAM : 2GB
Storage : 50 GB
Operating System : Lubuntu 18.04.3 LTS
Htop Version :2.1.0
</span></pre>
Untuk membuat swap memory, setahu saya ada dua cara.<br />
1. Dengan membuat partisi baru, kemudian di format sebagai swap area.<br />
2. Membuat dump file kemudian kita setup/format file tersebut menjadi swap area<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="text-align: justify;">
Saya pikir akan lebih mudah dan cepat jika menggunakan cara kedua, untuk cara pertama biasanya dilakukan saat pertama kali install server. namun cara ini sediki lebih rumit karena harus melakukan partisi pada proses pembuatannya. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Untuk cek apakah ada swap memory atau tidak, biasanya saya menggunakan tool bernama htop. dan secara default, tool ini tidak terinstall di distro-distro linux. untuk menginstallnya bisa menggunakan perintah :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install -y htop</span></pre>
Jika sudah, kita tinggal run command<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">htop</span></pre>
<div style="text-align: justify;">
berikut adalah penampakan htop monitoring sebelum membuat swap. kita bisa lihat pada bagian <span style="font-family: "courier new" , "courier" , monospace;">Swp</span> masih kosong. Jika memiliki swap aktif, makan bagian tersebut tidak akan bernilai 0. Nah berikut adalah cara membuat Swap memory. (klik gambar untuk memperbesar gambar)</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Xh6ang9TjMaB1in9PIc66x0x_xoV-4OlXuaIA6X697n1o3QTGJEMxUqPcW_q85OM7fhzocKjrBdBSL7u_C6t2mssYF-9JR5yNDAaxHX8Ku3oOf_mSLlvu2srEDapmL4h6Y4RO8qza8o/s1600/htop-awal.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="137" data-original-width="984" height="44" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3Xh6ang9TjMaB1in9PIc66x0x_xoV-4OlXuaIA6X697n1o3QTGJEMxUqPcW_q85OM7fhzocKjrBdBSL7u_C6t2mssYF-9JR5yNDAaxHX8Ku3oOf_mSLlvu2srEDapmL4h6Y4RO8qza8o/s320/htop-awal.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>htop dengan swap memory 0</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Pertama terlebih dahulu kita buat dump file. Untuk membuat dump file, kita akan menggunakan perintah <span style="font-family: "courier new" , "courier" , monospace;">dd</span>. Sesuaikan lokasi file dan besaran swap. Pada catatan saya kali ini saya akan membuat swap memory sebesar 4GB atau 4096 MB dengan lokasi file berada di <span style="font-family: "courier new" , "courier" , monospace;">/swapfile</span>. Sehingga jika kita konversi menjadi command akan terlihat sebagai berikut :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo dd if=/dev/zero of=<b>/swapfile</b> bs=<b>4096</b> count=1M</span></pre>
Selanjutnya setup permission file<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo chmod 600 /swapfile</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjskbnuroRSGoyUBq8vsHDQU4ogShqbFL3-TH8-yK7RsrWn5h8f_iBCEjgX8p4tm3YzLVlW9fpRiAMWvOIjfmUfQPJ9AHL20aJVeYy54y1jg6u1CvBLOF24N9P2ECebqTIwlq3UmTJeQVQ/s1600/dump-file-created.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="227" data-original-width="1276" height="56" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjskbnuroRSGoyUBq8vsHDQU4ogShqbFL3-TH8-yK7RsrWn5h8f_iBCEjgX8p4tm3YzLVlW9fpRiAMWvOIjfmUfQPJ9AHL20aJVeYy54y1jg6u1CvBLOF24N9P2ECebqTIwlq3UmTJeQVQ/s320/dump-file-created.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Membuat dum pfile</b></td></tr>
</tbody></table>
Selanjutnya setup file menjadi swap agar menjadi swap area<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">mkswap /swapfile </span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuWpgYVFLNbaKn4CEmDtQVV6IBr9KrvoayPPr0pqq5G1LEuGIhm6GjSGvTsZSmi4hObdJCIvZkFTuq2nbvmkWUikS6DE11UMx-YddKFJkH4Tzpv9brAN_89UkcZdCbuGB5sAGfh4jwID8/s1600/make-swap.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="172" data-original-width="1000" height="55" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuWpgYVFLNbaKn4CEmDtQVV6IBr9KrvoayPPr0pqq5G1LEuGIhm6GjSGvTsZSmi4hObdJCIvZkFTuq2nbvmkWUikS6DE11UMx-YddKFJkH4Tzpv9brAN_89UkcZdCbuGB5sAGfh4jwID8/s320/make-swap.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Memformat file menjadi swap area</b></td></tr>
</tbody></table>
<br />
Terakhir, aktifkan swap dengan perintah <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo swapon /swapfile</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirSzCRIV7ookHcG2d31sMki1kEBgHVIoFCzZGpqI5OFh6ykpfiK6K8SB-nEgCga_W4dhXgPtzer4F5rMsainBozZL2DN-ncaxVzDO23Iip10k4t1XCnBmST1suIIZrqqGqdO0oAPmbwvs/s1600/switch-on-swap.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="53" data-original-width="393" height="43" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirSzCRIV7ookHcG2d31sMki1kEBgHVIoFCzZGpqI5OFh6ykpfiK6K8SB-nEgCga_W4dhXgPtzer4F5rMsainBozZL2DN-ncaxVzDO23Iip10k4t1XCnBmST1suIIZrqqGqdO0oAPmbwvs/s320/switch-on-swap.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Mengaktifkan Swap</b></td></tr>
</tbody></table>
<br />
Cek kembali dengan tool htop<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWM3DLQ9kStZq6m2nq0w2yB28oaF8de18R208IP3e202Vw3SIoQHE2foeGRemSQHJkLbfORQhPDRaRtqlqohd371pV6VenQJvRD20k97HY_0ydcmoIKs3uw67s1tgt60OqVSYVPcng-ec/s1600/htop-akhir.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="117" data-original-width="927" height="40" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWM3DLQ9kStZq6m2nq0w2yB28oaF8de18R208IP3e202Vw3SIoQHE2foeGRemSQHJkLbfORQhPDRaRtqlqohd371pV6VenQJvRD20k97HY_0ydcmoIKs3uw67s1tgt60OqVSYVPcng-ec/s320/htop-akhir.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Swap sudah aktif dan terdeteksi</b></td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
Ppastikan pada bagian Swp kapasitasnya sesuai dengan besaran yang telah di buat sebelumnya. pada gambar diatas terlihat swap file aktif sebesar 4GB atau 4096MB.<br />
<br />
<b>Performa Server</b><br />
Bagaimana performa servernya? Well, kalo dilihat dari htop, swap memory sangat membantu, hanya saja terlihat sangat "hardcore" karena swap 4GB hampir semua di gunakan. :v<br />
<br />
Layanan kafka ini digunakan untuk scraping salah satu platform ternama di Indonesia dan menggunakan nodejs.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfClxVXpqw4aaHmYt5U0SKb-ZYS_4MBKlGpFJpv_xvi1Qkbe1jVU5Fh6vH-1mXgsL0lCkf2V8_9RVig8AoHuauIk1YR_jSZFcJZDZFswaiBbwUGnwHfs_MVLakr1GT7AaMfaSTVbIyu78/s1600/performa-server-kafka.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="144" data-original-width="1045" height="44" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfClxVXpqw4aaHmYt5U0SKb-ZYS_4MBKlGpFJpv_xvi1Qkbe1jVU5Fh6vH-1mXgsL0lCkf2V8_9RVig8AoHuauIk1YR_jSZFcJZDZFswaiBbwUGnwHfs_MVLakr1GT7AaMfaSTVbIyu78/s320/performa-server-kafka.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Usage Resouce Server</b></td></tr>
</tbody></table>
Yaa.. karena ini cuma server riset dan development, developernya bilang asal bisa running, it's oke, ya sudahlah. Dari sini kita tahu bahwa swap memory sangat membantu performa server. Sehingga bagi anda yang memiliki server namun memerlukan memory untuk komputasi yang besar, kalo ada anggaran untuk upgrade Ram, bisa dicoba dengan menambah swap memory.<br />
<br />
Selain itu kita juga bisa simpulkan, kafka dan service-service yang mendukungnya, idealnya memerlukan ram minimal 4GB. Kita bisa menggunakan server dengan kapasitas ram 2GB. hanya saja perlu di tambah swap memory agar service dapat berjalan.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Auto Start Swap</b></div>
<div style="text-align: justify;">
Swap memory akan lebih meningkatkan performa jika menyala dari komputer dinyalakan. Biasanya jika kita membuat swap memory dengan cara mempartisi storage saat menginstall sistem operasi, swap memory tersebut akan otomatis menyala saat komputer menyala. Namun karena kita membuat swap memory setelah proses install sistem operasi, maka kita perlu menambahkan swap memory yang kita buat agar menyala saat komputer pertama kali menyala.<br />
<br />
Untuk itu kita perlu menambah swap memory yang kita buat kedalam file fstab. Silahkan gunakan text editor favorit anda, bisa vim/vi, nano ato pico, kali ini saya menggunakan nano.</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo nano /etc/fstab</span></pre>
</div>
<div style="text-align: justify;">
Kemudian tambahkan line berikut (bisa dimanapun, namun sebaiknya tepat dibawah file system lain, misalnya <span style="font-family: "courier new" , "courier" , monospace;">/boot</span>)</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;"><b>/swapfile</b> swap swap defaults 0 0</span></pre>
</div>
<div style="text-align: justify;">
Bagian <span style="font-family: "courier new" , "courier" , monospace;">/swapfile</span> disesuaikan dengan full path swapfile yang dibuat</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaL33Ua4Bm4faORhrmEGdGjFiib9WaFl53Y39iIeFpYB3sXA_8L_RfMnr97gJ059emQ83EAQahkwQMl9fN6s99NBmqZLGVX8jgnq9bvdDNpSieyFyAMuRq07bN2i6uQ9B1WVe5-OdxkfU/s1600/add-to-fstab.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="40" data-original-width="421" height="30" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaL33Ua4Bm4faORhrmEGdGjFiib9WaFl53Y39iIeFpYB3sXA_8L_RfMnr97gJ059emQ83EAQahkwQMl9fN6s99NBmqZLGVX8jgnq9bvdDNpSieyFyAMuRq07bN2i6uQ9B1WVe5-OdxkfU/s320/add-to-fstab.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Menambah ke command ke fstab</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Untuk lebih memudahkan, saya sudah menulis <a href="https://gist.github.com/kahidna/141425fe3331593354928569cb8e62ff" target="_blank">simple script</a> untuk membuat, mengaktifkan dan menambahkan swapfile ke fstab. Sehingga kita tidak perlu run command diatas satu persatu. Cukup mengkonfigurasi path swapfile dan besar kapasitas swap saja.</div>
<div style="text-align: justify;">
<br />
<b>Mind Blowing Part</b></div>
<div style="text-align: justify;">
Ternyata swap memory bisa dikonsolidasi. Maksudnya adalah, kita bisa menambahkan kapasitas Swap memory dengan kapasitas tertentu tanpa harus menonaktifkan swap memory yang sedang berjalan.<br />
<br />
Misalnya server sudah memiliki partisi swap 1GB, kita bisa menambah Swap memory tersebut dengan membuat Swap file (misalnya 1GB), mengaktifkan Swap tersebut tanpa harus menghentikan Swap memory yang sedang aktif. Dan hal ini bisa langsung live terdeteksi oleh htop. Berikut adalah screenshot salah satu server yang saya coba tambahkan swap memory nya.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdZClz7p6zxYjkdcLgzhpNN2jdaGx973UPO4Nym6QPsID9mHlRJd2EjE0THr0i9ou87M9NSgbDZvdMhaN6kjpjVtZ7ronlpslda6gmYQu_G5Bc1M_bhQZrz1aqWYIQDuGuQXbXwStJ6II/s1600/sebelum.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="126" data-original-width="998" height="40" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdZClz7p6zxYjkdcLgzhpNN2jdaGx973UPO4Nym6QPsID9mHlRJd2EjE0THr0i9ou87M9NSgbDZvdMhaN6kjpjVtZ7ronlpslda6gmYQu_G5Bc1M_bhQZrz1aqWYIQDuGuQXbXwStJ6II/s320/sebelum.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Sebelum Swap file ditambahkan</b></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLEd6iTHHWA7Ty981Rxt2_mYNL1mj1ENHH-0ALZvIGjrkNy8q5TK0VJHe-lQ1oFeGSvN20hweBpfn04AIcyy0g_qR0DtbOW8YkbjAeS3JLJLWDbSq7fcNSgIL-BHxD0NumYST_u8Hyy4Y/s1600/sesudah.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="139" data-original-width="910" height="48" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLEd6iTHHWA7Ty981Rxt2_mYNL1mj1ENHH-0ALZvIGjrkNy8q5TK0VJHe-lQ1oFeGSvN20hweBpfn04AIcyy0g_qR0DtbOW8YkbjAeS3JLJLWDbSq7fcNSgIL-BHxD0NumYST_u8Hyy4Y/s320/sesudah.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Sesudah Swap file ditambahkan</b></td></tr>
</tbody></table>
Biasa aja? ya Mungkin sebagian orang ada yang sudah tau dan sebagian ada yang belum. Untuk saya pribadi yang sudah 5 tahun lebih memakai Linux, ini adalah hal baru dan menurut saya menarik. :D<br />
<br />
Demikian catatan saya kali ini. Apabila ada pertanyaan silahkan kontak saya via telegram (lihat di profile sebelah kanan atas), atau tinggalkan komentar kolom komentar dibawah. Semoga bermanfaat. :)</div>
<br />
<br />
Referensi :<br />
<ul>
<li><a href="https://linuxize.com/post/create-a-linux-swap-file/">https://linuxize.com/post/create-a-linux-swap-file/</a> </li>
<li><a href="https://gist.github.com/kahidna/141425fe3331593354928569cb8e62ff">https://gist.github.com/kahidna/141425fe3331593354928569cb8e62ff</a></li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-72627891563118180142019-11-20T17:00:00.001+07:002020-02-03T05:49:16.374+07:00Ndeploy Project Ning Server<br />
<span style="background-color: white; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">Original <a href="https://jateng.tribunnews.com/2019/09/18/lirik-lagu-kartonyono-medot-janji-denny-caknan" target="_blank">song</a> </span><span style="background-color: white; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">By : Denny Caknan</span><br />
<span style="background-color: white; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">Parodied By : </span><a href="https://plus.google.com/u/0/+kahidna" style="background-color: white; color: black; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;" target="_blank">Alfin Hidayat</a><br />
<span style="font-size: small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">kok mumetke nemen..<br />babar blas ra ono tutorial..<br />jelas ku butuh readme mu..<br />kubutuh wiki mu..<br />kok mumetke men..</span></span></span><br />
<a name='more'></a><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-size: small;"><br />error server iki..<br />tak fix no karo tak nggo latihan..<br />sok nek wes oleh bug's fixmu..<br />wes dadi pro aku..<br />mergo wes tau..<br />wes ngoprek jeru...<br /><br />mbiyen aku jek betah..<br />suwe-suwe wegah..<br />nginstali dependensimu sangsoyo bubrah..<br /><br />mibyen wes tak wanti wanti...<br />di dokumentasi..<br />tapi kenyataannya lali..<br /><br />ndeploy project ning server nge-clone repomu..<br />ambruk serverku nuruti request appmu..<br />sak kabehane wes tak instali..<br />tapi malah ngerrori..<br /><br />opreko malah tak duduhi carane..<br />ngeclone iki, compile kae, di run wae...<br />ra sah nyawang warning console sing maraki ati..<br />tambah mumeti..</span></span><br />
<br />
<span style="font-size: x-small;"></span>Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-57938965312669257982019-10-31T21:58:00.002+07:002019-12-10T11:30:22.073+07:00Serba Serbi SSH ServiceEnvironment<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">Operating System : Lubuntu 18.04.3 LTS
SSH Version : OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017</span></pre>
membuat ssh key<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ssh-keygent -t rsa</span></pre>
jika tidak ingin ribet mengcustom, tekan enter hingga proses selesai.<br />
<br />
<a name='more'></a><br />
copy konten file id_rsa.pub ke authorized_keys dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">cat /home/[username]/.ssh/id_rsa.pub > authorized_keys</span></pre>
<br />
ubah permission menjadi -r-------- dengan perintah <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">chmod 400 /home/[username]/.ssh/authorized_keys</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0C8G5BgzvuWAAVVKKi8NTJjGKfgmmiIS_ps48olUhAERupPKqNrfFrzesux0i4S-fAKAioHTFPoC4NHtd8VB_Q3MZlsnTeCb0puNSo8MkeTHr5j6UW1fA04DMFsaXc2Cqyv1NGA3xc0/s1600/authorized_keys_permission.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="137" data-original-width="420" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij0C8G5BgzvuWAAVVKKi8NTJjGKfgmmiIS_ps48olUhAERupPKqNrfFrzesux0i4S-fAKAioHTFPoC4NHtd8VB_Q3MZlsnTeCb0puNSo8MkeTHr5j6UW1fA04DMFsaXc2Cqyv1NGA3xc0/s320/authorized_keys_permission.jpeg" width="320" /></a></div>
<br />
login ssh dengan ssh key<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">ssh -i /path/to/file/id_rsa [username]@[hostname_atau_ip]</pre>
<br />
<b>Debug Proses Login SSH</b><br />
Mengaktifkan debug mode ketika melakukan ssh ke host<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">ssh -v -i /path/to/file/id_rsa [username]@[hostname_atau_ip]</pre>
Untuk menampilkan lebih detil, bisa menambahkan parameter v.<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">ssh -vv -i /path/to/file/id_rsa [username]@[hostname_atau_ip]</pre>
atau<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">ssh -vvv -i /path/to/file/id_rsa [username]@[hostname_atau_ip]</pre>
<br />
sumber :<br />
https://www.ssh.com/ssh/key/Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-75272029836686985832019-10-25T21:15:00.001+07:002019-12-13T17:14:17.586+07:00A Remarkable Labs<div style="text-align: justify;">
My name is Alfin Hidayat, but you can call me Alfin. Who am I? Nothing, just a final-year student who is still working on his thesis and being an internship as a laboratory assistant in a campus in Semarang city from October 2014. That before I joining this company. Yes, a company named <a href="https://ujuizi.com/" target="_blank">Ujuizi Laboratories</a>. <br />
<a name='more'></a></div>
<div style="text-align: justify;">
I was very happy when one of my seniors in the <a href="http://doscom.org/" target="_blank">Opensource Community</a> on my campus recommended me as a new laboratory staff because he focused on his new startup. “Armed” with basic skills in maintaining computers, I tried an internship at university laboratory Dian Nuswantoro a.k.a <a href="http://dinus.ac.id/" target="_blank">UDINUS</a> Semarang city. I do not have a basic network which is one of the skills possessed by a laboratory assistant. This is because the UDINUS laboratory is an integrated laboratory in which each lab is connected to each other. With great effort, I managed to maintain and ensure that my laboratory computer could be used by lecturers or anyone who wanted to use it.<br />
<br />
<b>The Beginning</b><br />
Until one day in July 2016, one of my seniors offered me a job. He only said that it's just required Linux skill, enthusiasm in learning and can speak in English. Well, indeed I am a daily Linux user and I'm quite interested in things related to open source. But English? It seems to be a lack of my qualifications. He then gave me Mr. Budi Handoko's contact, one of the lecturers who became the liaison between the representation of Ujuizi Laboratories and UDINUS.<br />
<br />
Bismillah, I ventured this opportunity, and on Friday, July 29, 2019, I met with <a href="https://www.linkedin.com/in/firman-wahyudi-2986b03b/" target="_blank">Mr. Firman</a> and <a href="https://www.linkedin.com/in/budi-handoko-9a699917/" target="_blank">Mr. Budi Handoko</a> at DINUSTEK, a building that still in the same place at UDINUS. Mr. Firman asked questions about technical matters and experience. I was a bit nervous at the time, and I do not really remember the questions he asks. And surprise, he agreed to guide or train me. Till 4 August 2016 was the first day I started working at Ujuizi Laboratories.<br />
<br />
As usual, I need to adapt to new workplaces, many things must be learned, and of course need to be noted or documented as good as possible. And I admit, this working environment is nice and homie, good to initiating a work experience. And what surprised me, the world of development, especially in Information and Technology is often not as simple as what was taught on the campus.<br />
<br />
<b>The Team and New Vision</b><br />
At the office, I met some new friends. They are Firdaus. Wahyu and Dedy. <a href="https://www.linkedin.com/in/firdaus-kurniawan-zulqornain-830725182/" target="_blank">Firdaus Kurniawan Zulqornain</a> and <a href="https://www.linkedin.com/in/wahyu-anggara-raya-0b0603157/" target="_blank">Wahyu Anggara Raya</a> are Android developers. Both of them had studied at the same campus where I studied. And <a href="https://www.linkedin.com/in/dedykuncoro/" target="_blank">Dedy Kuncoro</a> works as a tester and comes from a different campus. They are good coworkers. I think this is a good environment to start my experience as a system administrator. There are several coworkers from the first time I joined up this company until I wrote this article, they are Guilherme Chagas came from Portugal, <a href="https://www.linkedin.com/in/sam-ubels-224a36103/" target="_blank">Sam Ubels</a> and <a href="https://www.linkedin.com/in/albertjw-van-mil/" target="_blank">Albert van Mill</a> from the Netherlands.<br />
<br />
I began to try to communicate with my coworkers what was being done, what had been done and what would be done next. I did it by verbally, instant messaging or through issues documented in the git repository. For the record, its good thing to learn git and have a git repository like <a href="https://github.com/" target="_blank">Github</a>, <a href="https://bitbucket.org/" target="_blank">Bitbucket</a> or <a href="https://about.gitlab.com/" target="_blank">Gitlab</a>. You will really need it if you want to be an engineer when you collaborate in teams. Not only when working in the same location but also when collaborating remotely.<br />
<br />
And the most interesting thing is, this is the first time I can interact a lot with people abroad. And of course this is a thrilling, exciting (or whatever you called it) moment for me because as I mentioned earlier, my English is terrible. Thank you to Mr. Firman, who was very, very very patient and helped me in learning to understand conversations during meetings or telephone sessions with team members from other countries. And of course a big thank you to Mr. <a href="https://www.linkedin.com/in/valentijn-venus/" target="_blank">Valentijn Venus</a>, he is the CEO of Ujuizi Laboratories. He was always able to understand what I was trying to convey. He also always gives the opportunity to learn more using the resources he has. And I admit, there are a lot of things that can be learned and in my opinion, it's very rare in Indonesia to discuss or do what we do at Ujuizi Laboratories.<br />
<br />
From here my vision changes, I am more convinced that there is no need to fear for something new and big. Because all you need are more effort and enjoy the process to get better results.<br />
<br />
<b>New Tech, Knowledge, Experience, Friends</b><br />
Don't ask how many things I gained while joining this “Laboratories”. Many things!! Bunch of techs and knowledge you can get here. Starting from the technology that is being used by many companies. For a start, cloud platforms such as Amazon web service, containerization for example docker, Multipath TCP kernel, map service, semantics technology and many more which may be very rarely discussed in my country, Indonesia. And again, I admit those knowledge and technology are very cool.<br />
<br />
Not only that, <a href="https://ramani.ujuizi.com/" target="_blank">Ramani</a>, a subsidiary of Ujuizi Laboratories, is a company trusted by the <a href="http://www.esa.int/" target="_blank">European Space Agency (ESA)</a> to be a support team when ESA <a href="https://www.app-camp.eu/" target="_blank">Space Appcamp</a> is held, an event held regularly by ESA to attract developers to develop applications that utilize satellite data owned by ESA. The event held approximately a week and was followed by developers who live in Europe. Of course this is not just an ordinary event. Many applications, ideas will emerge from this event. And this is where the very valuable experiences we can get. And of course new friends from developers who participated in this event.<br />
<br />
<b>The Bounding</b><br />
While working in this company, I felt a close kinship. I still remember when I pursued my graduation at the beginning of 2017. Yes, at that time I had not graduated from college and tried hard to finish my thesis. My lecturer wants more than just what I've done. This makes me a little difficult to fulfill his wishes. But on the other hand, I do not want to delay any longer my graduation, so I can focus on working. At this time, Mr. Valentijn and Mr. Firman provided support so that I could finish my script immediately. Once again, thank you, sir, thank you, Pak Tyn. Your support is "Joss !!" (meaning cool, awesome, remarkable in Bahasa). <br />
<br />
When I was sick he also gave me a time to rest, he also asked how I was going at that moment. Or when I was going to get married, he gave me a week off and a wedding gift. That is very very kind of you, sir. Again, thank you very much.<br />
<br />
Same with the coworker, when I haven’t arrived at the office, they will ask asked where I was and am I fine or no. This comfortable environment makes the bond between teams became strong and solid. And that is Cool.<br />
<br />
<b>Opportunity to Go to Europe and Work Directly with The ESA Team</b><br />
That's true. By working at Ujuizi Laboratories, it means having the opportunity to go to Europe and directly involved with the ESA team during the Appcamp. That's very cool of course. And this opportunity does not always exist in companies in Indonesia, especially in the city of Semarang. Lots of experience and knowledge that we can get of course when working directly. Keep in mind, Prepare your mental and English, you will really need it later. And of course, you have to take care of your own visa and passport by yourself. : P<br />
<br />
<b>A Words From me</b><br />
That's the story of my journey. From a Nobody with No knowledge became an experienced system administrator. Of course, I didn't go through everything easily, at the beginning of the year, I often had to go home late or even sleep at the office on weekends. Allocating time to study more after work from the office is also very necessary. But I went through it with pleasure, and once again thanks to Mr. Firman who allowed me to stay at his house. Thank you also for Mr. Valentijn, for establishing Ujuizi Laboratories. The best laboratory for learning no matter how novice you are.</div>
<div style="text-align: justify;">
<br />
Finally, I hope Ujuizi Laboratories is getting better and better. :)</div>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com3tag:blogger.com,1999:blog-2514339299915466722.post-38656689618073294642019-10-06T23:28:00.003+07:002019-10-07T00:18:34.127+07:00Deploy Official Apache Webserver Docker Image <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStvi_3ydKC861cUliogfmxVw6u6Bypog3HxvuvtdtoXPQuaHVAdo4UMdZU-nlqKyOqbd9LtmuZBXaPtHJAPFV-xWJ78CmvWp0tNN60a9EiGuZ7bzLnxuS253zHNTQZfp-9bAVXqRAkWE/s1600/httpd-official.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="123" data-original-width="512" height="47" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgStvi_3ydKC861cUliogfmxVw6u6Bypog3HxvuvtdtoXPQuaHVAdo4UMdZU-nlqKyOqbd9LtmuZBXaPtHJAPFV-xWJ78CmvWp0tNN60a9EiGuZ7bzLnxuS253zHNTQZfp-9bAVXqRAkWE/s200/httpd-official.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Official httpd Logo</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Sebelum tidur, mari kita sharing. Yang ringan-ringan sajalah. :D</div>
<div style="text-align: justify;">
Jadi pernah saya disuruh deploy official apache webserver pake official docker image. </div>
<br />
<a name='more'></a>Untuk mendeploy apache webserver atau selanjutnya kita sebut <i>httpd</i> dengan volume pada konfigurasi dan web resource nya, perintah yang digunakan kurang lebih : <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">docker run -d -p 80:80 -v $PWD/conf/:/usr/local/apache2/conf/ -v $PWD/htdocs/:/usr/local/apache2/htdocs/ httpd</pre>
<div style="text-align: justify;">
Namun setelah saya eksekusi perintah diatas, ternyata container justru berhenti/exited. logs yang ditunjukkan kurang lebih berbunyi :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">httpd: Could not open configuration file /usr/local/apache2/conf/httpd.conf: No such file or directory</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj962UpXXw-O6BSHsBHIDRlmcEciFlq1xx5KvcptKoBuJsls8DNTyE1S7nf4-K3qwsvBOEUsQ0bvyG4Z0G_EtaT2UuVKXJHWVgJdmRiXO2P1kZl7gvpeRrr-w9i4vqVh6b9F1An_AhUDFA/s1600/logs-deployment.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="39" data-original-width="649" height="19" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj962UpXXw-O6BSHsBHIDRlmcEciFlq1xx5KvcptKoBuJsls8DNTyE1S7nf4-K3qwsvBOEUsQ0bvyG4Z0G_EtaT2UuVKXJHWVgJdmRiXO2P1kZl7gvpeRrr-w9i4vqVh6b9F1An_AhUDFA/s320/logs-deployment.png" width="320" /></a></div>
<br />
<br />
Dan saat saya cek ke direktori yang digunakan sebagai volume, memang file konfigurasinya kosong.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizdUhGMDQSg09mO-fSOF_pRTG6Zjmd69jcptXkYtAuDxdsGgAzhkT5AoNUnO39eSPqSvntPsnCXK8p1RsIhKNwMMrqQ3ahFB6xIQK5_Zh02smYzWxjMNTnZHmRviD8suCD7bApjpJrvGM/s1600/failed-to-deploy-httpd.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="228" data-original-width="849" height="85" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizdUhGMDQSg09mO-fSOF_pRTG6Zjmd69jcptXkYtAuDxdsGgAzhkT5AoNUnO39eSPqSvntPsnCXK8p1RsIhKNwMMrqQ3ahFB6xIQK5_Zh02smYzWxjMNTnZHmRviD8suCD7bApjpJrvGM/s320/failed-to-deploy-httpd.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Folder volume conf kosong</b></td></tr>
</tbody></table>
<br />
<br />
<div style="text-align: justify;">
Sehingga kita perlu terlebih dahulu meng-copy konfigurasi untuk apache webserver dengan perintah :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run --rm -v $PWD/conf:/volume/conf httpd cp -rvf /usr/local/apache2/conf /volume/</span></pre>
Kemudian deploy ulang container dengan perintah<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;">docker run -d -p 80:80 -v $PWD/conf/:/usr/local/apache2/conf/ -v $PWD/htdocs/:/usr/local/apache2/htdocs/ httpd</pre>
<br />
<div style="text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIuBKbYEjRcIDQLkzGlYCM-UcG3HuWNCDccZhR8WQzcwR0wfkcmmxeTM9hFe-WpKr0xzVVTU5GwPKMQmGM9Tj8jPD1ABXo8NDOXTIFOFM7UXkW8EX7ohgB5mpgA70tvGFSL6y7Wgmyqs/s1600/success-to-deploy-httpd.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="527" data-original-width="845" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIuBKbYEjRcIDQLkzGlYCM-UcG3HuWNCDccZhR8WQzcwR0wfkcmmxeTM9hFe-WpKr0xzVVTU5GwPKMQmGM9Tj8jPD1ABXo8NDOXTIFOFM7UXkW8EX7ohgB5mpgA70tvGFSL6y7Wgmyqs/s320/success-to-deploy-httpd.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Proses copy file konfigurasi hingga container up</b></td></tr>
</tbody></table>
<br /></div>
Setelah container up, kita bisa cek via browser, apakah httpd sudah up dan bisa di akses. Jika berhasil, maka kurang lebih hasilnya akan seperti berikut :<br />
<div style="text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguHoGxtc_7ML61EsZrWIPFeBcipE-Xp3nDTdMfg_O4qchplJwqC68kCQTd_L_gE7HMz-nfawieXpsGM4l83X8FoScIihGlo9E6UrejL-l_zoNAvy-SiiARaXP_KPdy9XQMzRWMUifeLtE/s1600/access-the-web.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="147" data-original-width="562" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguHoGxtc_7ML61EsZrWIPFeBcipE-Xp3nDTdMfg_O4qchplJwqC68kCQTd_L_gE7HMz-nfawieXpsGM4l83X8FoScIihGlo9E6UrejL-l_zoNAvy-SiiARaXP_KPdy9XQMzRWMUifeLtE/s320/access-the-web.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Akses httpd dari Browser</b></td></tr>
</tbody></table>
</div>
Semoga bermanfaat<br />
<br />
referensi:<br />
<ul>
<li><a href="https://hub.docker.com/_/httpd">https://hub.docker.com/_/httpd</a></li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-49594117706227783532019-09-03T13:16:00.003+07:002019-09-03T13:58:57.789+07:00Mengganti Hostname Linux<div style="text-align: justify;">
Kali ini saya cuma mau share barang sepele, tapi mungkin bisa jadi menarik bagi pemula dalam menggunakan GNU/Linux. Kita akan mengganti hostname atau dalam <i>Windows</i> disebut <i>Computer Name</i>. Computer name atau hostname setahu saya, biasanya digunakan untuk membedakan komputer jika kita bekerja dengan beberapa komputer sekaligus. Atau saat kita terhubung ke jaringan, Computer Name inilah yang akan muncul di router atau saat seseorang melakukan sniffing kedalam jaringan yang terhubung seperti wifi atau local area network di suatu tempat.</div>
<a name='more'></a><br />
<div style="text-align: justify;">
Kalo di Linux, hostname akan muncul pada saat kita membuka terminal atau login ke komputer menggunakan ssh. Dibawah ini adalah contoh hostname laptop yang saya gunakan. Disitu tertera <span style="font-size: small;"><span style="font-family: "courier new" , "courier" , monospace;">alfin@Alfin-AO756</span></span>. <i>alfin</i> adalah username yang saya gunakan, dan <i>Alfin-AO756</i> adalah hostname laptop saya Nah, saya ingin ganti hostname nya jadi <i>AO765</i> saja.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOHT6RYR2xGrfjw4AplwjZdEqOOzJBwLJn5einteVhbd33F6cF5pAkviI8xidTcDrWciTRq3OIyOSCvwbRiUk5j7Lms8Xu3Io1bP6lu2FlNVLi1G9DhyphenhyphenJSTJAAafK5TkDHBgYBV_IosR4/s1600/Screenshot+from+2019-08-27+17-21-32.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="70" data-original-width="357" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOHT6RYR2xGrfjw4AplwjZdEqOOzJBwLJn5einteVhbd33F6cF5pAkviI8xidTcDrWciTRq3OIyOSCvwbRiUk5j7Lms8Xu3Io1bP6lu2FlNVLi1G9DhyphenhyphenJSTJAAafK5TkDHBgYBV_IosR4/s320/Screenshot+from+2019-08-27+17-21-32.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Contoh hostname</b></td></tr>
</tbody></table>
Seperti biasa, first thing first. Environment yang saya gunakan saat membuat catatan ini:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">OS : Lubuntu Desktop 19.04
Nano : GNU nano, version 2.9.3</span></pre>
<br />
<div style="text-align: justify;">
Pertama kita edit file <span style="font-family: "courier new" , "courier" , monospace;">/etc/hostname</span>. Bisa menggunakan teks editor berbasis GUI atau CLI. Saya menggunakan teks editor nano, bagi yang ingin menggunakan editor lain tinggal ganti nano dengan nama teks editor yang digunakan.</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo nano /etc/hostname</span></pre>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Du1JA-FM_5tQ4suvXEBCuB_2k9uQw4LpUz7haIAfBjGiOM8lVxz7ADZOE8pk5AwRGceqhuf9G6Yd6dEPaoOikIYOUJuq6upqdkhGPXLVOKUXoVx7mHC7F7_JZg6rVooLbGNHXWsd8iU/s1600/2019-08-21-051737_1366x768_scrot.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="768" data-original-width="1366" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Du1JA-FM_5tQ4suvXEBCuB_2k9uQw4LpUz7haIAfBjGiOM8lVxz7ADZOE8pk5AwRGceqhuf9G6Yd6dEPaoOikIYOUJuq6upqdkhGPXLVOKUXoVx7mHC7F7_JZg6rVooLbGNHXWsd8iU/s320/2019-08-21-051737_1366x768_scrot.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Isi file hostname</b></td></tr>
</tbody></table>
Jika sudah di edit, simpan. Agar saat kita run perintah <span style="font-family: "courier new" , "courier" , monospace;">sudo</span> tidak terjadi masalah, maka kita edit juga file <span style="font-family: "courier new" , "courier" , monospace;">/etc/hosts,</span>ubah juga hostname yang ada pada file tersebut <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo nano /etc/hosts</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixhPuLAJ2aYN8aAyO4nhXl7OVw-EgZ2YJk8DoZHMASdzleVMEatoSYRF2N60CAEarJWSGvGfygAHmnwSF4h7D-wbVAuDhUOY2eYgD_7VwsG19ZXmpl9FXohKApjEGmnGH3iHUWo8J6fKw/s1600/2019-08-21-051800_1366x768_scrot.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="768" data-original-width="1366" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixhPuLAJ2aYN8aAyO4nhXl7OVw-EgZ2YJk8DoZHMASdzleVMEatoSYRF2N60CAEarJWSGvGfygAHmnwSF4h7D-wbVAuDhUOY2eYgD_7VwsG19ZXmpl9FXohKApjEGmnGH3iHUWo8J6fKw/s320/2019-08-21-051800_1366x768_scrot.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>hosts file</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Kemudian logoff/logout atau bisa juga restart PC/Server. Kemudian login kembali.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqmWJyfo2V5DWMsYLwvzwCSCzvswZXhDKouuw0DO88uRrnyjNaPIMxBU4L1gTHmho8sqai_p1pwLhgMwtLUwb7U6B9AU5k-Ci-c7leROHywLpDcypU8Ye7Xqdw4VvWmWur5Q-V_-plWdM/s1600/2019-08-21-051917_1366x768_scrot.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="768" data-original-width="1366" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqmWJyfo2V5DWMsYLwvzwCSCzvswZXhDKouuw0DO88uRrnyjNaPIMxBU4L1gTHmho8sqai_p1pwLhgMwtLUwb7U6B9AU5k-Ci-c7leROHywLpDcypU8Ye7Xqdw4VvWmWur5Q-V_-plWdM/s320/2019-08-21-051917_1366x768_scrot.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Hostname sudah berubah</b></td></tr>
</tbody></table>
<br />
Semoga bermanfaat. :)<br />
<br />Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-22240083550382002712019-09-02T19:30:00.000+07:002019-09-03T14:50:26.365+07:00Monitoring Linux Dengan Grafana, InfluxDB, dan Netdata<div style="text-align: justify;">
Monitoring menjadi kebutuhan utama bagi sys admin untuk memantau kondisi "ternak"nya apakah berada pada kondisi yang baik atau tidak. Selain itu, monitoring juga bisa membantu sysadmin tidur lebih tenang, karena dengan monitoring pengambilan tindakan atau perencanaan menjadi lebih terarah dan tersusun dengan rapi (menurut saya sih itu), yang mana artinya sysadmin dapat tidur dengan (lebih) lelap karena perencanaan dan tindakan sudah tersedia. hehehe . . .</div>
<div style="text-align: justify;">
</div>
<a name='more'></a><br />
<div style="text-align: justify;">
Karenanya, kali ini saya ingin berbagi catatan bagaimana memonitoring Linux dengan beberapa tool populer seperti <a href="https://www.netdata.cloud/" target="_blank">Netdata</a>, <a href="https://www.influxdata.com/" target="_blank">InfluxDB</a> dan <a href="https://grafana.com/" target="_blank">Grafana</a>. Tentu saja monitoring dengan tool-tool ini tidak terbatas di Linux atau server saja, bisa juga untuk monitoring PC laptop atau desktop dengan sistem operasi yang berbeda karena tool yang akan kita gunakan adalah tool yang crossplatform. </div>
<br />
Seperti biasa, first thing first. Environment yang saya gunakan kali ini adalah sebagai berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">OS : Lubuntu Desktop 19.04
Docker : Docker version 19.03.1, build 74b1e89
Netdata : netdata v1.16.1-146-g2f5e36ef
InfluxDB : version 1.7.7
Grafana : </span><span style="font-family: "courier new" , "courier" , monospace;">Grafana v6.3.5 </span></pre>
<div style="text-align: justify;">
Semua catatan yang saya buat di deploy menggunakan docker, karenanya docker service wajib di install terlebih dahulu agar catatan ini bekerja dengan baik. :P</div>
<br />
Baiklah, mari kita mulai prosesi ngopreknya. Buat sebuah folder untuk volume service yang akan kita install, (tidak harus sama, tapi pastikan mencukupi untuk kebutuhan ngoprek kali ini)<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">mkdir -vp /home/$USER/container/volume</span></pre>
masuk ke dalam direktori tersebut<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">cd /home/$USER/container/volume</span></pre>
Kalo sudah, kita akan mulai deploy tiap service. <br />
<br />
<b>Deploy Netdata</b><br />
<div style="text-align: justify;">
Netdata adalah layanan yang berperan sebagai "agen" untuk mengumpulkan berbagai informasi dimana Netdata terinstall. Untuk lebih detail tentang fitur atau informasi apa saja yang di collect oleh netdata, bisa mampir ke situs resmi milik <a href="https://www.netdata.cloud/" target="_blank">Netdata</a>. Karena kita akan mendeploy menggunakan docker, maka kita tidak perlu menginstall netdata, cukup buat direktori untuk Netdata </div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">mkdir -vp netdata</span></pre>
Kemudian deploy container Netdata dengan perintah:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -d --name netdata \
--hostname netdata \
-p 19999:19999 \
-v $PWD/etc/netdata/netdata.conf:/etc/netdata/netdata.conf \
-v /proc:/host/proc:ro \
-v /sys:/host/sys:ro \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
--cap-add SYS_PTRACE \
--security-opt apparmor=unconfined \
netdata/netdata</span></pre>
Buat sebuah configurasi file dengan nama netdata.conf, kemudian isi file konfigurasi tersebut seperti berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">[backend]
enabled = yes
type = opentsdb
destination = <b>[ip_atau_domain]</b>:4242
</span></pre>
Copy file tersebut ke <span style="font-family: "courier new" , "courier" , monospace;">$PWD/etc/netdata/netdata.conf</span> , kemudian restart container Netdata dengan perintah:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker restart netdata</span></pre>
Jika sudah, maka Netdata sudah siap untuk mengcollect data dari komputer dimana dia terinstall.<br />
<br />
<b>Deploy InfluxDB</b><br />
<div style="text-align: justify;">
InfluxDB berperan sebagai database yang akan menampung "angka-angka" yang diperoleh dari Netdata. Dari InfluxDB inilah Grafana akan mengambil data atau informasi dimana Netdata, lalu akan Grafana akan menampilkan informasi tersebut melalui dashboard yang tersedia di grafana. Karena kita juga akan mendeploy InfluxDB dengan docker, maka yang perlu kita lakukan adalah membuat direktori untuk InfluxDB:</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">mkdir -vp /home/$USER/container/volume</span></pre>
Kemudian, kita generate config untuk InfluxDB dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run --rm influxdb influxd config > influxdb.conf</span></pre>
<div style="text-align: justify;">
File yang dihasilkan adalah influxdb.conf dan berikut adalah <b>sebagian</b> konten dari isi file <span style="font-family: "courier new" , "courier" , monospace;">influxdb.conf</span></div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjekUSJhMBu5cSKgJg6vzh063535LFbkEoYwf60YjDs1BZbf1hR49bFTbfoUpBTzTMQc5JxTNye5RYfa0Uq8T1-GbxOaMFazwL0EZci1asnlYqCA7I3jD_DVbVmz4etfnWZ0yygc2zVv_M/s1600/Screen+Shot+2019-09-02+at+6.01.49+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="460" data-original-width="1038" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjekUSJhMBu5cSKgJg6vzh063535LFbkEoYwf60YjDs1BZbf1hR49bFTbfoUpBTzTMQc5JxTNye5RYfa0Uq8T1-GbxOaMFazwL0EZci1asnlYqCA7I3jD_DVbVmz4etfnWZ0yygc2zVv_M/s320/Screen+Shot+2019-09-02+at+6.01.49+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>influxdb.conf</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Ada banyak pilihan "agen" yang bisa di integrasikan dengan InfluxDB. Karena kita menggunakan Netdata, maka pada bagian <b>opentsdb</b>, edit configurasi InfluxDB sesuai dengan contoh berikut :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">[[opentsdb]]
<b> enabled = true
bind-address = ":4242"
database = "opentsdb"</b>
retention-policy = ""
consistency-level = "one"
tls-enabled = false
certificate = "/etc/ssl/influxdb.pem"
batch-size = 1000
batch-pending = 5
batch-timeout = "1s"
log-point-errors = true</span><span style="font-family: "courier new" , "courier" , monospace;"></span></pre>
Jika sudah, deploy container InfluxDB dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -d \
-p </span><span style="font-family: "courier new" , "courier" , monospace;">4242:</span><span style="font-family: "courier new" , "courier" , monospace;">4242 \
-p 8086:8086 \
-p 8083:8083 \
--name influxdb \
--hostname influxdb \
-v $PWD/var/lib/influxdb:/var/lib/influxdb \
-v $PWD/etc/influxdb:/etc/influxdb \
influxdb</span></pre>
Setalah container berhasil running, copy configurasi yang dibuat tadi dengan perintah:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">cp influxdb.conf $PWD</span><span style="font-family: "courier new" , "courier" , monospace;">/var/lib/influxdb</span> </pre>
Seperti biasa, restart container InfluxDB dengan perintah:<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker restart influxdb</span></pre>
<div style="text-align: justify;">
Netdata seharusnya sudah mulai mengirim data ke influxdb, kita bisa cek dengan perintah berikut :</div>
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -it --rm influxdb influx -host <b>[ip_atau_domain]</b> -username '<b>[username]</b>' -password '<b>[password]</b>' </span></pre>
<i>(biasanya by default, tidak menggunakan username atau password)</i><br />
<br />
Kemudian kita cek apakah ada database yang terbentuk dengan perintah <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">SHOW DATABASES</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPNqOHcKexV4mA9iaVYS5iXTOWvte-36b4XEuelSOurHGKwoAf85MzNqOZ0fYtZp7tKTj3meCjqaqcmCXJMBA_EGp08Y0kHBIpHRK7CPYh45QCn62L13H9krO0fVG6U4ceO7-pZZt7sQ/s1600/Screen+Shot+2019-09-02+at+6.26.58+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="181" data-original-width="1099" height="65" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkPNqOHcKexV4mA9iaVYS5iXTOWvte-36b4XEuelSOurHGKwoAf85MzNqOZ0fYtZp7tKTj3meCjqaqcmCXJMBA_EGp08Y0kHBIpHRK7CPYh45QCn62L13H9krO0fVG6U4ceO7-pZZt7sQ/s400/Screen+Shot+2019-09-02+at+6.26.58+PM.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Saat Terhubung dengan InfluxDB</b></td></tr>
</tbody></table>
Bisa kita lihat, database <span style="font-family: "courier new" , "courier" , monospace;">opentsdb</span> sudah terbentuk. Kita akan melihat isi dari database tersebut. perintahnya :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">USE opentsdb </span></pre>
Kemudian kita tampilkan daftar tabel dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">SHOW MEASUREMENTS LIMIT 10</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKbLZOWfxBLgyEG4p7bQT4VgbjkIuVm7khAiblvfk4_z9UsHyGxW7EgDAN70JQx8vmZOegUoJ8LQI9cMyBgd2w1xOy8yWVMah-UlHCh3QtdK2y8zSgMdKRn0_cifWLo-q6NmxdFrne0pA/s1600/Screen+Shot+2019-09-02+at+6.31.15+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="389" data-original-width="469" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKbLZOWfxBLgyEG4p7bQT4VgbjkIuVm7khAiblvfk4_z9UsHyGxW7EgDAN70JQx8vmZOegUoJ8LQI9cMyBgd2w1xOy8yWVMah-UlHCh3QtdK2y8zSgMdKRn0_cifWLo-q6NmxdFrne0pA/s320/Screen+Shot+2019-09-02+at+6.31.15+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Beberapa Measurement dari Netdata</b></td></tr>
</tbody></table>
<br />
Untuk melihat apakah sudah ada data yang masuk ke dalam tabel, kita bisa melkukan query pada tabel measurement yang ada, contoh, kita akan melihan isi dari measurement netdata.apps.cpu.VMs , kita bisa menggunakan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">SELECT * FROM "netdata.apps.cpu.VMs" LIMIT 10</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPEuIDrUUd59bJZB0QNWIaqO74z863SegWYy6l1pAZoAL2zAadFty_IJNiNyLmdyopT91mLBYYqO436rOGoTz9taeGKYdIXKoCWS14E5sN4QQCkEedlGWpN8G5nV6FEBZjp8euI3YGilw/s1600/Screen+Shot+2019-09-02+at+6.39.13+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="303" data-original-width="418" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPEuIDrUUd59bJZB0QNWIaqO74z863SegWYy6l1pAZoAL2zAadFty_IJNiNyLmdyopT91mLBYYqO436rOGoTz9taeGKYdIXKoCWS14E5sN4QQCkEedlGWpN8G5nV6FEBZjp8euI3YGilw/s320/Screen+Shot+2019-09-02+at+6.39.13+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Sample data yang di collect Netdata</b></td></tr>
</tbody></table>
<br />
Untuk keluar dari console InfluxDB, bisa digunakan perintah: <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">QUIT</span></pre>
Dengan ini, InfluxDB sudah siap digunakan. (Beberapa cheat sheet <a href="https://bukananakit.blogspot.com/2018/07/influxdb-cheat-sheet.html" target="_blank">InfluxDB</a> yang pernah saya buat)<br />
<br />
<b>Konfigurasi Grafana</b><br />
<div style="text-align: justify;">
Grafana is the leading open source project for visualizing metrics.
Supporting rich integration for every popular database like Graphite,
Prometheus and InfluxDB. Setidaknya itulah penjelasan yang kita temukan saat kita coba googling dengan keyword Grafana. </div>
<br />
Singkatnya, Grafana adalah dashboard yang bisa membantu untuk memvisualisasikan data yang ada pada Graphite,
Prometheus and InfluxDB. Langsung saja, untuk mendeploy Grafana kita gunakan perintah sebagai berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker run -d \
--name grafana \
--hostname grafana \
-p 3000:3000 \
grafana/grafana</span></pre>
<div style="text-align: justify;">
Login ke dashboard grafana yang bisa di akses dari browser dengan alamat url : <a href="http://[ip_atau_domain]:3000" target="_blank">http://[ip_atau_domain]:3000</a>, dan credential awal yang digunakan adalah username <b>admin</b> dengan password <b>admin.</b></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS5-gEcfcuncRczkItBsk_90f7PN7MVA4KjGZTd5wAFe0AMYAnlIKso27cca8lhZ4RrP07t3we6Ughijqxng_5Attu8pso8yBjH60cwWq7Qt7FBmPNTCpU6CNWGBlj2NGU6lMPjVg5T6g/s1600/Screen+Shot+2019-09-02+at+6.49.20+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1025" data-original-width="1380" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhS5-gEcfcuncRczkItBsk_90f7PN7MVA4KjGZTd5wAFe0AMYAnlIKso27cca8lhZ4RrP07t3we6Ughijqxng_5Attu8pso8yBjH60cwWq7Qt7FBmPNTCpU6CNWGBlj2NGU6lMPjVg5T6g/s320/Screen+Shot+2019-09-02+at+6.49.20+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Login page Grafana</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Saat login pertama kali, kita akan ditawarkan untuk mengganti password. Silahkan diganti jika ingin mengganti password login anda, tapi juga bisa di skip dengan klik "Skip"</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimDWdbncvTntoEHa5JMShyphenhyphenqW1vLXo76CpmdpkpY9yI0ICkQ5nZy8tVuiots6_RQK7bvQ0Zkt6cgle1JdAqKekpc325HQeOIg6wLMUh5ZuUcgZVS7RwSl121UU5qaYyQDu2Qv_rHstTUl0/s1600/Screen+Shot+2019-09-02+at+6.49.30+PM.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="530" data-original-width="951" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimDWdbncvTntoEHa5JMShyphenhyphenqW1vLXo76CpmdpkpY9yI0ICkQ5nZy8tVuiots6_RQK7bvQ0Zkt6cgle1JdAqKekpc325HQeOIg6wLMUh5ZuUcgZVS7RwSl121UU5qaYyQDu2Qv_rHstTUl0/s320/Screen+Shot+2019-09-02+at+6.49.30+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Ganti Password?</b></td></tr>
</tbody></table>
<br />
Di bagian awal kita akan dihadapkan dengan flow dari setup Grafana. Setelah install, maka kita perlu mendefinisikan, sumber data yang akan digunakan. Klik <span style="font-family: "courier new" , "courier" , monospace;">Add data source</span>, <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7iXCz9ZhTODFd4E5r2zXOqj3d4AKmqaOc9Fis_isiW8D4g_qzbJPhmFXpCDIztIAGWA4RxOoD83pM3Ig-YYO_tkUFa9sZDQGkllGcFAsilxlU0d744sqPR6kK4F2UQUsRnN6gDPpJlPg/s1600/Screen+Shot+2019-09-02+at+6.51.41+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="514" data-original-width="768" height="214" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7iXCz9ZhTODFd4E5r2zXOqj3d4AKmqaOc9Fis_isiW8D4g_qzbJPhmFXpCDIztIAGWA4RxOoD83pM3Ig-YYO_tkUFa9sZDQGkllGcFAsilxlU0d744sqPR6kK4F2UQUsRnN6gDPpJlPg/s320/Screen+Shot+2019-09-02+at+6.51.41+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Awal Setup Grafana</b></td></tr>
</tbody></table>
Kemudian pilih InfluxDB dari daftar data source<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCYA_mBvVTydR5gguMDdtY6WfwYKrzWMsSTsLU2rV6V9oEdpspZfzBD9OTTGnl-y8shJi3py6JpTLwzWtMRLC6Ex2C1eVTe_pEL2HUi5XyuOdBRohEE92t45X_jhW5G_rQniRzFzilKPU/s1600/Screen+Shot+2019-09-02+at+6.54.00+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="662" data-original-width="1049" height="201" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCYA_mBvVTydR5gguMDdtY6WfwYKrzWMsSTsLU2rV6V9oEdpspZfzBD9OTTGnl-y8shJi3py6JpTLwzWtMRLC6Ex2C1eVTe_pEL2HUi5XyuOdBRohEE92t45X_jhW5G_rQniRzFzilKPU/s320/Screen+Shot+2019-09-02+at+6.54.00+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Pilih InfluxDB</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Kemudian isi form yang yang diperlukan, seperti URL InfluxDB, Nama database opentsdb, username dan password InfluxDB jika ada. Kemudian klik "Save and Test".</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX2l_MFieDMybJcK6rmWR2e5GUhUnGWJTRvYpQNFg9sZ2TXlvfwKyLJeVGe-5bx6BRtwB2k9mKKMSKZVejA8hZC9qbJ8YR3kbKLtIsry2HYX5TxV33Ahgd-7RsjwHX678hDryTHU1SdXg/s1600/Screen+Shot+2019-09-02+at+7.11.28+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1019" data-original-width="1257" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX2l_MFieDMybJcK6rmWR2e5GUhUnGWJTRvYpQNFg9sZ2TXlvfwKyLJeVGe-5bx6BRtwB2k9mKKMSKZVejA8hZC9qbJ8YR3kbKLtIsry2HYX5TxV33Ahgd-7RsjwHX678hDryTHU1SdXg/s320/Screen+Shot+2019-09-02+at+7.11.28+PM.png" width="320" /></a></div>
<br />
<b><i>Sekedar catatan</i></b> <br />
jika anda mendapati error message <i>Network Error: Bad Gateway(502)</i> atau seperti yang terlihat pada gambar : <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq8q7EGGbI2BMTZKGZbhS3svuto8WaImRbSCQIoHo3lnIwzgACXWAXw1a18aX9MVWlbJB4lTaqGFdvE76AqG7jhlqEb0mGWaRlm0yo6-BU1mSl0nhLCHwSPfHpAgpeByYpXEy0USWBIT0/s1600/Screen+Shot+2019-09-02+at+7.22.40+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="188" data-original-width="856" height="70" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq8q7EGGbI2BMTZKGZbhS3svuto8WaImRbSCQIoHo3lnIwzgACXWAXw1a18aX9MVWlbJB4lTaqGFdvE76AqG7jhlqEb0mGWaRlm0yo6-BU1mSl0nhLCHwSPfHpAgpeByYpXEy0USWBIT0/s320/Screen+Shot+2019-09-02+at+7.22.40+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Error gan</b></td></tr>
</tbody></table>
Coba pastikan URL atau ip address yang di inputkan menggunakan <b>http:// </b>di depepannya<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQn9jPDAhuX95TudqojFCklbBMEUu7TurhNYgoa9kb5vnl52HyulfX1rSC9Y87Xt_H4Pjr-gN5Frjsyg6iaiDsUcA99f7d3L7L5WqY_Ru4KBYIhAL-fanCHDKJ03FeyYQV0YpQ8r6nRLM/s1600/photo_2019-09-02+19.20.34.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="147" data-original-width="479" height="98" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQn9jPDAhuX95TudqojFCklbBMEUu7TurhNYgoa9kb5vnl52HyulfX1rSC9Y87Xt_H4Pjr-gN5Frjsyg6iaiDsUcA99f7d3L7L5WqY_Ru4KBYIhAL-fanCHDKJ03FeyYQV0YpQ8r6nRLM/s320/photo_2019-09-02+19.20.34.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Coba pake http://</b></td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
Jika proses testing sudah berhasil, klik back dan kita akan melihat InfluxDB ada pada list source data yang akan digunakan Grafana</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Jc6zKFe5cRkJgbGFBpXp_0pO5uw5gvZA1abQxUHj9wgss_uwws7byfmb6dxK8fauHbkjlcBc7Qc1vh39nAD0gnoLlsoKFmL9-UEfLHMZxe9EOIrcePdFITss9IeF39t3T7EWLOq4z0k/s1600/Screen+Shot+2019-09-02+at+7.14.21+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="369" data-original-width="1363" height="86" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Jc6zKFe5cRkJgbGFBpXp_0pO5uw5gvZA1abQxUHj9wgss_uwws7byfmb6dxK8fauHbkjlcBc7Qc1vh39nAD0gnoLlsoKFmL9-UEfLHMZxe9EOIrcePdFITss9IeF39t3T7EWLOq4z0k/s320/Screen+Shot+2019-09-02+at+7.14.21+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>InfluxDB berhasil ditambahkan</b></td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
Dengan ini integrasi Netdata, InfluxDB dan Grafana sudah selesai. Selanjutnya adalah membuat visualisasi data yang sudah tersedia ke grafik-grafik yang ada pada Grafana</div>
<br />
<b>Menambahkan Dashboard</b><br />
<div style="text-align: justify;">
Pada catatan kali ini saya hanya mencoba import dashboard yang sudah ada. Kita bikin sendiri bisa si, tapi akan jadi lebih panjang dan lebar postingannya. Jadi kali ini kita akan mengimport dashboard yang sudah tersedia pada situs Grafana. Silahkan buka <i>Sub-Menu Dashboard</i> >> <i>Manage</i>. Kemudian kita pilih Import</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBR7DIazbeB2e2PhBpzZHkwYRmABraNyEjs6hDLEPoA5x303X7oMzZqfLPSGDYeu16MlYra7UosLXvpSIF6wW789gM-wegcleFfmW6HQXLnNsGK1Q-sSX1SrQPdDpH0uBZlg-zYfCt02U/s1600/Screen+Shot+2019-09-02+at+7.32.11+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="295" data-original-width="1215" height="77" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBR7DIazbeB2e2PhBpzZHkwYRmABraNyEjs6hDLEPoA5x303X7oMzZqfLPSGDYeu16MlYra7UosLXvpSIF6wW789gM-wegcleFfmW6HQXLnNsGK1Q-sSX1SrQPdDpH0uBZlg-zYfCt02U/s320/Screen+Shot+2019-09-02+at+7.32.11+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>New Dashboard</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Untuk meng-explore dashboard apa saja yang tersedia di repository grafana, bisa cek <a href="https://grafana.com/grafana/dashboards" target="_blank">dimari</a>. Kali ini saya akan mencoba menggunakan template dengan id <a href="https://grafana.com/grafana/dashboards/2701" target="_blank">2701</a> (barangkali mau mampir ke repo <a href="https://kmonsoor.github.io/netdata-influx-grafana/" target="_blank">creatornya</a>). Maka kita isi kolom id dengan angka 2701 kemudian klik "Load".</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsnSZIa5OG5L9VsTaRIQTQbK7RsM3NyTmXQbepwvMrzdVCkoQXykru1erDIkDtFHc2Y1M3BkqthiefWIOy-6oPosU6ekuE6gmqS7EuIhZ36OI9dYyeurmh4CIywvlJj-AWDcd4yw-1AdE/s1600/Screen+Shot+2019-09-02+at+7.46.31+PM.png" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="559" data-original-width="1269" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsnSZIa5OG5L9VsTaRIQTQbK7RsM3NyTmXQbepwvMrzdVCkoQXykru1erDIkDtFHc2Y1M3BkqthiefWIOy-6oPosU6ekuE6gmqS7EuIhZ36OI9dYyeurmh4CIywvlJj-AWDcd4yw-1AdE/s320/Screen+Shot+2019-09-02+at+7.46.31+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Isi Kolom ID Dashboard</b></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: justify;">
Maka akan muncul informasi tentang dasboard yang akan di install, Jangan lupa isi kolom "datasource-influxdb" dengan <i>InfluxDB</i> yang sudah kita config.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhua_h5RYbZD_iaGYN_r6B91sKUOwUh-yVyYXH-zW7gnPYGmEtXFk-UEajK4QIoT4RssN8O_B50OPhE8_Jd1_X3OuiAdHlonC6nQKoKQ9zVeiA-ogSTtHwLgjPjy5VrJG6bwKFwmDlTpM8/s1600/Screen+Shot+2019-09-02+at+7.46.12+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="535" data-original-width="1354" height="126" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhua_h5RYbZD_iaGYN_r6B91sKUOwUh-yVyYXH-zW7gnPYGmEtXFk-UEajK4QIoT4RssN8O_B50OPhE8_Jd1_X3OuiAdHlonC6nQKoKQ9zVeiA-ogSTtHwLgjPjy5VrJG6bwKFwmDlTpM8/s320/Screen+Shot+2019-09-02+at+7.46.12+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Tambahkan InfluxDB nya</b></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: justify;">
Kemudian klik "Import" dan bim salabim. Dashboard pun muncul</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-9sFMpfUKDq53HvpAUezhEyfUCvBaJSD8UbJU-oFJ3V5gh7BKp9pCD-qQwHcW1c-52jr7zRO2ZOLCt3QFs9swthZr312b2ow1zKWY9Pe8ifDOtm_O-vFXORr17ZtG6BsHfgxFdFJUWOw/s1600/Screen+Shot+2019-09-02+at+7.46.54+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="857" data-original-width="1600" height="171" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-9sFMpfUKDq53HvpAUezhEyfUCvBaJSD8UbJU-oFJ3V5gh7BKp9pCD-qQwHcW1c-52jr7zRO2ZOLCt3QFs9swthZr312b2ow1zKWY9Pe8ifDOtm_O-vFXORr17ZtG6BsHfgxFdFJUWOw/s320/Screen+Shot+2019-09-02+at+7.46.54+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Dashboard yang terinstall</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Di dashboard sudah tersedia hal-hal mendasar tentang sistem server atau komputer yang sering kita gunakan informasinya. Seperti utilisasi CPU, RAM, dan Penyimpanan. Ada juga Networking dan masi banyak lagi. Jangan lupa, save dulu dashboardnya sebelum meninggalkan situs grafana</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oWR_JU0aO1L5NdgcixkIn-dC6sB5JPut5FS_ljnvmjOP7SrLa4ID3GZr-C7emzs5Ea5SdV1MjoOYs9NebAlXjk8_ES02WafepEV1rIdLdyIW5NNMEci-FagN95I1A3Vg8GO3-HQapnI/s1600/Screen+Shot+2019-09-02+at+7.47.35+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="121" data-original-width="322" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_oWR_JU0aO1L5NdgcixkIn-dC6sB5JPut5FS_ljnvmjOP7SrLa4ID3GZr-C7emzs5Ea5SdV1MjoOYs9NebAlXjk8_ES02WafepEV1rIdLdyIW5NNMEci-FagN95I1A3Vg8GO3-HQapnI/s320/Screen+Shot+2019-09-02+at+7.47.35+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Save dashboardnya gan</b></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Beri nama dashboard sesuai dengan keinginan, kemudian klik "Save"</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9nFfxpVU0DMCXhTGMm0VZj0rbl9xVKHpSVKolsXYnEQDII7vNgHo00C8IkklD7Aw8xLzpn7BBYrwO9Lh7qZGtcKSGxtEfyLH5TTEyLExOaTDQQLEGlHb8Zk2ui_6XbfGF3aXEFwG2JSE/s1600/Screen+Shot+2019-09-02+at+7.54.27+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="338" data-original-width="556" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9nFfxpVU0DMCXhTGMm0VZj0rbl9xVKHpSVKolsXYnEQDII7vNgHo00C8IkklD7Aw8xLzpn7BBYrwO9Lh7qZGtcKSGxtEfyLH5TTEyLExOaTDQQLEGlHb8Zk2ui_6XbfGF3aXEFwG2JSE/s320/Screen+Shot+2019-09-02+at+7.54.27+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Kasih nama dashboard</b></td></tr>
</tbody></table>
Dashboard yang dibuat tadi akan muncul di halaman awal grafana kita<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBqcw7ZbFbJc2Pp4pP_YSCggiOlgMNFZSZ6icdaR5SecgADBybkNwmnJSDBRK81RCAFkoJE4fRqXz2iEEWtfQQlVX7cdHbhQ6rkazl-w0J6ZOEjHsCe5DH2cVaxaVwoOPuN0OxkKeKOZs/s1600/Screen+Shot+2019-09-02+at+7.56.30+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="443" data-original-width="996" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBqcw7ZbFbJc2Pp4pP_YSCggiOlgMNFZSZ6icdaR5SecgADBybkNwmnJSDBRK81RCAFkoJE4fRqXz2iEEWtfQQlVX7cdHbhQ6rkazl-w0J6ZOEjHsCe5DH2cVaxaVwoOPuN0OxkKeKOZs/s320/Screen+Shot+2019-09-02+at+7.56.30+PM.png" width="320" /></a></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br />
Demikian longpost kali ini, kalo ada pertanyaan ato komentar, bisa di posting di kolom atau chat saya via telegram yang ada di pojok kanan atas. Semoga bermanfaat. :)</div>
<br />
referensi :<br />
<ul>
<li><a href="https://hub.docker.com/_/influxdb">https://hub.docker.com/_/influxdb</a></li>
<li><a href="https://computingforgeeks.com/monitor-linux-server-with-netdata-and-grafana/">https://computingforgeeks.com/monitor-linux-server-with-netdata-and-grafana/</a></li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-14059450878903611042019-08-22T14:47:00.001+07:002019-08-22T14:52:14.316+07:00Karena Server Ingin Dimengerti<span style="background-color: white; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">Original <a href="https://lirik.kapanlagi.com/artis/ada-band/karena-wanita-ingin-dimengerti/" target="_blank">song</a> </span><span style="background-color: white; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">By : Ada Band</span><br />
<span style="background-color: white; font-family: "arial" , "tahoma" , "helvetica" , "freesans" , sans-serif; font-size: 13px;">Parodied By : </span><a href="https://plus.google.com/u/0/+kahidna" style="background-color: white; color: black; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; text-decoration-line: none;" target="_blank">Alfin Hidayat</a><br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Log indah hadirkan pesona<br />
Kemuliaan admin yang memandang<br />
Uptime-mu simbol keanggunan<br />
Khas per-awan(cloud) yang kau miliki<br />
<br />
Akulah pengagum bandwidthmu<br />
Tak ingin ku menyakitimu<br />
Lindungi dari sengat dunia<br />
Yang mengancam<br />
Nodai sucinya processmu<br />
</span><br />
<a name='more'></a><span style="font-family: "courier new" , "courier" , monospace;">Karena si server ingin dimengerti<br />
Lewat bash script lembut dan config agung<br />
Karena si server ingin dimengerti<br />
Maintainlah dia dengan kasih sayang<br />
<br />
Ingin kuajar engkau otomasi <br />
mandi hangat command ansible<br />
Sebagai tanda kebahagiaan<br />
Bagi semesta service kita<br />
<br />
Karena si server ingin dimengerti<br />
Lewat bash script lembut dan config agung<br />
Karena si server ingin dimengerti<br />
Maintainlah dia dengan kasih sayang<br />
<br />
Service stable itulah dirimu<br />
Janganlah nge-lag dan nge-down<br />
Ku di belakangmu Memeluk</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">Dan.. <strike>Mengoprekmu..</strike> Menjagamu</span>Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com1tag:blogger.com,1999:blog-2514339299915466722.post-27749867302407386392019-07-31T19:54:00.003+07:002019-07-31T20:55:57.157+07:00Install Goofys di Ubuntu Server 18.04 LTS<div style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvFpLN-M3d13nxL_N9K8m_jyxT39aRoeHvAL67HxMtD55vJHhelAKqIYrGwfittlGFPN9adQgYanvCKjDKh0W-ceKRPAABgOktaKJ7G9_0Niln6l5m4DzKmr8ZnVjxRKmO-b7D7F8cJuI/s1600/goofys.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="958" data-original-width="958" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvFpLN-M3d13nxL_N9K8m_jyxT39aRoeHvAL67HxMtD55vJHhelAKqIYrGwfittlGFPN9adQgYanvCKjDKh0W-ceKRPAABgOktaKJ7G9_0Niln6l5m4DzKmr8ZnVjxRKmO-b7D7F8cJuI/s200/goofys.png" width="120" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Goofys</b></td></tr>
</tbody></table>
<span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title="">Mumpung lagi ngoprek S3 bucket dan tool mountingnya (dikantor pake goofys dan s3fs), sekalian deh nulis dokumentasinya. Bagi yang belum tau S3 bucket, singkatnya S3 bucket adalah layanan </span></span></span></span><span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title="">Amazon Web Service (AWS) yang berupa penyimpanan dalam bentuk object storage. Selain harganya yang (katanya sih) murah, AWS menjamin ketahanan layanan ini dengan angka yang hampir sempurna, cek aja <a href="https://aws.amazon.com/id/s3/storage-classes/?nc=sn&loc=3">disini</a>. Jangan lupa di hitung yak berapa angka dibelakang komanya. untuk lebih lengkap bisa mampir ke</span></span></span></span> situs resminya yang bahasa indonesia <a href="https://aws.amazon.com/id/s3/">disini</a>.</span></span></span></span><br />
<span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title=""></span></span></span></span><br />
<a name='more'></a><span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title="">Ceritanya saya disuruh migrasi dari server AWS ke server fisik. Kebetulan spek server fisiknya lebih gede dan lagi ngurangi pengeluaran untuk biaya infrastruktur. Dokumentasi kali ini spesial buat si goofys, karena barusan rilis versi baru setelah lama ga rilis <a href="https://github.com/kahing/goofys/releases/tag/v0.20.">katanya</a>. Oke, bagi yang belum tau goofys, menurut readme di repository resminya goofys adalah : </span></span></span></span></div>
<div style="text-align: justify;">
<span class="tlid-translation translation" lang="id"><span class="" title=""><span class="tlid-translation translation" lang="id"><span class="" title=""> </span></span></span></span></div>
<div style="text-align: justify;">
<blockquote class="tr_bq">
<i>Goofys is a high-performance, POSIX-ish <a href="https://aws.amazon.com/s3/" rel="nofollow">Amazon S3</a> file system written in Go.</i> </blockquote>
<blockquote class="tr_bq">
<i>Goofys allows you to mount an S3 bucket as a filey system. It's a Filey System instead of a File System because goofys strives for performance first and POSIX second. Particularly things that are difficult to support on S3 or would translate into more than one round-trip would either fail (random writes) or faked (no per-file permission). Goofys does not have an on disk data cache (checkout <a href="https://github.com/kahing/catfs">catfs</a>), and consistency model is close-to-open.</i></blockquote>
Ya intinya goofys ini punya performa yang tinggi dan di tulis dengan bahasa pemrograman <a href="https://golang.org/">golang</a>. Memang si sejauh ini rasanya goofys lebih stabil dan lebih kenceng dibanding s3fs. Langsung aja untuk cara install goofys di ubuntu server ada dua cara sebenarnya.<br />
<ol>
<li>Download binary dari <a href="https://github.com/kahing/goofys/releases/latest/download/goofys">sini</a>, kasi permission excutable, lalu tempatkan di salah satu folder yang ada di $PATH, atau</li>
<li>Compile dari source code, lalu tempatkan di salah satu folder di $PATH</li>
</ol>
</div>
<div style="text-align: justify;">
Perbedaannya adalah, kalo kita download pre-built binary dari repo, bisa jadi binary tersebut bukan hasil compile dari commit yang terakhir. Dengan kata lain, meskipun versi sama, tapi kalo commit lebih usang, berarti ada fitur baru yang belum ikut tercompile waktu bang <a href="https://github.com/kahing/">Ka-hing</a> release binary filenya.<br />
<br />
Berikut adalah perbedaan versi hasil download dan hasil compile (di download dan di compile dengan hari yang sama)<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvnP8BODTAOUir5Znqu5pogU00M9Z2Svf9QTwEYoXuPl2tP4gzBRKpgDsY16dA7WmLLzu12XbW-mk44cVvxkdSo-9lXo1rCgle2QuTTlreU7vdZHZ78HmCw7hQHkwD2zHl15Mza5ZRxUs/s1600/Screen+Shot+2019-07-31+at+8.46.39+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="459" data-original-width="1600" height="91" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvnP8BODTAOUir5Znqu5pogU00M9Z2Svf9QTwEYoXuPl2tP4gzBRKpgDsY16dA7WmLLzu12XbW-mk44cVvxkdSo-9lXo1rCgle2QuTTlreU7vdZHZ78HmCw7hQHkwD2zHl15Mza5ZRxUs/s320/Screen+Shot+2019-07-31+at+8.46.39+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Komparasi Versi</b></td></tr>
</tbody></table>
Oh ya, biasa, first thing first. Berikut adalah environment atau dependensi yang saya gunakan</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">OS : Ubuntu server 18.04.2 LTS
Golang : go 1.10.4 linux/amd64
Git : git version 2.17.1 (opsional) </span></pre>
Untuk install golang dan git, bisa menggunakan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install -y git golang</span></pre>
</div>
<div style="text-align: justify;">
Dan bagi pengguna ubuntu server dengan versi dibawah 18.04, bisa install golang dengan versi yang lebih terbaru dari reponya ubuntu, saya pernah nulis catetannya, bisa lihat <a href="https://bukananakit.blogspot.com/2017/08/install-go-18-di-ubuntu-server-1404-lts.html">disini</a>. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Oke, untuk cara compile nya :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">export </span><span style="font-family: "courier new" , "courier" , monospace;"><span class="pl-s1">GOPATH=<b><span class="pl-smi">$HOME</span>/work</b></span>
go get github.com/kahing/goofys
</span></pre>
Bagian yang saya kasih tebal bisa anda ganti sesuai kebutuhan, yang penting folder itu kepemilikannya sama dengan user saat anda mengkompilasi. Proses setelah export akan memakan waktu beberapa saat, tergantu kecepatan internet dan prosesor server yang digunakan untuk mengcompile. Dan. . . . kalo uda selese, ngga ada notifikasinya, cuma ada folder yang dihasilkan dan siap di compile.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3RZ2IkIMiVfz5iYUojnyaS4mkZFsM8ZirJLlIXqegL2t5tJZsfxlyqKLk6fTIkzFzHFtsQSSMd53ZaNujxFW8VXdL26Ex9DYSV7NZArv26RYnu6XAp5RMqf_l3XlgwD2hHqeEf_PYJ1A/s1600/Screen+Shot+2019-07-31+at+8.29.20+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="99" data-original-width="507" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3RZ2IkIMiVfz5iYUojnyaS4mkZFsM8ZirJLlIXqegL2t5tJZsfxlyqKLk6fTIkzFzHFtsQSSMd53ZaNujxFW8VXdL26Ex9DYSV7NZArv26RYnu6XAp5RMqf_l3XlgwD2hHqeEf_PYJ1A/s320/Screen+Shot+2019-07-31+at+8.29.20+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Folder setelah eksekusi perintah go get</b></td></tr>
</tbody></table>
File goofys nya memang uda ada si di folder bin. Tapi menurut command go, perintah get hanya mendownload package dan dependensi (lihat manual go dengan perintah <span style="font-family: "courier new" , "courier" , monospace;">man go</span> dari terminal), belum terkompile. Kemudian, untuk mengkompilasi, kita gunakan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">go install github.com/kahing/goofys</span></pre>
Lalu kita bisa coba eksekusi goofys hasil kompilasi dengan perintah <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">$GOPATH/bin/goofys --version</span></pre>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimwrDV3QFI5EWh7umrxXT76rPX05MRLXarNLkObh71eX9DlZwcmkzJtiJE1kGdtdvH2WKHSc8Vjrxx8c7u3dw_9uw7ZKB3nb4ipsBUp5ckzR6I-T9JM_A2pZIQYFeu-yvWJthbUhtblSk/s1600/Screen+Shot+2019-07-31+at+8.25.43+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="150" data-original-width="593" height="80" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimwrDV3QFI5EWh7umrxXT76rPX05MRLXarNLkObh71eX9DlZwcmkzJtiJE1kGdtdvH2WKHSc8Vjrxx8c7u3dw_9uw7ZKB3nb4ipsBUp5ckzR6I-T9JM_A2pZIQYFeu-yvWJthbUhtblSk/s320/Screen+Shot+2019-07-31+at+8.25.43+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Eksekusi goofys</b></td></tr>
</tbody></table>
Jika output yang dihasilkan seperti gambar diatas, berarti hasil kompilasi berhasil. Setelah itu tinggal copy ke salah satu folder yang ada di $PATH agar goofys bisa dipanggil dari berbagai direktori.<br />
<br />
<b>Memberi Hash Version Goofys</b></div>
<div style="text-align: justify;">
Kalo di perhatikan, versi hasil kompilasinya "ngga bener" ya. Begini cara mbenerinnya<br />
Masuk ke direktori source code goofys dengan perintah <br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">cd $GOPATH/src/github.com/kahing/goofys</span></pre>
Pastikan isi direktori tersebut sama dengan gambar berikut <br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNFdkcNL5bIX8IH__scay0V57cvmsonyKKs7i7MKksZv1xOHWvQBbpvSjCWhT_izaPA2J6cN_crrHR8sggeY5lUKCG-C7L6olQ044csM4AKfAHdFmpHaUW9DtjzjXfD1mAMGuySey-Cow/s1600/Screen+Shot+2019-07-31+at+8.34.18+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="86" data-original-width="810" height="33" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNFdkcNL5bIX8IH__scay0V57cvmsonyKKs7i7MKksZv1xOHWvQBbpvSjCWhT_izaPA2J6cN_crrHR8sggeY5lUKCG-C7L6olQ044csM4AKfAHdFmpHaUW9DtjzjXfD1mAMGuySey-Cow/s320/Screen+Shot+2019-07-31+at+8.34.18+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Daftar isi direktori goofys</b></td></tr>
</tbody></table>
Setelah itu, kita eksekusi perintah<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">make build && make install</span></pre>
Kemudian, kita cek ulang versi goofys tadi dengan perintah yang sama<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">$GOPATH/bin/goofys --version</span></pre>
Kurang lebih hasilnya seperti gambar berikut<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlKrUhIZVgw_Or-TlICXPnwNMk7iKJXRtgGO7ma3y4vYauZy7l7yYTXKOAONNUlc0FM8nbqJzL9CCKOzNOQD7cjcZjLj3Nt1It2ztG9yf_USmTpL6mHcEGsC-26Uuk7KD2vraVrBjPow4/s1600/Screen+Shot+2019-07-31+at+8.37.25+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="146" data-original-width="628" height="74" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlKrUhIZVgw_Or-TlICXPnwNMk7iKJXRtgGO7ma3y4vYauZy7l7yYTXKOAONNUlc0FM8nbqJzL9CCKOzNOQD7cjcZjLj3Nt1It2ztG9yf_USmTpL6mHcEGsC-26Uuk7KD2vraVrBjPow4/s320/Screen+Shot+2019-07-31+at+8.37.25+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Goofys dengan versi</b></td></tr>
</tbody></table>
Dan kalo kita cek, hash ini diambil dari hash commit terakhir branch <a href="https://github.com/kahing/goofys">master</a> repository goofys<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK6Pdwu4MisIEI7cTQ8McgRFMOWHFxcmP7zEooumdHl5fRQyl1rVYfoTGtmJlkk5HyXmHbvBEJ1rQCY63WFXxNMrL26uCmq5Iy3iGiwDwVOualakfIQ1plfIGOggJFSXAruvsKRrIaDgM/s1600/Screen+Shot+2019-07-31+at+8.42.22+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="411" data-original-width="1371" height="95" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK6Pdwu4MisIEI7cTQ8McgRFMOWHFxcmP7zEooumdHl5fRQyl1rVYfoTGtmJlkk5HyXmHbvBEJ1rQCY63WFXxNMrL26uCmq5Iy3iGiwDwVOualakfIQ1plfIGOggJFSXAruvsKRrIaDgM/s320/Screen+Shot+2019-07-31+at+8.42.22+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Hash yang sama</b></td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
Semoga bermanfaat. :)<br />
<br />
referensi :<br />
<ul>
<li><a href="https://github.com/kahing/goofys">https://github.com/kahing/goofys</a></li>
<li><a href="https://aws.amazon.com/id/s3/">https://aws.amazon.com/id/s3/</a></li>
</ul>
</div>
<div style="text-align: justify;">
<br /></div>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-31190840095945995752019-07-01T12:54:00.000+07:002019-10-07T12:52:58.569+07:00Membuat User Baru di Ubuntu Server<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgtH1wqUl3G9jLc-CoY0hhZFBJo4mdC46fcOuZZM2UL4wEEpWe_ce5cH0rV3bjQPo2dNdjdwGpRrs7lS5DmpzAqwQosKR92I12ZImXFdaLJblBlpizCWlMDJaC68a8zYGtCF-BGF-pjZo/s1600/ubuntu-logo32.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="200" data-original-width="200" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgtH1wqUl3G9jLc-CoY0hhZFBJo4mdC46fcOuZZM2UL4wEEpWe_ce5cH0rV3bjQPo2dNdjdwGpRrs7lS5DmpzAqwQosKR92I12ZImXFdaLJblBlpizCWlMDJaC68a8zYGtCF-BGF-pjZo/s200/ubuntu-logo32.png" width="120" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Ubuntu</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Sebelumnya saya sudah share bagaimana cara membuat user baru di distro linux CentOS. Kalo di distro lain bagaimana? Misalnya Ubuntu. Sebenarnya caranya mirip, yang berbeda mungkin saat kita akan menambahkan akses sudo pada user yang baru saja dibuat. Opsi menambahkan sudo sebenarnya jika hanya user yang baru di buat memerlukan akses penuh ke PC atau server yang digunakan. Apabila user tidak memerlukan hal tersebut, mungkin hal ini tidak perlu di lakukan.</div>
<br />
<a name='more'></a><br />
<div style="text-align: justify;">
Untuk membuat user baru, pastikan sudah berada di mode root, bisa menggunakan perintah</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo su</span></pre>
</div>
<div style="text-align: justify;">
atau jika root sudah di setup passwordnya bisa menggunakan perintah</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">su</span></pre>
</div>
<div style="text-align: justify;">
kemudian tambahkan username yang di inginkan dengan perintah:</div>
<div style="text-align: justify;">
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">adduser [nama_user]</span></pre>
</div>
Masukkan password untuk user baru, <b>password yang anda ketikkan tidak memang tidak muncul di layar.</b><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx-r-2QS-MOjdVvWs3JHQfJ_fckxIFmZb4ASRMxrqcEDrP3jTRjJzhqQTtBDurucjI3ggZr8jamZZ11KqAisVnp993fjZ9Rpds1dbNegHrJSsr7HnPfuW-RxUob6N1FwJq0AP705mAomA/s1600/photo_2019-07-01+12.54.41.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="234" data-original-width="579" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx-r-2QS-MOjdVvWs3JHQfJ_fckxIFmZb4ASRMxrqcEDrP3jTRjJzhqQTtBDurucjI3ggZr8jamZZ11KqAisVnp993fjZ9Rpds1dbNegHrJSsr7HnPfuW-RxUob6N1FwJq0AP705mAomA/s320/photo_2019-07-01+12.54.41.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Password tidak muncul</b></td></tr>
</tbody></table>
<br />
(opsional) kemudian isi form yang ada, pada bagian konfirmasi isikan dengan huruf "Y" lalu tekan enter<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM7cAFdrT-H4xJ7yC-HGx5xKMtxjISVylJzkzhhMa00brhcH-ymURHW8kS26UvugcL7k-LxM4510mkdUAlTxMJOzNhnF4OFnuAxFK29OpPrlrHCkzmmj9-DjJAARVnwr946d650bM4YwI/s1600/photo_2019-07-01+12.54.47.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="363" data-original-width="792" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiM7cAFdrT-H4xJ7yC-HGx5xKMtxjISVylJzkzhhMa00brhcH-ymURHW8kS26UvugcL7k-LxM4510mkdUAlTxMJOzNhnF4OFnuAxFK29OpPrlrHCkzmmj9-DjJAARVnwr946d650bM4YwI/s320/photo_2019-07-01+12.54.47.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Form User</b></td></tr>
</tbody></table>
Jika sudah, maka coba login dengan menggunakan user ke server. Biasanya saya menggunakan perintah ssh sebagai berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">ssh -v [username]@[domain server]</span></pre>
jika berhasil login, penampakannya akan terlihat seperti berikut :<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC7ZguoDGQjTQWQ_LY3dWz2LRawDDUbl1ZShV1BPvOas2rKoIkV0oarA8HomCsxkVyp3Y0MkvqxFCs0G57jt-GffwULBEKWgVJg67w7XBPhG-QOxlEFXc3asPpE5I-z4UnQnhJBmXG2Q8/s1600/Screen+Shot+2019-08-26+at+1.55.07+PM.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="267" data-original-width="577" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjC7ZguoDGQjTQWQ_LY3dWz2LRawDDUbl1ZShV1BPvOas2rKoIkV0oarA8HomCsxkVyp3Y0MkvqxFCs0G57jt-GffwULBEKWgVJg67w7XBPhG-QOxlEFXc3asPpE5I-z4UnQnhJBmXG2Q8/s320/Screen+Shot+2019-08-26+at+1.55.07+PM.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>User terbentuk</b></td></tr>
</tbody></table>
Selamat, user yang anda buat sudah siap digunakan<br />
<br />
<b>Agar User Bisa Run Perintah sudo</b><br />
User yang kita daftarkan diatas adalah user biasa / non administrator, dengan kata lain, user tadi tidak memiliki hak akses untuk melakukan perubahan menyeluruh pada server. sudo adalah perintah<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidtoHEoKf74CxEZhUcS9OEa2WLVcFeL6-GCogSXhY9oEXEk4b_nprxKlvChqyXX4qcx2YWZH86bZXl2_exIvti9pEaYUnwJooup4lqUXrXlAPDH_hg0dM5JqKOkjjJvo5bO4DPWUnylMg/s1600/photo_2019-07-01+12.54.56.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="94" data-original-width="537" height="56" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidtoHEoKf74CxEZhUcS9OEa2WLVcFeL6-GCogSXhY9oEXEk4b_nprxKlvChqyXX4qcx2YWZH86bZXl2_exIvti9pEaYUnwJooup4lqUXrXlAPDH_hg0dM5JqKOkjjJvo5bO4DPWUnylMg/s320/photo_2019-07-01+12.54.56.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Gagal <strike>move on</strike> sudo</b></td></tr>
</tbody></table>
<br />
Untuk menambahkan user baru agar menjadi sudoer, kita bisa menggunakan perintah berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">usermod -aG sudo [nama_user]</span></pre>
perintah ini tidak mengembalikan apapun ke terminal, seperti yang terlihat di gambar<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxyRN5wUPtLG15K6P2T50hZ0wLZMKuYQ15fqs5-ahpau2v5noIs-DRYpvazf2Cq-7LsC2YcSm88hB8u73N9DNgv0sjN7KMnU-4PilYPBUoC4_Vx2thYMCZbhdxxTwRGgaQrnt_ip48KoM/s1600/photo_2019-07-01+12.55.01.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="96" data-original-width="375" height="81" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxyRN5wUPtLG15K6P2T50hZ0wLZMKuYQ15fqs5-ahpau2v5noIs-DRYpvazf2Cq-7LsC2YcSm88hB8u73N9DNgv0sjN7KMnU-4PilYPBUoC4_Vx2thYMCZbhdxxTwRGgaQrnt_ip48KoM/s320/photo_2019-07-01+12.55.01.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Menambahkan user baru sebagai sudo</b></td></tr>
</tbody></table>
Setelah itu, mari kita uji apakah user yang dibuat dapat menjalankan perintah sudo. Untuk pengujian paling sederhana yaitu dengan masuk ke mode root dengan perintah :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">sudo su </span></pre>
Jika berhasil, maka prompt terminal akan berubah dari semula<span style="font-family: "courier new" , "courier" , monospace;"> [nama_user]@[hostname] </span>menjadi <span style="font-family: "courier new" , "courier" , monospace;">root@[hostname] </span>seperti pada gambar dibawah.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiIfubyiprBF-s6GFruCzFEW1rJ5a7q9gHvB_wnnMCQlmopfdevVM7PK-aVB2YLGPUCKBtp4uF0u968UDbcv0ysUtL872glvb-v588DkRuGg1eFcIQfepXKTyzCFtbcVRc-VmtcrSVNVo/s1600/photo_2019-07-01+12.55.05.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="74" data-original-width="560" height="42" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiIfubyiprBF-s6GFruCzFEW1rJ5a7q9gHvB_wnnMCQlmopfdevVM7PK-aVB2YLGPUCKBtp4uF0u968UDbcv0ysUtL872glvb-v588DkRuGg1eFcIQfepXKTyzCFtbcVRc-VmtcrSVNVo/s320/photo_2019-07-01+12.55.05.jpeg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Berhasil masuk root dengan sudo</b></td></tr>
</tbody></table>
<br />
Demikian catatan kali ini, apabila ada pertanyaan, silahkan tinggalkan komentar dibawah.<br />
<br />
Semoga bermanfaat. :)Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-17767051907150531162019-06-24T13:07:00.003+07:002019-08-08T18:49:06.429+07:00Cheat Sheet Perintah IptablesKarena sekarang handle server fisik juga, jadi mainan iptables deh. Berikut adalah catatan singkat tentang firewall iptables :<br />
<a name='more'></a><br />
menampilkan daftar semua rules iptables pada sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -L</span></pre>
menampilkan rules tertentu iptables pada sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -L [JENIS_RULE]</span></pre>
menampilkan daftar rules iptables beserta index rules/ tampilkan lebih detail<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -t filter -L [rules] --line-numbers -n -v </span></pre>
menghapus rules iptables pada sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -F</span></pre>
konfigurasi setting default iptables<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -P INPUT [DROP|ACCEPT]
iptables -P FORWARD </span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">[DROP|ACCEPT]</span>
iptables -P OUTPUT </span><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">[DROP|ACCEPT]</span></span></pre>
membuka port tertentu (contoh membuka port 80)<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -A INPUT -p tcp --dport 80 -j ACCEPT</span></pre>
blokir sistem agar tidak dapat mengakses situs atau ip tertentu<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -A OUTPUT -p tcp -d [ip_atau_url] -j DROP</span></pre>
white list ip address atau subnet jaringan tertentu<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -I INPUT -s [ip_address]/[CIDR] -j ACCEPT</span><span style="font-family: "courier new" , "courier" , monospace;">
iptables -I OUTPUT -d [ip_address]/[CIDR] -j ACCEPT</span></pre>
mengijinkan protokol ICMP / ping DARI luar pada system sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT</span></pre>
mengijinkan protokol ICMP / ping KE luar pada system sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT</span></pre>
forward port public ip ke private ip<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -t nat -A PREROUTING -p tcp -d [public_ip] --dport [port_public_machine] -j DNAT --to [private_ip]:[port_machine]</span></pre>
mengijinkan port tertentu untuk mengakses sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -I INPUT -i docker0 -j ACCEPT</span></pre>
menambahkan rules mengijinkan port tertentu untuk mengakses sistem<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables -I INPUT [nomor_rule] -i docker0 -j ACCEPT</span></pre>
<br />
<b>Backup dan Restore konfigurasi iptables</b> <br />
backup konfigurasi iptables<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables-save > /etc/iptables/rules.v4</span></pre>
restore konfigurasi iptables<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">iptables-restore < /etc/iptables/rules.v4</span></pre>
<br />
Referensi :<br />
<ul>
<li><a href="https://upcloud.com/community/tutorials/configure-iptables-debian/">https://upcloud.com/community/tutorials/configure-iptables-debian/</a> </li>
<li><a href="https://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently">https://www.thomas-krenn.com/en/wiki/Saving_Iptables_Firewall_Rules_Permanently</a></li>
<li><a href="https://serverfault.com/a/529400">https://serverfault.com/a/529400</a></li>
<li><a href="https://tecadmin.net/enable-logging-in-iptables-on-linux">https://tecadmin.net/enable-logging-in-iptables-on-linux</a></li>
<li><a href="https://gemaroprek.com/cara-whitelist-ip-pada-iptables/">https://gemaroprek.com/cara-whitelist-ip-pada-iptables/</a></li>
<li><a href="https://www.unix-ninja.com/p/An_iptables_cheat-sheet">https://www.unix-ninja.com/p/An_iptables_cheat-sheet</a></li>
<li><a href="https://unix.stackexchange.com/q/106890">https://unix.stackexchange.com/q/106890</a></li>
<li><a href="https://www.cyberciti.biz/faq/linux-iptables-insert-rule-at-top-of-tables-prepend-rule/">https://www.cyberciti.biz/faq/linux-iptables-insert-rule-at-top-of-tables-prepend-rule/</a> </li>
<li><a href="https://www.cyberciti.biz/tips/linux-iptables-12-how-to-block-or-open-dnsbind-service-port-53.html">https://www.cyberciti.biz/tips/linux-iptables-12-how-to-block-or-open-dnsbind-service-port-53.html</a></li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-31879159052618469012019-05-16T07:50:00.001+07:002019-05-29T07:53:11.134+07:00Tutorial Dasar dan Cheat Sheet Vim<div style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO0F9P0uyCfPwtwKM6IMRnt_0ZQuKFf0ygO-s9kqKIsLd1k1ADwajSBkYAi6sQ_nJyvHspQzWMNDBwhz_uOz42yziBbfA4EDCiuDhEZVpx7XDYNduSJMo0nOE6wJIWiH7El1PpEFn5mcU/s1600/vim.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="128" data-original-width="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiO0F9P0uyCfPwtwKM6IMRnt_0ZQuKFf0ygO-s9kqKIsLd1k1ADwajSBkYAi6sQ_nJyvHspQzWMNDBwhz_uOz42yziBbfA4EDCiuDhEZVpx7XDYNduSJMo0nOE6wJIWiH7El1PpEFn5mcU/s1600/vim.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Vi IMproved</b></td></tr>
</tbody></table>
VIM atau Vi IMproved adalah salah satu teks editor legendaris di dunia command-line. Teks editor ini bahkan bisa di custom menjadi Integrated Development Environment (IDE) yang asik dan ringan dengan menambahkan plugin <a href="https://vim-bootstrap.com/" target="_blank">Vim Bootstrap</a>. Selain itu juga ada Neovim yang merupakan pengembangan dari Vim, bisa langsung cek di situs resmi milik <a href="https://neovim.io/" target="_blank">Neovim</a>.<br />
<br />
Tidak jarang bagi pengguna awal Linux, Vim menjadi momok yang luar biasa bikin kesel. Karena cara penggunaannya yang menurut saya bisa dibilang aneh dan sangat anti-mainstream.<br />
<a name='more'></a></div>
<br />
<div style="text-align: justify;">
Contohnya, untuk keluar dari Vim, kita perlu memastikan terlebih dulu bahwa kita berada di mode normal. Sedangkan kalo kita mengedit teks kita berada di mode insert. Lah siapa yang paham ginian coba kalo dulunya cuma buka aplikasi teks editor, lalu kita bebas mengetikkan apapun disana lalu simpan. Mission accomplish.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Tapi di VIM, oh... tidak semudah itu fergusso. :v</div>
<div style="text-align: justify;">
VIM memiliki beberapa mode dalam penggunaannya seperti mode normal, mode insert, mode visual dan ada beberapa metode lainnya. Bisa di cek <a href="https://en.wikibooks.org/wiki/Learning_the_vi_Editor/Vim/Modes#Modes" target="_blank">disini</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Saya pribadi awalnya tidak begitu sering menggunakan Vim, dan lebih sering menggunakan teks editor Nano. Karena lebih simpel dan mudah digunakan (menurut saya loh). Tapi karena kesimple-an yang dimiliki Nano, tentu banyak fitur VIM yang tidak dimiliki Nano. Dan jujur saja, sekarang saya juga jadi pengen bisa lancar pake Vim. Makanya saya buat catatan Vim saya sendiri.<br />
<br />
Disini saya menggunakan environment sebagai berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">Operating System : Lubuntu 18.04.2 LTS
Vim Version : 8.0.1453</span></pre>
O iya untuk instalasi, biasanya Vim sudah terinstall secara bawaan di distro Linux atau OSX. Tapi mungkin bukan versi terbaru, jika anda ingin menggunakan versi Vim terbaru dan anda menggunakan distro Linux berbasis Ubuntu/Debian atau Centos/Redhat bisa mencoba tutorial yang pernah saya tulis <a href="https://bukananakit.blogspot.com/2018/08/install-vim-centos-7-dan-ubuntu-1804.html" target="_blank">disini</a>. Untuk distro lain juga bisa mengikuti alur tutorial tersebut namun dengan sedikit perintah yang berbeda. Untuk pengguna Windows bisa download file instalasi Vim <a href="https://www.vim.org/download.php#pc" target="_blank">disini</a>. Dan berikut adalah catatan saya.</div>
<div style="text-align: justify;">
<br />
Untuk membuka Vim, terlebih dulu buka terminal kesayangan anda, lalu eksekusi perintah "<span style="font-family: "courier new" , "courier" , monospace;">vim"</span>, maka terminal anda akan tampak kurang lebih seperti berikut :<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2JkLVyMH0-8U2HY1lozgELpboWEAAwpJwlo7iXH6HYE-tEfMxrRg4CkPSrz3YYaLiwTthcdVE6GWJD7_3-aaTfOirqWxBSvA1i5RSc0bPGdVnSLruswSBg2i4VZK-dhNj-AzAheVW5_I/s1600/vim-first.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="565" data-original-width="900" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2JkLVyMH0-8U2HY1lozgELpboWEAAwpJwlo7iXH6HYE-tEfMxrRg4CkPSrz3YYaLiwTthcdVE6GWJD7_3-aaTfOirqWxBSvA1i5RSc0bPGdVnSLruswSBg2i4VZK-dhNj-AzAheVW5_I/s320/vim-first.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Penampakan Vim</b></td></tr>
</tbody></table>
</div>
<div style="text-align: justify;">
Yang pertama dan utama dalam menggunakan Vim, menurut saya adalah mode yang sedang aktif, bisa di cek pojok kiri bawah, seperti gambar berikut :</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid4kydJPJwKzu4cg7qsdlcPSKoWgcy1TIiKgTseniBbzSvOw7C-WNxJRC7dFeYSHHkto5iPKtfcx4uXgswwPUX_3Rh3iPNr_DXgQ13338iV3ZcIOSiZWXIp0REgwYMiL443PbC4qGu1EI/s1600/vim-mode.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="305" data-original-width="587" height="103" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid4kydJPJwKzu4cg7qsdlcPSKoWgcy1TIiKgTseniBbzSvOw7C-WNxJRC7dFeYSHHkto5iPKtfcx4uXgswwPUX_3Rh3iPNr_DXgQ13338iV3ZcIOSiZWXIp0REgwYMiL443PbC4qGu1EI/s200/vim-mode.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Mode Vim</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
<b>Navigasi dan Perintah Dasar</b><br />
Secara default saat membuka vim dengan mengeksekusi perintah <span style="font-family: "courier new" , "courier" , monospace;">vim</span> kita berada pada mode normal yang berfungsi untuk navigasi dan manipulasi teks. Yang mana kita dapat memasuki mode normal ini dengan menekan tombol <span style="font-family: "courier new" , "courier" , monospace;">Esc</span>. Termasuk juga untuk keluar dari Vim, kita harus berada di mode ini (cie yang hampir tau caranya keluar dari vim, :v).</div>
<br />
Nah berikut adalah beberapa perintah yang tersedia dalam mode normal<br />
<br />
keluar dari vim<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">:q</span></pre>
keluar paksa jika tidak ingin menyimpan perubahan yang dibuat<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">:q!</span></pre>
menyimpan file pertama kali jika hanya mengeksekusi perintah <span style="font-family: "courier new" , "courier" , monospace;">vim</span><br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">:w [nama file yang di inginkan]</span></pre>
menyimpan apa yang sudah kita ubah jika mengeksekusi perintah <span style="font-family: "courier new" , "courier" , monospace;">vim [nama file]</span><br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">:w</span></pre>
menyimpan perubahan dan keluar dari vim<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">:wq</span></pre>
menuju baris tertentu<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">:[angka]</span></pre>
mencari kata tertentu<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">/[pola_kata]</span></pre>
menghapus satu baris sesuai dengan posisi kursor<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; text-align: start; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">dd</span></pre>
Tahapan penggunaannya adalah :<br />
1. pastikan anda berada pada mode normal, jika belum tekan tombol <span style="font-family: "courier new" , "courier" , monospace;">Esc</span><br />
2. kemudian ketik perintah diatas (salah satu saja) misal kita akan save file baru <span style="font-family: "courier new" , "courier" , monospace;">:q nama file ganteng</span><br />
3. tekan enter.<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzrDnq5KuRFPfk66JQS81DMuwsBaHXovESzsw8Ax2AWgLtVZXX-UY6Tgzlz6VIg46L23V5rSMQ2res3s9QQm1oA0-1jKgh1vgVY-GcHMQpcou1CG3shP537m9zdD4ucXwW6gaHY5BIdfw/s1600/vim-new-file.png" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="556" data-original-width="756" height="145" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzrDnq5KuRFPfk66JQS81DMuwsBaHXovESzsw8Ax2AWgLtVZXX-UY6Tgzlz6VIg46L23V5rSMQ2res3s9QQm1oA0-1jKgh1vgVY-GcHMQpcou1CG3shP537m9zdD4ucXwW6gaHY5BIdfw/s200/vim-new-file.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Gambar Proses 2</b></td></tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil1PqKK4e46cm4F1Tz_vWOeWhFHLq0Ci18tUgW2qL-UH99mxyovTsgq37tOQW1oY2matgd-zNxU6BsgGSAu0g_nZgeZbp-0bjiKGdoGgeEIOcrdW-65uZDYxvnnhW-v-yx-26jjCgVkKE/s1600/vim-saved-file.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="603" data-original-width="932" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil1PqKK4e46cm4F1Tz_vWOeWhFHLq0Ci18tUgW2qL-UH99mxyovTsgq37tOQW1oY2matgd-zNxU6BsgGSAu0g_nZgeZbp-0bjiKGdoGgeEIOcrdW-65uZDYxvnnhW-v-yx-26jjCgVkKE/s200/vim-saved-file.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Gambar Proses 3</b></td></tr>
</tbody></table>
<br />
<div style="text-align: justify;">
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Nah, untuk keluar, lakukan hal yang sama, pastikan sudah di mode normal, lalu ketik <span style="font-family: "courier new" , "courier" , monospace;">:q</span><br />
<br />
<b>Memanipulasi Isi Teks</b><br />
Untuk menambah atau menghapus teks, tekan tombol <span style="font-family: "courier new" , "courier" , monospace;">insert</span> atau jika tidak ada (biasanya pengguna OSX) kita bisa menekan tombol huruf <span style="font-family: "courier new" , "courier" , monospace;">i</span>. Dan perhatikan kembali pojok kiri bawah dari window terminal </div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjOyEfMWULk2eBjKNGanh6dZOmwkaYea5gxiV10Y0zWCe1P-KRVJp9DW7JcDBRkEmoLBrHVCbVcpfs2XhR_4YlSTnYp5bvE_2IksTLqvDS4-rLntYiLzuIwCw7oFR-saZwNnG1b1Y17Nc/s1600/insert-mode.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="105" data-original-width="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjOyEfMWULk2eBjKNGanh6dZOmwkaYea5gxiV10Y0zWCe1P-KRVJp9DW7JcDBRkEmoLBrHVCbVcpfs2XhR_4YlSTnYp5bvE_2IksTLqvDS4-rLntYiLzuIwCw7oFR-saZwNnG1b1Y17Nc/s1600/insert-mode.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Insert Mode Vim</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
Di mode ini kita bisa menambahkan atau menghapus teks yang kita inginkan. Setelah selesai jangan lupa perubahan filenya disimpan yaaa..</div>
<br />
<div style="text-align: justify;">
Jika ada yang kurang jelas atau ada yang ingin ditanyakan, silahkan tinggalkan komentar atau bisa hubungi saya via telegram yang tertera di profil blog saya.</div>
<br />
Semoga bermanfaat. :D<br />
<br />
Referensi :<br />
<ul>
<li><a href="https://en.wikibooks.org/wiki/Learning_the_vi_Editor/Vim/Modes">https://en.wikibooks.org/wiki/Learning_the_vi_Editor/Vim/Modes</a></li>
<li><a href="https://www.thegeekstuff.com/2009/12/vim-editor-for-windows/">https://www.thegeekstuff.com/2009/12/vim-editor-for-windows/</a> </li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-65870657129286092062019-05-07T12:32:00.003+07:002019-05-15T07:50:23.675+07:00Virtualisasi dan VirtualBox<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN0wcBGvZ4NbQbhZwyMzYKPozies6_VchoNOFOrAr7Y9oCznL-IUe56KRP7rzCWr1Pn77boNG1EKwniWTri2MMCBd4DD9Z8SqoUV_tPA1GaBXTPpBReE7uYVJgpYVcPEkNdsg_nwzSiFA/s1600/Virtualbox_logo.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="512" data-original-width="512" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhN0wcBGvZ4NbQbhZwyMzYKPozies6_VchoNOFOrAr7Y9oCznL-IUe56KRP7rzCWr1Pn77boNG1EKwniWTri2MMCBd4DD9Z8SqoUV_tPA1GaBXTPpBReE7uYVJgpYVcPEkNdsg_nwzSiFA/s200/Virtualbox_logo.png" width="120" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>VirtualBox</b></td></tr>
</tbody></table>
<div style="text-align: justify;">
<span class="tlid-translation translation" lang="id"><span class="" title="">Virtualisasi adalah proses menjalankan instance virtual sistem komputer dalam lapisan yang disarikan dari perangkat keras yang sebenarnya.</span> <span class="" title="">Paling umum, ini mengacu pada menjalankan beberapa sistem operasi pada sistem komputer secara bersamaan. </span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span class="tlid-translation translation" lang="id"><span class="" title="">Itu penjelasan formal yang saya ambil dari situs opensource.com. Kalo untuk masih bingung gampangnya virtualisasi adalah sebuah proses dimana sebuah sistem dijalankan diatas sebuah sistem lain seolah sistem tersebut ada perangkat fisiknya. Masih bingung? </span></span><br />
<a name='more'></a><br />
<span class="tlid-translation translation" lang="id"><span class="" title="">Contoh real nya semisal kita saat ini menggunakan komputer yang terinstall Windows, kemudian kita ingin mencoba belajar menggunakan Linux. Alih-alih kita menyediakan komputer lagi atau melakukan dual boot, kita bisa menggunakan aplikasi virtualisasi (sebagai contoh virtualbox). </span></span></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br />
VirtualBox adalah salah satu aplikasi untuk mengaplikasikan virtualisasi pada komputer personal atau pada server. Dengan VirtualBox kita bisa menginstall sistem operasi tambahan sebagai contoh tadi kita saat ini menggunakan windows, lalu kita bisa menginstall linux di VirtualBox tanpa mengganggu Windows yang sedang kita gunakan. </div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Salah satu keuntungan menggunakan fitur virtualisasi adalah kita dapat melakukan hal apapun pada virtual sistem yang sudah kita install. Bahkan kita bisa melakukan hal-hal yang sifatnya berbahaya seperti menghapus isi folder system32 milik Windows, atau mengeksekusi command bahaya seperti rm -rf / pada Linux atau Mac. Hal ini dikarenakan sistem tersebut terisolirnya dari sistem yang kita gunakan sehari hari. Dan keuntungan tersebut dapat kita manfaatkan untuk melakukan uji coba atau development tanpa khawatir pada efek uji coba tersebut untuk komputer kita. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Efek Samping Virtualisasi</b></div>
<div style="text-align: justify;">
Fitur keren ini bukan berarti tanpa efek samping. Tentu ada yang harus kita "korbankan" selama proses virtualisasi berjalan. Contoh, virtualisasi memerlukan resource yang identik dengan aslinya. Misal kita menjalankan virtualisasi dengan menginstall Linux pada VirtualBox, maka kita harus menyediakan resource (dalam hal ini Ram, CPU dan Hardisk) untuk virtualisasi tersebut. Misal virtual yang kita buat memiliki virtual RAM 1GB, 2 Core CPU dan Hardisk 10 GB. Maka kita perlu mengalokasikan sejumlah resource tersebut yang diambil dari komputer kita. Jadi misal Ram kita 4GB, Core CPU lalu Hardisk 500GB. Maka resource tersebut akan digunakan oleh proses virtual apabila proses virtual sedang berjalan.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Jadi saran saya, sebelum mencoba proses virtualisasi, pastikan spesifikasi komputer yang digunakan mumpuni ya. ;)</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Cara Install VirtualBox</b></div>
<div style="text-align: justify;">
Bagi pengguna Distro Linux (Ubuntu, Fedora, Arch dan kawan-kawan) VirtualBox (biasanya) dapat di install dari repository distro yang anda gunakan. Oh iya, karena VirtualBox memiliki beberapa module yang terkait dengan kernel Linux, saya sarankan anda menginstall basic compiler atau developer tools seperti gcc,g++, make dan kawan-kawan. Sedangkan bagi pengguna Windows atau OSX, bisa download dari situs resmi Virtualbox <a href="https://www.virtualbox.org/wiki/Downloads" target="_blank">disini</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Semoga bermanfaat.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Referensi :</div>
<ul>
<li style="text-align: justify;"><a href="https://opensource.com/resources/virtualization">https://opensource.com/resources/virtualization</a> </li>
</ul>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0tag:blogger.com,1999:blog-2514339299915466722.post-22871644312506807292019-04-08T12:51:00.000+07:002019-05-16T05:59:36.000+07:00Cheat Sheet jq, JSON Processing Tool<div style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8c5lvx7H9R6mTPEpw2ah3xeOVTJvD3lIgRQvk1DSNf6GTIDyi1fc1IewuYH_ynBZdYzgb4TNSNnO4JIsQYd9d2LV1CJ5rbVK6IkVD-gVB8T-KIoDVqpU7jH4r9EFUqiLO-rS2lkRQGKs/s1600/jq-logo.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="220" data-original-width="400" height="70" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8c5lvx7H9R6mTPEpw2ah3xeOVTJvD3lIgRQvk1DSNf6GTIDyi1fc1IewuYH_ynBZdYzgb4TNSNnO4JIsQYd9d2LV1CJ5rbVK6IkVD-gVB8T-KIoDVqpU7jH4r9EFUqiLO-rS2lkRQGKs/s200/jq-logo.png" width="150" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>jq Tool</b></td></tr>
</tbody></table>
<span class="" id="result_box" lang="id"><span class="">JSON adalah format dokumen yang ringan dan digunakan pada </span></span><span class="" id="result_box" lang="id"><span class=""><span class="" id="result_box" lang="id"><span class="">hampir setiap layanan pertukaran</span></span></span></span><span class="" id="result_box" lang="id"><span class=""><span class="" id="result_box" lang="id"><span class=""> data</span></span>.</span> Selain itu JSON juga dapat digunakan sebagai konfigurasi suatu aplikasi atau sistem. </span><span class="" id="result_box" lang="id">JSON terdiri keys dan value, sedangkan elemennya bisa berbentuk array atau object. <span class=""><span style="font-family: "courier new" , "courier" , monospace;">jq</span> adalah aplikasi yang dapat digunakan pada CLI untuk memproses JSON. </span></span><br />
<a name='more'></a><br />
<span class="" id="result_box" lang="id"><span class="">Tool jq tersedia di repository bawaan di hampir semua distro Linux yang terkenal seperti Debian, Fedora, Centos dan Arch. Sehingga untuk menginstallnya dapat dilakukan dari package manager apt, dnf, packman, dan yast. <br /><br />Sedangkan untuk anda yang menggunakan sistem operasi lain seperti OSX, Windows, BSD atau Solaris, anda bisa mendownload dari situs resminya <a href="https://stedolan.github.io/jq/download/" target="_blank">disini</a>.</span></span><br />
<br />
<span class="" id="result_box" lang="id">Dan Berikut adalah catatan yang saya himpun selama belajar memproses JSON menggunakan tool <span style="font-family: "courier new" , "courier" , monospace;">jq</span> pada <span style="font-family: "courier new" , "courier" , monospace;">ubuntu server</span>.</span></div>
<div style="text-align: justify;">
<span class="" id="result_box" lang="id"></span><br /></div>
<div style="text-align: justify;">
Berikut ini adalah dokumentasi cheat sheet command untuk memproses file JSON menggunakan tool jq yang selama ini saya gunakan (akan saya update tiap saya menemukan perintah-perintah baru):<br />
<br />
Secara mudah atau cara bodohnya, pola perintah penggunaan jq adalah sebagai berikut :<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;"><span style="font-family: "courier new" , "courier" , monospace;">jq [query_json] [nama_file].json</span></pre>
Menampilkan konten file JSON secara keseluruhan<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">jq . [nama_file].json</span></span></span></span></span></pre>
Jika akar/root konten JSON adalah array bisa juga dengan perintah berikut<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow: auto; padding: 5px; width: auto; word-wrap: normal;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;"><span style="font-family: "courier new" , "courier" , monospace;">jq '.[]' file.json</span></span></span></span></span></pre>
Jika file json adalah object kita bisa mengambil value dari key dengan perintah<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">jq '.nama_key' file.json</span></pre>
Mengambil value-value pada array object JSON<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">jq '.nama_key[].nama_key' file.json</span></pre>
Mengambil value pada array object JSON dengan index nomor 5<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">jq '.nama_key[5].nama_key' file.json</span></pre>
Mengambil value pada array object JSON dengan index nomor 5, 9,12<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">jq '.nama_key[5,9,12].nama_key' file.json</span></pre>
Mengambil lebih dari satu value pada array object JSON. Contoh mengambil value index nomor 6 dan value dari key date<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">jq '.nama_key[6].nama_key, .date' file.json</span></pre>
Membuat output object mendatar<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">jq -c '.nama_key[5,9,12].nama_key' file.json</span></pre>
Contoh penggunaan jq untuk mengambil informasi dari sebuah kontainer dari output JSON. Mengambil port<br />
<pre style="background-color: #eff0f1; border: 0px; color: #111111; font-size: 13px; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 5px; width: auto;"><span style="font-family: "courier new" , "courier" , monospace;">docker inspect [nama_container]|jq '.[].Config.ExposedPorts| keys| .[]'</span></pre>
<br />
note : untuk melakukan cek atau sekedar melihat file JSON, bisa kita lakukan <a href="http://jsonviewer.stack.hu/" target="_blank">disini</a> dan <a href="http://www.jsoneditoronline.org/" target="_blank">dimari</a><br />
<br />
Referensi :<br />
<ul>
<li><a href="https://stedolan.github.io/">https://stedolan.github.io/</a></li>
</ul>
Playground :<br />
<ul>
<li><a href="https://jqplay.org/">https://jqplay.org/</a></li>
</ul>
</div>
Alfin Hidayathttp://www.blogger.com/profile/09993464448697964391noreply@blogger.com0