Tech Junkie Blog - Real World Tutorials, Happy Coding!: September 2021

Friday, September 24, 2021

The beauty of Docker is that you can run a very lightweight image of another Linux distro on your host system.  In this post we will be pulling the latest image of Fedora into our docker container on our Ubuntu server.

Thursday, September 23, 2021

Sometimes you don't want to do everything with the root account.  So there are some super users who you trust as administrators.  For those users you want them to be able to run the sudo command.  A sudo command allows a user to run commands with root privileges without logging in as root.
For example something like this sudo yum update unlike the su command which prompts you for the root password.  The sudo command prompts you for the password of the logged in user.

In order for the sudo to work we have to configure the /etc/sudoers file.  There is a special command for editing the sudoers file and it's the visudo command.  This command should be used at all times when editing the sudoers file instead of a text editor.

Wednesday, September 22, 2021

 If your website starts to become popular, especially if it's not static you might noticed that the performance is starting to degrade.  The most logical step is to scale your architecture with a load balancer.  AWS offers three types of load balancers, there are:

  • Application Load Balancer
    • Protocols (HTTP, HTTPS)
    • Specializes in web applications, deals with traffic at the request level (layer 7)
      • Supports query strings, path routing, parameter routing, IP routing
    • Supports IP addresses, Lamda Functions (serverless, microservices), and containers
  • Network Load Balancer
    • Protocols(TCP, TLS, UDP, TCP_UDP) - Layer 4
    • When high performance and low latency is required
    • TLS offloading
    • Elastic IPs can be assigned
  • Classic Load Balancer
    • Protocols (TCP, SSL, HTTP, HTTPS) - Layer 4, 7
      • Old generation, not recommended unless you are running EC2-Classic instance

    In a nutshell a load balancer distributes the client's traffic among the many instances that are available in your architecture to offload the traffic so that more than one instance can share the burden of the traffic.  A health check is setup so that only the health instances can serve up traffic.

    Tuesday, September 21, 2021

    If you are developing Java EE applications, then WildFly is an excellent web application that you can set up easily.  In this post we are going to setup WildFly on a Windows machine.  The instructions should be similar for a Linux machine, it's just that the files ends with the .sh extensions.

    Here are the steps to setup WildFly on your machine:

    1. Go the WildFly website and download the latest version,

    Monday, September 20, 2021

     In the last post we created a new partition for a new disk that we've just added, in this post we are going to mount the partition and create a filesystem for the partition so that we can use it.  First lets check to see that we have a new partition by running the fdisk -l command

    As you can see a new partition called /dev/sdb1 has been created with 8 GB of disk space.  Now we all good to go.

    Here are the steps to mount and create a file system in Linux:

    1. First we need to create a filesystem so that the Linux system can read and write to it.  Linux uses the xfs filesystem so that's what we are going to use.  To do that we have to run the mkfs command. To make an xfs filesystem you simply type mkfs.xfs /dev/sdb1

    2. Now that we have a filesystem that Linux could understand, it is time to mount the partition so that we could use in our server.  It's a two step process to accomplish that, first you have to create a directory, type mkdir /data to create /data directory.  Then you are going to mount the partition to that directory with this command mount /dev/sdb1 /data now if you run the command df -h you will see the partition has been mounted to the /data director

    3. We still have one more step before we are finished.  Everything will work like it should, but once you reboot the settings will not persist in it's current state.  To make the settings persist we have to edit the fstab file.  So type the command vi /etc/fstab make sure you have your system backed up and you can revert back because if you messed up you will not be able to log in. When you are in the fstab file type in the following line at the end of the file

    /dev/sdb1               /data                   xfs     defaults        0       0

    The spaces are tabs, the 0s are options for file system checks on boot.  You probably don't want that, so just type 0s to skip it. Press esc and :wq! to write to the file.

    4. Reboot and run the df -h command again and you should see that the changes persist and you can use the new partition

    Friday, September 17, 2021

    One of the most common task you have to do as a Linux administrator is to add a new user.  Especially developers who always wants root access. Docker needs root access, however the person who is administering Docker is probably not the system administrator.  Most likely it will be the application developer. To accomplish this task you can use the useradd command in the Terminal session then add the new user to the Docker group.  Follow the steps below to add a new user to Ubuntu.

    Thursday, September 16, 2021

    In the previous post we created a user called "John Wallace", in this post we are going to add John and Jason into the developers group.  In any system you want to group users into groups so that you can easily assign constraints and privileges to a group of user instead of doing it one at a time.

    Wednesday, September 15, 2021

     In the previous post we went over what a load balancer is, in this post we are going to create one of types of load balancer AWS offers.  We are going to create a Classic Load Balancer, this balancer is not recommended by Amazon, you should only create this if you have to support EC2-Classic instances.

    Before we create the load balancer we need to create more than one instances with a web server because we need to test that the load balancer is able to switch.

    1. Create two instances with the user data to create Apache Web Servers with these commands in the User Data for instance, if you need the full instruction on how to create instances with User Data you can read this post

    #Use this for your user data (script without newlines)
    # install httpd (Linux 2 version)

    yum update -y 
    yum install -y httpd.x86_64 
    systemctl start httpd.service 
    systemctl enable httpd.service 
    echo "Hello world from $(hostname -f)" > /var/www/html/index.html

    We just created an index.html file to write out the hostname for testing later on

    Tuesday, September 14, 2021

    In order to host websites in Tomcat we need to create a project to host servlets.  In this post we are going to create Dynamic Web project in Eclipse.

    Here are the steps to create a web project in Eclipse:

    1. Right-click on "Servers" → "New" → "Other"

    2. Expand the "Web" node then select "Dynamic Web Project", then click "Next"→

    Monday, September 13, 2021

     In the previous post we used the df and fdisk commands to gather storage information about our Linux system.  In this post we are going to add a new disk and partition to our system.  I am using VBox and you can create a new storage by going to settings and adding a new disk, it will be just like adding a real physical disk on a physical machine except it's virtual.  You can go to this post if you want to know how to do it

    Here are the steps to adding a new disk and creating a partition for the disk:

    1. First we want to see what the new disk is identified as in our Linux system, we can do that by typing the command fdisk -l

    As you can see the new disk is identified as /dev/sdb and it has 8 GB which is correct

    2. We want to go into the fdisk utility to work with our new disk, to do that you type fdisk /dev/sdb then press enter

    3. Press m to see all the options that are available

    From the help menu we know that we have to use the n option to add a new partition

    4. Type n and then press Enter to get into the create partition steps

    5. You will be given a choice of the partition being a primary or extended, since this is a new disk we want to make it a primary partition, so press p and ENTER

    6. For the partition number accept the default 1 by pressing ENTER, once again it's a new disk so it's going to be the first partition on the disk

    7. Accept the default again for the first sector by pressing ENTER

    8. Accept the default again by pressing ENTER, if you want to create more than one partition and not use the entire disk you enter the size so that there's disk space left like this +4G, and it would use only 4 GB for the partition, but since we want to use the entire disk we just going to press ENTER

    A new partition has been created for the new disk.  Or have you? A lot of beginners forget to do the next step and the partition is not created even though they went to through all the steps. The final step to the process is that you have to type w to write your changes else nothing will happen.  It's just a confirmation that fdisk needs, for you to confirm that the changes are correct in the final step.

     In the next post we are going to mount the partition and create a filesystem for the new partition.

    Friday, September 10, 2021

    In the previous post we installed Docker on our Ubuntu server.  Now we are going to add the Docker repository to our local server so that we can get the latest version of Docker.

    Thursday, September 9, 2021

    In our previous post we type in the yum command yum update to update the entire CentOS server.  But the most common operation that you will perform with yum that you will perform is to install, update, and remove an individual package.

    In this post we will install, update and remove the php package.

    Wednesday, September 8, 2021

     In the world of AWS you have to be familiar with the different features and what they are called.  Well two very important building blocks of all the services that AWS offers are the S3 and the IAM Role.  S3 is basically an object storage repository that are called buckets, but it is more than just a storage, you can turn to the storage into a static website. We'll get into that later. It's public facing, so you can access it over the internet. 

    IAM Role is an identity that you can assign policies to and that role assumes the permission.  Therefore only instances with a role that has a policy to access S3 can assume that role and have access to the S3.

    So let's start creating the assets on the diagram above:

    Tuesday, September 7, 2021

    In this post we are going to set Tomcat as a server in Eclipse so that we can interact with Tomcat through Eclipse.

    Here are the steps to configure Tomcat to work with Eclipse:

    You have to download the zip file version of the install to make Tomcat work with the Eclipse.  I had no luck with the Windows Installer

    So go to

    Then click on the .zip version of the download, and then extract the files into the

    Now extract the content of the zip file into the folder C:\apache-tomcat-9.0.24

    Monday, September 6, 2021

     To simulate a real world scenario often times you have to add components to your virtualize Linux operating system.  In this post we are going to add a new disk to our virtual machine in Oracle's VirtualBox.  

    Here are the steps to adding a new disk to a VM:

    1.  Right click on your virtual machine and select settings then select "Storage", the power must be off.  Click on the second icon next to the "Controller: SATA" section

    2. On the next dialog click on the "Create" icon

    3. Click "Next"

    4. Click "Next"

    5. Type in a name for the disk and then click "Create"

    6. Select the disk under "Not Attached" and then click on "Choose"

    7. Now your new disk is attached to the Virtual Machine, click "OK"

    Friday, September 3, 2021

    Docker is the hottest infrastructure technology to hit the tech world in a long time.  The appeal of Docker is that it allows the infrastructure team to utilize the capacity of the servers to near full capacity.  Docker is a container.  A container is like a micro virtualization minus the operating system.  It only contains enough infrastructure to host an app, without the fat.  Hence the term container is used to describe it.

    Thursday, September 2, 2021

    The MAX() function gets the highest value in the specified column, and the MIN() function gets the lowest value in the specified column

    SELECT MAX(UnitPrice) AS HighestPrice, MIN(UnitPrice) AS LowestPrice
    FROM Products

    The query above gets the highest and lowest prices for the Products table in the Northwind database


    Wednesday, September 1, 2021

     In the previous post  we created a public and private subnet in our VPC.  In this post we are going to create a NAT gateway so that our private instances can access the internet.  That's useful when there's a need to update the instance.  For example if we ping right now there will be 100% package lost in our private instance because we cannot get to the internet.  After we attach the instance to the NAT gateway we will be able to ping google.

    It would go on for a while but eventually it would say the package is lost.

    Now let's create our NAT Gateway, it is important that we delete the NAT Gateway if it's not in use because you have to pay for it.

    Search This Blog