{"id":2459,"date":"2025-04-26T09:54:07","date_gmt":"2025-04-26T09:54:07","guid":{"rendered":"https:\/\/wiki.xontel.com\/docs\/xontel-callcenter-documentation\/installation\/ubuntu-installation\/"},"modified":"2025-04-26T10:09:50","modified_gmt":"2025-04-26T10:09:50","slug":"ubuntu-installation","status":"publish","type":"docs","link":"https:\/\/wiki.xontel.com\/ar\/docs\/xontel-callcenter-documentation\/installation\/ubuntu-installation\/","title":{"rendered":"ubuntu installation"},"content":{"rendered":"<h1 class=\"wp-block-heading\" id=\"ee65\">Installing Ubuntu 20.04 Server<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"c0fa\"><a href=\"https:\/\/medium.com\/m\/signin?actionUrl=https%3A%2F%2Fmedium.com%2F_%2Fbookmark%2Fp%2Fdd477077cfbf&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2F%40Drewbernetes%2Finstalling-ubuntu-20-04-server-dd477077cfbf&amp;source=---header_actions--dd477077cfbf---------------------bookmark_footer------------------\"><\/a><\/h2>\n\n\n\n<p><a href=\"https:\/\/medium.com\/m\/signin?actionUrl=https%3A%2F%2Fmedium.com%2Fplans%3Fdimension%3Dpost_audio_button%26postId%3Ddd477077cfbf&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2F%40Drewbernetes%2Finstalling-ubuntu-20-04-server-dd477077cfbf&amp;source=---header_actions--dd477077cfbf---------------------post_audio_button------------------\"><\/a><a href=\"https:\/\/medium.com\/m\/signin?actionUrl=https%3A%2F%2Fmedium.com%2Fplans%3Fdimension%3Dpost_audio_button%26postId%3Ddd477077cfbf&amp;operation=register&amp;redirect=https%3A%2F%2Fmedium.com%2F%40Drewbernetes%2Finstalling-ubuntu-20-04-server-dd477077cfbf&amp;source=---header_actions--dd477077cfbf---------------------post_audio_button------------------\"><\/a><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*yRm8iqrrXUV-SFz_ES77Dw.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Ubuntu Logo<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"083b\">Introduction<\/h1>\n\n\n\n<p id=\"345d\">This guide is to help people set up and configure a basic Ubuntu server from start to finish. It will go into quite a bit of detail including software RAID and LVM and as such if you don\u2019t have at least 2 disks available then you may not be able to follow along exactly; that doesn\u2019t mean you can\u2019t follow along though!<\/p>\n\n\n\n<p id=\"4adf\">I\u2019m going to presume you have a physical PC\/server or virtual machine on which you wish to install Ubuntu.<\/p>\n\n\n\n<p id=\"f8d9\">If you\u2019re using a physical machine then you\u2019ll need to&nbsp;<a href=\"https:\/\/releases.ubuntu.com\/20.04.3\/ubuntu-20.04.3-live-server-amd64.iso\" rel=\"noreferrer noopener\" target=\"_blank\">download the ISO<\/a>&nbsp;and put it onto a USB stick or CD so that you can install Ubuntu. There are plenty of guides online on how you can achieve this; however two quick examples for USB sticks are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Linux: Run in a terminal&nbsp;<code>sudo dd if=\/path\/to\/ubuntu.iso of=\/dev\/USB_Device<\/code><\/li>\n\n\n\n<li>Windows: You can use&nbsp;<a href=\"https:\/\/www.pendrivelinux.com\/universal-usb-installer-easy-as-1-2-3\/\" target=\"_blank\" rel=\"noreferrer noopener\">PenDrive Linux<\/a><\/li>\n<\/ul>\n\n\n\n<p id=\"bbbf\">If you\u2019re using Virtualbox or libvirt\/KVM\/QEMU then you can just attach the ISO directly to the VM. If you\u2019re not sure about how this is done then take a look at my tutorials on how to use them.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"4a10\">Resources<\/h1>\n\n\n\n<p id=\"8c2e\">See the&nbsp;<a href=\"https:\/\/medium.com\/@DrewViles\/kubernetes-the-hard-way-on-bare-metal-vms-v1-23-2168f5fe70af\">main series<\/a>&nbsp;under&nbsp;<strong>Setting up the resources<\/strong>&nbsp;for the VM specs<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"8495\">Steps<\/h1>\n\n\n\n<p id=\"493d\">Boot the ISO\/USB\/CD and select your preferred language for the&nbsp;<strong>installer<\/strong>&nbsp;and then select&nbsp;<strong>Install Ubuntu Server<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:800\/1*jVgHzBQAUTFkA85ZgrQfWQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:801\/1*rKK3TSKT-DyDFUuFgiWtRA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Select installer language and then select Install Ubuntu Server<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"72a2\">Location and Keyboard<\/h1>\n\n\n\n<p id=\"734b\">Select your&nbsp;<strong>language<\/strong>&nbsp;and the&nbsp;<strong>location<\/strong>&nbsp;of the system then configure the keyboard layout.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*35-ndOzqrwpwqUTCMPO3cg.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1003\/1*Z4mzY2OCCbWaeTdDxjRC6w.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Select language for the OS and the keyboard layout<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"ebc8\">Networking<\/h1>\n\n\n\n<p id=\"957a\">If you\u2019re doing this from home then it\u2019s likely you will have&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Dynamic_Host_Configuration_Protocol\" rel=\"noreferrer noopener\" target=\"_blank\">DHCP<\/a>&nbsp;enabled on your network which, in short, allows your machines to automatically get IP addresses from the router. In this case you should find you don\u2019t have to configure the network;&nbsp;<em>other networks can have DHCP enabled too<\/em>. You can skip over this section to&nbsp;<strong>configuring the hostname&nbsp;<\/strong>if this is the case, as this is where you will land instead of the screen shown below.<\/p>\n\n\n\n<p id=\"58e9\"><em>If you don\u2019t have DHCP and\/or are using a static IP then continue with the steps below.<\/em><\/p>\n\n\n\n<p id=\"41f6\"><em>My network details are as follows (yours will possibly differ):<\/em><\/p>\n\n\n\n<p id=\"d29c\"><em>IP address<\/em>:&nbsp;<strong>192.168.0.110<\/strong><br><em>Subnet<\/em>:&nbsp;<strong>255.255.255.0<\/strong><br><em>Gateway<\/em>:&nbsp;<strong>192.168.0.1<\/strong><br><em>Name servers<\/em>:&nbsp;<strong>8.8.4.4<\/strong>&nbsp;<em>and<\/em>&nbsp;<strong>8.8.8.8<\/strong>&nbsp;<em>&lt;- These are Google\u2019s name servers. You may have different ones.<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*08jJQ7SuSLZGnjmfc5gymg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">The auto configuration for the network will fail if you don\u2019t have DHCP available.<\/figcaption><\/figure>\n\n\n\n<p id=\"6b51\">Choose the option to&nbsp;<strong>configure manually<\/strong>&nbsp;and enter your&nbsp;<strong>IP address<\/strong>.<\/p>\n\n\n\n<p id=\"4a44\">Then enter your&nbsp;<strong>subnet<\/strong>,&nbsp;<strong>gateway<\/strong>&nbsp;and&nbsp;<strong>name server<\/strong>&nbsp;addresses. See the example below for how to do this.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*r39X1SmA8jRFFKOrEKE2WA.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*-xoP16FO9GLk-74Cud0Zbw.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Manually configure your IP.<\/figcaption><\/figure>\n\n\n\n<p id=\"fa57\">If you require a proxy address, you will know this, else leave the proxy address and mirror as they are. They should be sufficient.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:996\/1*sQSa73zZdlh0HpwRt9P27g.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*7P6Ie55RS1mFp9AYBAZn3Q.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Proxy and Mirror<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"1c81\">Disks \u2014 RAID \u2014 Preparation<\/h1>\n\n\n\n<p id=\"8c62\">This whole section on disks may seem daunting at first, but run through it a few times and it\u2019ll become second nature.<\/p>\n\n\n\n<p id=\"7512\">You could use guided storage layout, but you came here to learn!<br>So select Custom Storage Layout.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*cLbhckSlFmlnDVAXRzIi1w.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Select Custom Storage Layout<\/figcaption><\/figure>\n\n\n\n<p id=\"f4c1\">You should do the following steps on&nbsp;<strong>both<\/strong>&nbsp;<strong>disks<\/strong>&nbsp;until the&nbsp;<strong>Disks \u2014 Create \/boot &amp; LVM Device<\/strong>&nbsp;section as we\u2019ll be configuring them for RAID 1. RAID 1 (in particular) requires the disks be exactly the same size so that it can work. If you\u2019re not using RAID you can skip over this to the&nbsp;<strong>Disks \u2014 Create \/boot<\/strong>&nbsp;section, though a small amount of work on your part will be required to do this RAID-less as the guide will only hint at how you can do it rather than show you as you go on.<\/p>\n\n\n\n<p id=\"955a\">First you\u2019ll need to configure both of the disks as a boot device. Select each disk and select \u201cUse As A Boot Device\u201d on the first disk and \u201cAdd As Another Boot Device\u201d on the second disk.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:998\/1*AkgEM3i40MbXCMd08Xf3Pg.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*9d55QLcI0t758GSUfWyEDg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Select both disks as a boot device<\/figcaption><\/figure>\n\n\n\n<p id=\"03a7\">Now we\u2019ll create some unformatted partitions that will be used for RAID.<br>First we\u2019ll configure the one that will be used for&nbsp;<strong>\/boot<\/strong>.<br>On both disks select \u201cAdd a GPT Partition\u201d and then enter a size of \u201c1G\u201d.<br>Set the format to \u201cLeave Unformatted\u201d and select \u201cCreate\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1001\/1*mWxVnls3S49CoS61qrvrPg.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1001\/1*vpgPHMJx3YnK1sbUCWGlLA.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:998\/1*orrRtqWmOrMFKu0qqAMdMQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*VdCaBg5dCuQ5_davPXDeMA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Setup the unformatted partitions for boot<\/figcaption><\/figure>\n\n\n\n<p id=\"da5e\">Next we\u2019ll create the unformatted partitions that will be used for the LVM and in turn the root filesystem.<br>On both disks select \u201cAdd a GPT Partition\u201d and then leave the size blank.<br>Set the format to \u201cLeave Unformatted\u201d and select \u201cCreate\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*hcnsqCegld4kVZZu5Kd2zg.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:996\/1*HXhaHnPGrP1Wm3Pw0CpKDQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*nK0bKvS2Ac-Ot8e6f-XbOA.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:993\/1*1yo6TjzOOoyZcT3WCn3h5A.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Setup the unformatted partitions for LVM<\/figcaption><\/figure>\n\n\n\n<p id=\"00e0\">Now we\u2019ll configure RAID 1 on the system to create mirroring. Now, in a VM this isn\u2019t really necessary but in the real world, you want this as a minimum to ensure redundancy.<\/p>\n\n\n\n<p id=\"7409\">You should have something that looks like the first image below.<br>To configure RAID, Select \u201cCreate Software RAID (md)\u201d<br>Leave RAID Level as 1.<br>Then select the two partitions that are 1G in size. Then select create.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:995\/1*buxzxT_Hm_V-dJu6BQB1tQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:995\/1*It8lJQSuCfZKrk2Wn8JHYA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Create RAID device for boot<\/figcaption><\/figure>\n\n\n\n<p id=\"3b64\">Now you should have something that looks like the first image below, with \u201cmd0 (new)\u201d.<br>Now we\u2019ll do the same for the larger partition. So again, \u201cCreate Software RAID (md)\u201d<br>Leave RAID Level as 1.<br>Then select the two partitions that are left. Then select create.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*Hd2CsKuLw7JfJMTnKhJamA.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:996\/1*9PsSHDGF7fiTrTTOJEvydA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Create RAID device for LVM<\/figcaption><\/figure>\n\n\n\n<p id=\"4640\">Now we\u2019ll prepare those newly create RAID.<br>First let\u2019s start with the boot partition, as we won\u2019t want this as part of the LVM system we\u2019ll set up afterwards.<\/p>\n\n\n\n<p id=\"16f4\">So, with the 1GB RAID device we can click on that and select \u201cAdd GPT Partition\u201d.<br>Then leave the size empty as we want to use the full space available.<br>Set the format to \u201cEXT4\u201d.<br>Set the mount point to \u201c\/boot\u201d and select \u201cCreate\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*aDsXGQeYc5PdCwZVPfKY8A.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*DABlur1bcgfb6Mb71LqTpg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Create the boot partition<\/figcaption><\/figure>\n\n\n\n<p id=\"8bd7\">Next, we\u2019ll setup the device for LVM.<br>Then leave the size empty as we want to use the full space available.<br>Set the format to \u201cLeave Unformatted\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*AwSL49h6tp_hYVWtBz9XbA.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:998\/1*sb_Ki9QFyrxVfAPneStAUg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Create the GPT Partition for LVM<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"3baf\">Disks \u2014 Create LVM<\/h1>\n\n\n\n<p id=\"8a5d\">You\u2019re ready to start creating the LVM. The reason I\u2019ve opted for this is because I prefer it when it comes to extending disks. It makes it much easier to add disks to systems and extend file systems without, generally, any migration.<\/p>\n\n\n\n<p id=\"d07d\"><em>You don\u2019t have to use RAID or LVM however this is a setup that more closely resembles a real world scenario (although hardware RAID is preferable). If you opt not to use LVM, just set the large partition to EXT4 and the&nbsp;<\/em><strong><em>Mount point<\/em><\/strong><em>&nbsp;of it to&nbsp;<\/em><strong><em>\/&nbsp;<\/em><\/strong><em>in the previous step.<\/em><\/p>\n\n\n\n<p id=\"591e\">Anyway, let\u2019s configure the Volume Group for LVM.<\/p>\n\n\n\n<p id=\"137a\">Select \u201cCreate Volume Group (LVM)\u201d.<br>Leave the name as it is and select the partition (RAID Device) that is shown.<br>If you want to encrypt the partition, you can do so here. This will require you to enter a password on boot.<br>Once done, select \u201cCreate\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*KTJJfA4U5GpIsh59aHJCTw.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*2jq2w83Udo5iR_NBMO_PrA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Create the volume Group (LVM)<\/figcaption><\/figure>\n\n\n\n<p id=\"9c63\">Select the Volume Group you just created (VG0) and select \u201cCreate Logical Volume\u201d.<br>You can set the name to whatever you like but as this will be for the root filesystem, I have set it to \u201clv-root\u201d.<br>Leave the size empty to use all of the space available.<br>Set the format to \u201cEXT4\u201d and the Mount to \u201c\/\u201d.<br>Once done, select \u201cCreate\u201d.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:1000\/1*3rRcu4Omv2agsqJv04XCmw.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:998\/1*a58eXjwhkCGa7xqmig6aWg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Create the Logical Volume<\/figcaption><\/figure>\n\n\n\n<p id=\"fe39\">Now we\u2019re done, the disk should look something like this.<br>Once you\u2019re happy, simply select Done and then Continue to proceed with wiping the disk (if any data existed) and creating your new partition layout.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:990\/1*hkHd5Kr7BewnUdGVhkT_0Q.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:995\/1*orsSqre46MNsjJ0aGjJ49Q.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Confirm your disk partitioning.<\/figcaption><\/figure>\n\n\n\n<p id=\"b954\">You made it!<br>Now I know the disk configuration may seem complex but once you\u2019ve done it a few times, it becomes pretty easy. Most guides will take you through only using a single disk and either creating everything in one partition or, if you\u2019re lucky, breaking it down to \/boot, \/ and swap* (boot, root and swap). Whilst that\u2019s fine, it\u2019s unlikely you\u2019ll see this in a real world scenario.<\/p>\n\n\n\n<p id=\"1df1\"><em>*<\/em><strong><em>Important note:&nbsp;<\/em><\/strong><em>You<\/em><strong><em>&nbsp;<\/em><\/strong><em>haven\u2019t set any swap space up here. This is because this guide is part of my&nbsp;<\/em><strong><em>Kubernetes tutorial series&nbsp;<\/em><\/strong><em>which requires swap to be disabled. If you\u2019re NOT following the Kubernetes guide then it is recommended you configure swap space. You should delete the partitions you\u2019ve created so far and create the swap in the same way you did the \/boot sector (you\u2019ll see it as an option in \u201cUse as\u201d when configuring the partition) and it should generally be 2 x your RAM amount \u2014 unless using more than 64GB. Create it after \/boot and before the large space (this doesn\u2019t matter but makes life easier later when resizing).<\/em><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"cfd1\">Hostname &amp; User account<\/h1>\n\n\n\n<p id=\"4133\">The&nbsp;<strong>hostname<\/strong>&nbsp;(server name) is the name that the machine will be identified as. You may want to use something like web, mail, database, hosting, controller; anything you want really can go here. If you\u2019ve been given a hostname, use that.<\/p>\n\n\n\n<p id=\"90b7\">So here, enter your&nbsp;<strong>Name<\/strong>,&nbsp;<strong>Server name<\/strong>,<strong>&nbsp;Username<\/strong>&nbsp;and&nbsp;<strong>password<\/strong>; you\u2019ll need to do this twice to confirm the password.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*i4o5zLN7eVTSmqJnpsrghA.png\" alt=\"\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"1ee9\">Install OpenSSH<\/h1>\n\n\n\n<p id=\"7eea\">Next we\u2019ll install OpenSSH. This is required to connect to the machine remotely and to copy TLS keys across to the nodes (in the Kubernetes tutorial).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*16dJNwu6n7AIIWSYXbeFXQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"2404\">Configuring packages<\/h1>\n\n\n\n<p id=\"885c\">I will not recommend selecting any packages here if following along with the Kubernetes tutorial, any packages that we need will be installed later.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*AkxW9WWHmPFWo1HEBGwJwg.png\" alt=\"\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"9795\">Final stages<\/h1>\n\n\n\n<p id=\"ad6b\">Once the OS has been installed, it will update the system with any that are required and then you\u2019ll be prompted to reboot.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:875\/1*_rWdESdkzij2jOaTaKMwNA.png\" alt=\"\"\/><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"6a22\">Log in<\/h1>\n\n\n\n<p id=\"ba1c\">You\u2019re officially done however for the sake of completion, lets log in. Once it has rebooted you should see the screen below, enter your username and press enter. You\u2019ll then be prompted for the password you set during install.<br><strong><em>When you type the password, it will not show on screen but don\u2019t worry, it is being entered.<br><\/em><\/strong>Press enter when done and you\u2019ll see a load of text outputted, this is the message of the day, and a flashing cursor next to ~$<\/p>\n\n\n\n<p id=\"7946\">Welcome to the shell (bash).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:996\/1*KcWp6dSF_ZAP4KkKg7rmRA.png\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/v2\/resize:fit:999\/1*_BzvdnmwWHjeV3-lUvBEQQ.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Login screen and bash<\/figcaption><\/figure>\n\n\n\n<p id=\"65ff\">Once logged in you can start running commands. Here are the commands to update Ubuntu.<\/p>\n\n\n\n<p id=\"2833\"><code>sudo apt update<\/code>&nbsp;\u2014 This will refresh the package list allowing the system to see if any updates or new packages are available.<\/p>\n\n\n\n<p id=\"b0ae\"><code>sudo apt upgrade -y<\/code>&nbsp;\u2014 This will upgrade all of the packages that can be upgraded. Remove -y if you want to see the packages will be upgraded and be prompted for&nbsp;<strong>Y<\/strong>&nbsp;or&nbsp;<strong>N<\/strong>&nbsp;to continue or cancel.<\/p>\n\n\n\n<p id=\"8d90\"><strong><em>Sudo&nbsp;<\/em><\/strong><em>is used to run commands with escalated privileges. If you run the commands above without sudo, they will fail.<\/em><\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"5ac3\">SSH access<\/h1>\n\n\n\n<p id=\"80d1\">You can already connect to the server via SSH as we installed the package during install. If you\u2019re on a VM with NAT you may need to create some forwarding rules to make the below work.<\/p>\n\n\n\n<p id=\"cc12\">All you need is the IP address of the VM, your username and your password. If you\u2019re on Linux or Mac, you can ssh straight from the terminal:&nbsp;<code>ssh username@ipaddress<\/code>. If on Windows, there are many options but&nbsp;<a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/wsl\/\" rel=\"noreferrer noopener\" target=\"_blank\">Windows Subsystem For Linux<\/a>&nbsp;or Powershell would be the easiest to get started.<br>There are a million and one tutorials online that will show you how to achieve this so I won\u2019t be getting into it any more than that today.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\" id=\"b47b\">Conclusion<\/h1>\n\n\n\n<p id=\"fc9c\">You\u2019re done!<\/p>","protected":false},"featured_media":0,"parent":2457,"menu_order":0,"template":"","doc_tag":[],"class_list":["post-2459","docs","type-docs","status-publish","hentry"],"comment_count":0,"_links":{"self":[{"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/docs\/2459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/types\/docs"}],"version-history":[{"count":2,"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/docs\/2459\/revisions"}],"predecessor-version":[{"id":2463,"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/docs\/2459\/revisions\/2463"}],"up":[{"embeddable":true,"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/docs\/2457"}],"wp:attachment":[{"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/media?parent=2459"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/wiki.xontel.com\/ar\/wp-json\/wp\/v2\/doc_tag?post=2459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}