{"id":15173917,"url":"https://github.com/arfianz/autobash","last_synced_at":"2026-01-26T11:33:25.108Z","repository":{"id":132703477,"uuid":"237303671","full_name":"arfianz/autobash","owner":"arfianz","description":"Bash Script Otomasi Layanan Server","archived":false,"fork":false,"pushed_at":"2020-01-30T20:56:44.000Z","size":12238,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-30T21:45:33.462Z","etag":null,"topics":["apache2","bash","bash-script","cilsy","linux","mariadb-client","mariadb-database","mariadb-server","php7"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arfianz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-30T20:54:31.000Z","updated_at":"2020-01-30T20:57:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"830fb86e-894d-4545-8a4f-04748d979f9e","html_url":"https://github.com/arfianz/autobash","commit_stats":{"total_commits":1,"total_committers":1,"mean_commits":1.0,"dds":0.0,"last_synced_commit":"015e457100828abd31a51795b4c8a10abc7d88b8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arfianz%2Fautobash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arfianz%2Fautobash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arfianz%2Fautobash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arfianz%2Fautobash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arfianz","download_url":"https://codeload.github.com/arfianz/autobash/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239808533,"owners_count":19700454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache2","bash","bash-script","cilsy","linux","mariadb-client","mariadb-database","mariadb-server","php7"],"created_at":"2024-09-27T11:04:45.829Z","updated_at":"2026-01-26T11:33:20.074Z","avatar_url":"https://github.com/arfianz.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Big Project Mini Class Linux\nMerupakan tahap akhir dari pembelajaran Mini Class Linux yang diselenggarakan oleh cilsy.id\n\n[![made-with-bash](https://img.shields.io/badge/-Made%20with%20Bash-1f425f.svg?logo=image%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw%2FeHBhY2tldCBiZWdpbj0i77u%2FIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8%2BIDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE3MDg2QTAyQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE3MDg2QTAzQUZCMzExRTVBMkQxRDMzMkJDMUQ4RDk3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTcwODZBMDBBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTcwODZBMDFBRkIzMTFFNUEyRDFEMzMyQkMxRDhEOTciLz4gPC9yZGY6RGVzY3JpcHRpb24%2BIDwvcmRmOlJERj4gPC94OnhtcG1ldGE%2BIDw%2FeHBhY2tldCBlbmQ9InIiPz6lm45hAAADkklEQVR42qyVa0yTVxzGn7d9Wy03MS2ii8s%2BeokYNQSVhCzOjXZOFNF4jx%2BMRmPUMEUEqVG36jo2thizLSQSMd4N8ZoQ8RKjJtooaCpK6ZoCtRXKpRempbTv5ey83bhkAUphz8fznvP8znn%2B%2F3NeEEJgNBoRRSmz0ub%2FfuxEacBg%2FDmYtiCjgo5NG2mBXq%2BH5I1ogMRk9Zbd%2BQU2e1ML6VPLOyf5tvBQ8yT1lG10imxsABm7SLs898GTpyYynEzP60hO3trHDKvMigUwdeaceacqzp7nOI4n0SSIIjl36ao4Z356OV07fSQAk6xJ3XGg%2BLCr1d1OYlVHp4eUHPnerU79ZA%2F1kuv1JQMAg%2BE4O2P23EumF3VkvHprsZKMzKwbRUXFEyTvSIEmTVbrysp%2BWr8wfQHGK6WChVa3bKUmdWou%2BjpArdGkzZ41c1zG%2Fu5uGH4swzd561F%2BuhIT4%2BLnSuPsv9%2BJKIpjNr9dXYOyk7%2FBZrcjIT4eCnoKgedJP4BEqhG77E3NKP31FO7cfQA5K0dSYuLgz2TwCWJSOBzG6crzKK%2BohNfni%2Bx6OMUMMNe%2Fgf7ocbw0v0acKg6J8Ql0q%2BT%2FAXR5PNi5dz9c71upuQqCKFAD%2BYhrZLEAmpodaHO3Qy6TI3NhBpbrshGtOWKOSMYwYGQM8nJzoFJNxP2HjyIQho4PewK6hBktoDcUwtIln4PjOWzflQ%2Be5yl0yCCYgYikTclGlxadio%2BBQCSiW1UXoVGrKYwH4RgMrjU1HAB4vR6LzWYfFUCKxfS8Ftk5qxHoCUQAUkRJaSEokkV6Y%2F%2BJUOC4hn6A39NVXVBYeNP8piH6HeA4fPbpdBQV5KOx0QaL1YppX3Jgk0TwH2Vg6S3u%2BdB91%2B%2FpuNYPYFl5uP5V7ZqvsrX7jxqMXR6ff3gCQSTzFI0a1TX3wIs8ul%2Bq4HuWAAiM39vhOuR1O1fQ2gT%2F26Z8Z5vrl2OHi9OXZn995nLV9aFfS6UC9JeJPfuK0NBohWpCHMSAAsFe74WWP%2BvT25wtP9Bpob6uGqqyDnOtaeumjRu%2ByFu36VntK%2FPA5umTJeUtPWZSU9BCgud661odVp3DZtkc7AnYR33RRC708PrVi1larW7XwZIjLnd7R6SgSqWSNjU1B3F72pz5TZbXmX5vV81Yb7Lg7XT%2FUXriu8XLVqw6c6XqWnBKiiYU%2BMt3wWF7u7i91XlSEITwSAZ%2FCzAAHsJVbwXYFFEAAAAASUVORK5CYII%3D)](https://www.gnu.org/software/bash/)  [![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity)  [![Ask Me Anything !](https://img.shields.io/badge/Ask%20me-anything-1abc9c.svg)](https://GitHub.com/Naereen/ama)  [![made-with-Markdown](https://img.shields.io/badge/Made%20with-Markdown-1f425f.svg)](http://commonmark.org)  [![Documentation Status](https://readthedocs.org/projects/ansicolortags/badge/?version=latest)](http://ansicolortags.readthedocs.io/?badge=latest)  [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/dwyl/esta/issues)  [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)  [![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)  [![Analytics](https://ga-beacon.appspot.com/UA-38514290-17/github.com/Naereen/badges/README.md)](https://GitHub.com/Naereen/badges/)\n\n**Learning Outcome**, setelah menyelesaikan big project ini adalah peningkatan kemampuan dalam:\n\n- Merancang topologi untuk infrastruktur server yang akan digunakan\n- Membuat program otomasi untuk installasi layanan server dengan bash\n- Menjakankan lebih dari satu web dan domain didalam sserver\n- Dapat memanfaatkan git untuk penyimpanan proyek aplikasi\n- Dapat melakukan setup wordpress dengan infrastruktur server sendiri\n- Dapat memeriksa log yang ada pada sebuah layanan server\n\n## 1. Requirement\nBig Project ini memuat semua materi yang sudah dipelajari selama beberapa pekan terakhir, berikut beberapa requirement yang harus dikerjakan.\n- Topologi untuk infrastruktur server\n- Bash script untuk otomasi layanan\n- 3 buat virtual host dengan aplikasi wordpress\n\n## 2. Goal\nAdalah dapat membuat sebuah infrastruktur server on premises sederhana, yaitu layanan webserver dan database server untuk Web Wordpress. Agar memudahkan installasi, Infrastruktur yang dibuat harus dibangun secara automasi dengan script   bash, agar ketika nanti membuat infrastruktur yang sama hanya cukup menjalankan script dan web wordpress di simpan di repository Github/Gitlab. Selain itu dengan adanya virtual host dapat membuat beberapa web berjalan dalam satu server, dan dapat melakukan checking pada log yang ada pada sebuah layanan aplikasi.\n\n## 3. Metode dan Desain\n\nMetode yang digunakan dalam pelaksanaan Big-Project ini adalah menggunakan Virtualisasi, dimana PC/Laptop peserta ditambahkan Hypervisor supaya dapat dipasang Virtual Machine (VM, mesin virtual).\n\nMetode virtualisasi dapat dilihat dari gambar berikut:\n\n\u003cimg src=\"./img/big-vm.png\" align=\"center\" width=\"300\"/\u003e\n\nDesain dari Big Project dapat dilihat dari gambar berikut:\n\n\u003cimg src=\"./img/big-logical.png\" align=\"center\" width=\"500\"/\u003e\n\n**Penjelasan:** Pada PC/Laptop peserta yang sudah terinstal aplikasi mesin virtual (seperti Oracle Virtualbox atau VMWare Workstation. Kemudian disiapkan 1 buah virtual mesin dengan OS Ubuntu 18.04 (dalam hal ini memakai Ubuntu Server).\nKonfigurasi jaringan di virtualbox untuk VM tersebut menggunakan mode Bridge (supaya bisa diakses juga oleh PC/User lain dalam jaringan).\n\nUntuk memudahkan proses pengetesan Big-Project ini, maka dilakukan konfigurasi jaringan untuk VM Ubuntu Server, mode jaringan yang dipilih adalah mode Bridge, dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-bridge.png\" align=\"center\" width=\"500\"/\u003e\n\nProses selanjutnya adalah menyalakan mesin virtual dan dilanjutkan dengan proes instalasi yang sama seperti melakukan instalasi server fisik. Untuk memudahkan proses selanjutnya, maka pada opsi pemilihan paket, maka opsi instalasi OpenSSH agar dipilih, dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-openssh.png\" align=\"center\" width=\"500\"/\u003e\n\nTopologi akhir dari Big Project dapat dilihat dari gambar berikut:\n\n\u003cimg src=\"./img/big-topologi.png\" align=\"center\" width=\"500\"/\u003e\n\n**Penjelasan:** Setelah VM Ubuntu menyala, secara logikal topologi antara PC/Laptop User/Host dengan VM Ubuntu seperti gambar diatas. Seolah-olah ada 2 mesin (PC/Laptop dan Server) yang terhubung melalui switch dalam sebuah jaringan dan juga terhubung ke Internet.\n\nBerikut adalah tampilan layar VM Ubuntu Server yang sudah selesai di instalasi:\n\n\u003cimg src=\"./img/big-vm-ubuntu.png\" align=\"center\" width=\"500\"/\u003e\n\nLangkah-langkah selanjutnya dilakukan dari PC/Laptop User ke VM Ubuntu Server melalui SSH (Secure Shell).\n\nDari layar VM Ubuntu Server, lakukan pengecekan alamat IP, dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-ip.png\" align=\"center\" width=\"500\"/\u003e\n\nDari gambar diatas, diketahui alamat IP dari VM Ubuntu Server adalah: 10.100.0.246\n\nKemudian dari Terminal di PC/Laptop User, lakukan ssh ke VM Ubuntu Server dengan perintah\n\n```bash\nssh 'username'@'ip_vm_ubuntu_server'\n-----dalam hal ini:-----\n\nssh administrator@10.100.0.246\n```\n\nDapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-ssh-vm.png\" align=\"center\" width=\"500\"/\u003e\n\nApabila sudah terhubung ke VM Ubuntu Server, selanjutnya adalah melakukan tahapan instalasi menggunakan bash script.\n\n## 4. Langkah otomasi server\n\n### 4.1. Langkah pertama adalah clone repo ini\n\n```bash\ncd ~\ngit clone https://github/com/arfianz/autobash\n```\n\n### 4.2. Web Server\nLangkah kedua adalah update system file dan install webserver (Apache2 + PHP)\n\n```bash\ncd ~/autobash\nchmod +x 01-webserver.sh\n./01-webserver.sh\n```\nProgres script bash dalam melakukan otomasi instalasi dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-webserver.png\" align=\"center\" width=\"500\"/\u003e\n\nDan hasil instalasi webserver, dapat diakses dari PC/Laptop User dengan mengakses alamat IP dari mesin virtual, seperti yang terlihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-apache.png\" align=\"center\" width=\"500\"/\u003e\n\n\u003cimg src=\"./img/big-phpinfo.png\" align=\"center\" width=\"500\"/\u003e\n\n### 4.3. Database Server\nLangkah ketiga adalah melakukan instalasi database servr\n\n```bash\ncd ~/autobash\nchmod +x 02-dbserver.sh\n./02-dbserver.sh\n```\nProgres script bash dalam melakukan otomasi instalasi dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-dbserver.png\" align=\"center\" width=\"500\"/\u003e\n\n### 4.4. Aplikasi\nLangkah keempat adalah melakukan instalasi aplikasi wordpress untuk 3 virtual hosts\n\n```bash\ncd ~/autobash\nchmod +x 03-webapp.sh\n./03-webapp.sh\n```\nProgres script bash dalam melakukan otomasi instalasi dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-webapps.png\" align=\"center\" width=\"500\"/\u003e\n\n\u003cimg src=\"./img/big-docroot.png\" align=\"center\" width=\"500\"/\u003e\n\n### 4.5. Virtual Hosts\nLangkah kelima adalah konfigurasi virtual host web server\n\n```bash\ncd ~/autobash\nchmod +x 04-virtualhost.sh\n./04-virtualhost.sh\n```\nProgres script bash dalam melakukan otomasi instalasi dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-virtualhosts.png\" align=\"center\" width=\"500\"/\u003e\n\nDapat dilihat juga di PC/Laptop User dilakukan konfigurasi file /etc/hosts dengan menambahkan record alamat IP VM.\n\n### 4.6. Membuat Database\n\nUntuk keperluan aplikasi wordpress, diperlukan database. Maka dari itu dibuatkan script bash untuk membuat database secara otomatis.\n\nPerintah untuk membuat database adalah : ```shell scriptbash \u003cnamadb\u003e \u003cpassworddb\u003e```\n\n```bash\ncd ~/autobash\nchmod +x 05-createdb.sh\n./05-createdb.sh arfian arfianpass\n./05-createdb.sh kelas kelaspass\n./05-createdb.sh mini minipass\n```\nProgres script bash dalam melakukan otomasi instalasi dapat dilihat dari gambar dibawah ini:\n\n\u003cimg src=\"./img/big-createdb.png\" align=\"center\" width=\"500\"/\u003e\n\n### 4.7. Konfigurasi Aplikasi\n\nAplikasi wordpress memerlukan konfigurasi awal seperti memasukkan nilai database dan menambahkan file wp-config.php.\n\nGambar berikut adalah konfigurasi database untuk salah satu aplikasi wordpress:\n\n\u003cimg src=\"./img/big-config-wp.png\" align=\"center\" width=\"500\"/\u003e\n\nDari hasil pengisian nilai database, maka aplikasi wordpress akan meminta kita untuk menambahkan file wp-config yang isinya sesuai dengan yang diberikan oleh aplikasi, seperti gambar dibawah ini:\n\n\u003cimg src=\"./img/big-arfian-wp-config.png\" align=\"center\" width=\"500\"/\u003e\n\nKedua langkah konfigurasi diatas dilakukan untuk ketiga aplikasi (arfian, kelascilsy dan miniclass).\n\n### 4.8. Pengetesan Aplikasi\n\nSetelah proses konfigurasi selesai, maka kita bisa melakukan pengetesan ketiga aplikasi tersebut melalui browser dari PC/Laptop User.\n\nTampilan aplikasi arfian.local:\n\n\u003cimg src=\"./img/big-arfian.png\" align=\"center\" width=\"500\"/\u003e\n\nTampilan aplikasi kelascilsy.local:\n\n\u003cimg src=\"./img/big-kelas.png\" align=\"center\" width=\"500\"/\u003e\n\nTampilan aplikasi miniclass.local:\n\n\u003cimg src=\"./img/big-mini.png\" align=\"center\" width=\"500\"/\u003e\n\n### 4.9. Monitoring Logs\n\nUntuk melakukan monitoring web server, maka kita bisa melakukannya dengan menganalisa log yang dihasilkan oleh webserver. Gambar dibawah ini menunjukkan Log Akses yang dihasilkan oleh Apache WebServer.\n\n\u003cimg src=\"./img/big-log-arfian.png\" align=\"center\" width=\"500\"/\u003e\n\n\u003cimg src=\"./img/big-log-kelas.png\" align=\"center\" width=\"500\"/\u003e\n\n\u003cimg src=\"./img/big-log-mini.png\" align=\"center\" width=\"500\"/\u003e\n\n\n\n## Demikian Hasil Big-Project Mini Class Linux\n\n\n\n## LICENSE\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farfianz%2Fautobash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farfianz%2Fautobash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farfianz%2Fautobash/lists"}