How to resize partition on Windows Server 2012 (R2)?
Windows Server 2012, codenamed “Windows Server 8”, is the sixth release of Windows Server. It is the server version of Windows 8 and succeeds Windows Server 2008 R2. Various features were added or improved over Windows Server 2008 R2 (with many placing an emphasis on cloud computing), such as an updated version of Hyper-V, an IP address management role, a new version of Windows Task Manager, and ReFS – a new file system.
To many computer users especially server administrators, it is a headache when the disk partitions become full. You can simply insert new hard disk drives to store data files, but how about the system partition? Waste the whole weekend to start over? NO, in this article I’ll show you how to resize volume in Windows Server 2012 directly, keeping Operating System, applications and all files intact.
Partition resizing under Disk Management
I don’t want to talk more about the new features of Windows Server 2012, I always keep focus on its disk partition management ability. Actually, nothing new is added in this edition. In terms of changing a disk drive size, Disk Management console has such ability indeed, you can shrink and extend a disk drive in few steps.
However, you cannot extend a drive by shrinking another one, for example, if you want to shrink D with “Shrink Volume” to release some free Unallocated space, and then add to C drive with “Extend Volume”, impossible! If you want to resize disk partition on Windows Server 2012, you still need 3rd party partitioning software.
Easier way to resize partition on Server 2012
The reason why there are so many 3rd party applications is because Microsoft Windows is just a platform and it cannot do everything.
Partition resizing means change the existing partition size directly, of course without losing data. About disk partition resizing, the task becomes much easier if you select right partitioning software. To better explain how it works, let’s open “My Computer” and “Disk Management” console. (Note: everything about “My Computer” and “Disk Management” below is to check what happens and it is not required steps to resize disk drives.)
Press “Windows” and “E” on keyboard to open “My Computer”, where you’ll see the disk partitions and their free space.
However, you cannot see the hard disk layout in “My Computer”, if there are many drives there, it is hard to find out which drives are on the same hard disk (no partition software can resize partitions beyond 2 physical hard disk). It is better to open Disk Management console. (To open it, right click the Windows icon on the bottom left and select “Disk Management”.)
In Windows Server 2012 Disk Management console, you’ll see more detailed information, such as disk partition layout, partition type, partition capacity and free space, etc.
Steps to resize volume on Windows Server 2012 (R2)
The goal is to extend C: drive by taking free space from other drives.
Step 2: In the pop-up window, drag the left border rightwards to generate free Unallocated space.
You may also input a value for the Unallocated space directly.
Click OK and back to the main window, where you’ll see 20GB Unallocated space created behind C: drive.
Step 3: Right click C drive and select “Resize/Move Volume”. In the pop-up window, drag the right border rightwards to hold the Unallocated space.
Step 4: Click OK and back to the main window, where you’ll see C drive extended to 60GB by robbing 20GB free space from D. Press Apply on top left to execute, done!
Data is most important to a server, so you’d better select a reliable partition software. A bad designed program is very likely to cause system failure or data loss. It cost several hours to a whole day to restore, verify data and back everything to normal even if you have backup.
NIUBI Partition Editor integrated unique Roll-Back protection technology, which is able to automatically roll back the server to the status before resizing in ONE second, if any software error or hardware issue such as power failure occur during resizing partition, so you don’t need to worry about Operating System and data safety. Furthermore, it is 30% – 300% faster than ANY other tools by strictly testing, because of its unique file-moving algorithm.
"Cacti is a complete network graphing solution designed to harness the power of RRDTool's data storage and graphing functionality. Cacti provides a fast poller, advanced graph templating, multiple data acquisition methods, and user management features out of the box. All of this is wrapped in an intuitive, easy to use interface that makes sense for LAN-sized installations up to complex networks with hundreds of devices."
** -p 161:161 ==> remove to make sure you can monitor container and server running the container , this second more important to be able to monitoring all network interface of the server.
Set the timezone per environment variable:
-e TZ=Europe/London
or in yml:
environment:
- TZ=Europe/London
Default value is America/New_York .
Accessing the Cacti applications:
After that check with your browser at addresses plus the port assigined by docker:
Them you can log-in admin/admin, Please change the password and when installing double check the path to Spine binary that suppose to be /usr/local/spine/bin/spine.
Configuring Spine :
Go to Configuration -> Settings and click on the Paths tab.
Under the Alternate Poller Path, set the following:
Last is to make spine the active poller. Switch to the Poller tab and click on the drop down menu for Poller Type.Select spine and click save in the bottom right.
To install plugins on cacti :
To access the container from the server that the container is running
$ docker exec -it container_id /bin/bash
change directory to plugins directory of the cacti
Pada artikel Belajar Vagrant, penulis sudah menulis sedikit mengenai tool - tool yang mempermudah kita dalam development sebuah aplikasi. Salah satu tool tersebut adalah vagrant, pada artikel sebelumnya penulis telah membahas mengenai berbagai masalah yang terjadi pada saat development sebuah aplikasi. Pada artikel ini, penulis akan mencoba membahas mengenai teknologi baru yang patut dicoba karena teknologi ini merupakan salah satu teknologi yang akan digunakan pada masa depan :D, teknologi itu adalah docker.
Apa Itu Docker ?
Docker adalah sebuah project open source yang ditujukan untuk developer atau sysadmin untuk membangun, mengemas dan menjalankan aplikasi dimana pun di dalam sebuah container.
Mungkin anda sedikit bingung dengan pengertian diatas dikarenakan terlalu sulit untuk membayangkan bagaimana pengembangan aplikasi yang sebenarnya. Docker berfungsi sebagai virtualisasi sebuah sistem operasi atau sebuah server atau sebuah web server atau bahkan sebuah database server, dimana dengan menggunakan virtualisasi ini, diharapkan developer dapat mengembangkan aplikasi sesuai dengan spesifikasi server atau dengan kata lain, jika kita mengembangkan sebuah aplikasi lalu kita jalankan pada komputer kita sendiri maka secara otomatis aplikasi akan berjalan dengan baik, nah bagaimana jika server yang akan menjalankan aplikasi kita memiliki banyak perbedaan dengan komputer kita seperti perbedaan sistem operasi, arsitektur processor dan sebagainya. Dengan menggunakan virtualisasi ini maka para developer lebih mudah untuk mengatur mengenai deployment atau menjalankan aplikasi di server production.
Sebelum kita membahas mengenai docker lebih lanjut, kita akan mencoba membahas sedikit mengenai docker dan vagrant. Docker dan vagrant merupakan tool yang sama atau dapat dikatakan merupakan tool developer yang mempunyai fungsi yang sama, akan tetapi meski memiliki fungsi yang sama terdapat beberapa perbedaan sehingga kita perlu menentukan tool yang terbaik untuk melakukan development sebuah aplikasi. Beberapa perbedaan dapat dilihat melalui tabel berikut.
gambar diatas dapat anda lihat disini. Dari gambar dapat dilihat bahwa terdapat banyak sekali perbedaan antara docker dan vagrant. Perbedaan yang sangat mencolok adalah docker menggunakan resource atau memory yang lebih sedikit ketimbang vagrant, ini dapat dilihat dari penggunaaan RAM, penggunaan images sistem operasi dan juga dapat dilihat perbedaannya, jika menggunakan vagrant maka kita wajib melakukan instalasi virtual machine seperti virtual box atau vmware, berbeda dengan docker menggunakan linux container sehingga kita tidak perlu melakukan instalasi virtual machine.
Arsitektur Docker
Gambar diatas merupakan arsitektur docker, dimana docker terdiri dari beberapa element yaitu docker client, docker daemon, docker container, docker images dan docker registry. Docker menggunakan teknologi client server untuk menghubungkan antara docker client dan docker daemon. Penulis akan menjelaskan sedikit mengenai istilah - istilah penting pada docker.
Docker Daemon
Docker daemon berfungsi untuk membangun, mendistribusikan dan menjalankan container docker. User tidak dapat langsung menggunakan docker daemon, akan tetapi untuk menggunakan docker daemon maka user menggunakan docker client sebagai perantara atau cli.
Docker Images
Docker images adalah sebuah template yang bersifat read only. Template ini sebenarnya adalah sebuah OS atau OS yang telah diinstall berbagai aplikasi. Docker images berfungsi untuk membuat docker container, dengan hanya 1 docker images kita dapat membuat banyak docker container.
Docker Container
Docker container bisa dikatakan sebagai sebuah folder, dimana docker container ini dibuat dengan menggunakan docker daemon. Setiap docker container disimpan maka akan terbentuk layer baru tepat diatas docker images atau base image diatasnya. Contohnya misalkan kita menggunakan image ubuntu, kemudian kita membuat sebuah container dari image ubuntu tersebut dengan nama ubuntuku, kemudian kita lakukan instalasi sebuah software misalnya nginx maka secara otomatis container ubuntuku akan berada diatas layer image atau base image ubuntu. Anda dapat membuat banyak docker container dari 1 docker images. Docker container ini nantinya dapat dibuild sehingga akan menghasilkan sebuah docker images, dan docker images yang dihasilkan dari docker container ini dapat kita gunakan kembali untuk membuat docker container yang baru.
Docker Registry
Docker registry adalah kumpulan docker image yang bersifat private maupun public yang dapat anda akses di docker hub. Dengan menggunakan docker registry, anda dapat menggunakan docker image yang telah dibuat oleh developer yang lain, sehingga mempermudahkan kita dalam pengembangan aplikasi.
Instalasi Docker
Untuk melakukan instalasi docker, silahkan update terlebih dahulu repository ubuntu anda dengan perintah.
Kemudian lakukan update CA certificates dengan perintah.
Kemudian tambahkan GPG key dengan perintah.
Lalu silahkan lakukan verifikasi fingerprint dengan perintah
Jika berhasil maka akan muncul output seperti berikut
Lalu tambahan repo docker seperti berikut
Kemudian silahkan lakukan update kembali dengan perintah.
Kemudian silahkan hapus docker yang lama jika anda pernah melakukan instalasi docker versi lama dengan perintah.
Lalu silahkan jalankan perintah berikut untuk melakukan instalasi docker.
lalu lakukan pengecekan status service docker dengan perintah.
jika berhasil maka akan muncul output seperti berikut.
Agar kita dapat menggunakan docker tanpa sudo maka kita harus melakukan beberapa konfigurasi. Silahkan buat docker group dengan perintah berikut.
kemudian tambahkan user ke docker group dengan perintah.
silahkan ganti rizki dengan user linux anda. Lalu silahkan restart komputer anda. Kita akan melakukan test docker dengan perintah.
Jika berhasil maka anda akan melihat output seperti gambar berikut.
Instalasi Docker Compose
Setelah melakukan instalasi docker engine atau core docker, langkah selanjutnya kita akan melakukan instalasi docker compose, apa itu docker compose ?
Docker compose berfungsi untuk menjalankan container docker secara bersamaan.
docker compose ini sangat berguna ketika aplikasi kita terpisah - pisah pada komputer yang berbeda, contohnya adalah aplikasi yang dibuat berada pada 1 container sedangkan database yang akan digunakan oleh aplikasi tersebut berada pada container yang lain. Ketika menggunakan docker compose maka kita dapat menjalankan kedua container tersebut secara bersamaan dan bahkan kita dapat melakukan link ke container yang kita inginkan.
Untuk melakukan instalasi docker compose silahkan jalankan perintah berikut untuk melakukan akses root.
kemudian jalankan perintah berikut.
Setelah selesai lalu beri hak akses eksekusi dengan perintah.
Lalu agar docker compose dapat diakses tanpa root, silahkan jalankan perintah berikut.
Kemudian lakukan pengecekan docker compose dengan perintah
Jika berhasil maka akan muncul output seperti berikut.
Latihan Sails JS dengan Docker
Untuk mempercepat latihan, kita akan mencoba menggunakan Sails JS, apa itu Sails JS ?
Sails JS adalah salah satu framework mvc untuk node js.
Sails JS merupakan framework yang dikembangkan dari framework express js, dengan menggunakan scaffolding dari Sails JS maka Sails JS akan secara otomatis membuat project tanpa perlu membuat project dari awal. Sails JS telah menggunakan salah satu framework orm node js yaitu waterline sehingga mempermudah kita untuk melakukan migrasi antar database. Dan salah satu keunggulan dari Sails JS adalah mudahnya membuat API dengan menggunakan arsitektur REST.
Pada artikel ini, kita hanya akan membuat sebuah REST API dengan menggunakan Sails JS, dimana kita akan menggunakan database mariadb. Antara aplikasi dan database akan dibuatkan dua container yang berbeda, berikut adalah gambar arsitektur yang akan kita gunakan.
Setelah mengetahui arsitektur yang akan kita gunakan, hal yang pertama kali kita lakukan sekarang adalah melakukan instalasi Sails JS pada pc kita terlebih dahulu, karena Sails JS merupakan framework node js maka kita membutuhkan instalasi node js, bagi anda yang belum melakukan instalasi node js, silahkan lihat artikel instalasi perlengkapan coding node js . Untuk melakukan instalasi Sails JS silahkan jalankan perintah berikut.
Setelah selesai, kita akan membuat sebuah project dengan perintah.
Jika sudah, maka sails akan secara otomatis membuat sebuah project dengan nama Belajar-Docker-SailsJS. Kemudian silahkan buka dengan editor anda. Berikut adalah struktur folder projectnya.
Secara default, Sails JS menggunakan database local atau embedded database, karena kita ingin menggunakan database mariadb maka kita perlu melakukan instalasi module sails-mysql dengan perintah.
Kemudian silahkan buka file connections.js yang ada di dalam folder config lalu kita akan melakukan konfigurasi untuk koneksi ke database mariadb pada bagian berikut.
Karena kita belum mengetahui variabel apa saja yang dapat kita gunakan untuk melakukan koneksi database ke mariadb maka kita terlebih dahulu akan melakukan testing membuat container baru untuk mengetahui variabel environment dari database mariadb. Untuk membuat sebuah container silahkan jalankan perintah berikut.
Perintah diatas berfungsi untuk membuat sebuah container baru dengan nama latihan-container-mariadb, dimana container ini kita buat berdasarkan image mariadb dengan versi 10.1.16 dan pada saat pembuatan container ini, kita dapat melakukan set environment seperti database, password user dan lain sebagainya. Jika anda belum memiliki image mariadb maka secara otomatis, docker akan melakukan pull images mariadb yang berasal dari docker hub.
Jika telah berhasil, silahkan lakukan pengecekan docker image dengan perintah.
Jika berhasil maka akan muncul output seperti berikut.
kemudian lakukan pengecekan container dengan perintah.
Jika berhasil maka akan muncul output seperti berikut.
Anda juga dapat mengecek container mana saja yang sedang jalan dengan menggunakan perintah.
Langkah selanjutnya kita akan membuat sebuah container untuk aplikasi, dimana nantinya aplikasi ini akan melakukan koneksi ke mariadb yang berada pada container sebelumnya. Silahkan jalankan perintah berikut untuk membuat container aplikasi.
Perintah diatas berfungsi untuk membuat container dengan nama latihan-container-aplikasi, dimana container ini melakukan link ke container latihan-container-mariadb, container ini menggunakan image node:6.3.1. Setelah jalan, maka anda dapat melakukan akses container melalui terminal anda, lalu silahkan lakukan pengecekan environment mariadb dengan perintah.
Jika berhasil maka akan muncul output seperti berikut.
Setelah mengetahui variabel environment nya, kita balik lagi ke aplikasinya. Silahkan ubah codingan yang ada di dalam file connections.js seperti berikut.
Selanjutnya silahkan buka file models.js di dalam folder config lalu ubah codingannya menjadi seperti berikut.
Setelah selesai melakukan semua konfigurasi tersebut, langkah selanjutnya adalah kita akan mencoba membuat API, untuk membuat API dengan menggunakan sails, silahkan jalankan perintah berikut.
maka secara otomatis sails akan membuat controller dan model, silahkan buka file Barang.js di dalam folder models kemudian ubah codingannya menjadi seperti berikut.
Codingan diatas tidak akan penulis bahas dikarenkan nanti akan penulis jelaskan pada artikel berikutnya :). Langkah selanjutnya silahkan buat sebuah file Dockerfile di dalam root folder, kemudian isikan codingan seperti berikut.
Untuk dockerfile terdapat beberapa perintah yaitu.
ADD : biasanya digunakan untuk melakukan copy file atau folder ke suatu direktory
CMD : berfungsi untuk menjalankan sebuah perintah yang spesifik
ENV : berfungsi untuk mendeklarasikan environment variabel
FROM : berfungsi untuk mendeklarasikan base image yang akan digunakan.
WORKDIR : berfungsi untuk mendefinisikan folder yang akan kita gunakan.
MAINTAINER : berfungsi untuk mendeklarasikan nama author
RUN : berfungsi untuk menjalankan perintah - perintah bash
Nah dari perintah - perintah diatas, penulis akan mendefinisikan arti dari codingan diatas.
baris 1 : berfungsi untuk mendeklarasikan bahwa kita menggunakan image node dengan versi 6.3.1
baris 2 : berfungsi untuk melakukan update dan instalasi software wget
baris 3 : berfungsi untuk mendeklarasikan environment dockerize
baris 4 : berfungsi untuk menjalankan perintah wget
baris 5 : berfungsi untuk melakukan instalasi sails
baris 6 : berfungsi untuk membuat folder/direktory untuk project
baris 7 : berfungsi untuk mendefiniskan folder yang akan kita gunakan
baris 8 : berfungsi untuk mengcopy seluruh file ke dalam folder belajar-sailsjs-docker
baris 9 : berfungsi untuk menghapus folder node_modules
baris 19 : berfungsi untuk melakukan instal dependency yang diperlukan oleh project
Karena kita tidak ingin file - file node_modules, .tmp dicopy ke docker maka kita perlu membuat file dockerignore. Silahkan buat sebuah file .dockerignore lalu isikan codingan seperti berikut.
Setelah selesai, langkah selanjutnya kita akan membuat konfigurasi docker-compose, untuk membuat konfigurasi docker-compose silahkan buat sebuah file docker-compose.yml pada root project lalu isikan dengan codingan berikut.
Bisa dilihat bahwa kita menggunakan konfigurasi docker compose versi 1, di dalam konfigurasi tersebut terdapat dua service/container yang akan dijalankan yaitu mariadb dan belajar-sailsjs-docker. Container belajar-sailsjs-docker mempunyai link terhadap container mariadb, sehingga container mariadb wajib dijalankan terlebih dahulu. Agar container mariadb dapat dijalankan terlebih dahulu maka kita dapat menggunakan dockeriza, aplikasi sails harus dijalankan dengan perintah sails lift maka di dalam command kita menggunakan perintah sails lift. Pada codingan diatas kita menggunakan perintah sh ./install.sh karena kita membutuhkan beberapa command bash, maka silahkan anda buat sebuah file install.sh di dalam root project, lalu masukkan codingan seperti berikut.
Setelah selesai, langkah selanjutnya kita akan melakukan build image terlebih dahulu dengan perintah.
perintah diatas akan membuat sebuah image dengan nama rizki.mufrizal/belajar-docker-sailsjs dimana image ini dibuild berdasarkan konfigurasi dari file Dockerfile. Lalu selanjutnya kita akan menjalankan 2 container secara sekaligus dengan menggunakan docker compose, silahkan jalankan perintah berikut.
Silahkan tunggu hingga aplikasi berjalan, jika berhasil maka akan muncul output seperti berikut.
NOTE : jika masih terdapat error pada saat docker compose dijalankan, silahkan matikan kedua container tersebut dengan perintah ctrl + c kemudian jalankan kembali docker tersebut, hal ini disebabkan karena konfigurasi mariadb pada saat pertama kali dijalankan memerlukan waktu yang lebih lama dibandingkan dengan start up aplikasi sails.
Menghapus Image Dan Container
Jika anda tidak memerlukan lagi docker image, anda dapat menghapusnya berdasarkan ID image, misalnya penulis menjalankan perintah.
Jika berhasil maka akan muncul output seperti berikut.
untuk menghapus image tersebut, anda dapat menggunakan perintah.
untuk menghapus seluruh image, anda dapat menggunakan perintah.
Untuk container juga sama, hanya saja container menggunakan sintak yang berbeda, jika image menggunakan perintah rmi maka container menggunakan perintah rm, akan tetapi jika container masih aktif maka anda perlu mematikan container terlebih dahulu dengan perintah stop. Comtohnya jika penulis menjalankan perintah.
maka akan muncul output
anda dapat mematikannya dengan perintah.
lalu menghapus container tersebut dengan perintah
untuk mematikan seluruh container, anda dapat menggunakan perintah.
untuk menghapus seluruh container, anda dapat menggunakan perintah.
Uji Coba Aplikasi
Setelah panjang nulis artikel, akhirnya kita dapat melakukan uji coba :D. Untuk melakukan uji coba aplikasi, silahkan akses http://localhost:1337 pada browser anda, jika berhasil maka akan muncul output seperti gambar berikut.
Ini artinya, aplikasi yang telah kita buat telah berjalan dengan baik. Langkah selanjutnya kita akan melakukan uji coba REST API nya, silahkan buka postman, lalu konfigurasikan seperti berikut.
Lalu tekan tombol send, maka data akan tersimpan, untuk mengetahui apakah data telah disimpan atau tidak silahkan akses http://localhost:1337/barang pada browser anda, jika berhasil maka akan muncul output seperti gambar berikut.
Bagi anda yang ingin melihat contoh project docker yang lain, silahkan lihat di Belajar Docker. Sekian artikel mengenai belajar docker dan terima kasih :)