Skip to main content

Git and Github

This is the first post in a series focusing on implementing a CI/CD pipeline.

The reason we are starting with Git and Github is because you need to have your foundation of source control set before you can set up build tools or continuous integration tools.

A few reflections I have gathered over the past weeks conducting research. First off, everyone working in IT Operations or Software Development needs to watch this video: https://www.youtube.com/watch?v=ecIWPzGEbFc

Sometimes learning about the past allows on to understand the present. As an example, when I first looked at Gradle I was extremely confused. However, when you trace back its genealogy to Apache Ant and then even further back to GNU Make, you can start to understand the landscape of the plethora of tools we have at our disposal in the present. You start to understand how tools have different wrappers around them and fundamentally what they are intended to do. If you are a new Systems Admin, I encourage you to compile Python 3 from source code. This will force you to use the make command and teach you about dependencies etc.

Now on to Git.

Sign up for a Github account. I used a throw away account for training purposes. You can always create an official account when you are ready.

Next on your server complete the following steps:

yum install git

// Verify Installation
git --version

// Add Username and Email information

git config --global user.name "syspleb"
git config --global user.email syspleb@domain.com

// Generate SSH Key

ssh-keygen -t rsa -b 4096

Copy your *Public key* to your Github account by going to Settings and then SSH and GPG keys.
Never, I mean NEVER share, email, discuss, or whisper your private SSH key to anyone. It stays on your server, period.


When you now go to Git clone a Repository: Click the green clone button and make sure you select SSH instead of HTTPS.

If you have set up everything correctly it should look like this:

git clone git@github.com:syspleb/cicd-pipeline-train-schedule-git.git
remote: Enumerating objects: 27, done.
remote: Total 27 (delta 0), reused 0 (delta 0), pack-reused 27
Receiving objects: 100% (27/27), 11.89 KiB | 0 bytes/s, done.
Resolving deltas: 100% (2/2), done.

Some other noteworthy git commands are as follows:


Status: git status

Stage Files: git add -A

Commit: git commit -m "Describe the Change"

Push to Github Repo: git push

Comments

Popular posts from this blog

Veeam Free Linux Agent Install on Centos 7

If you are a junior admin that works with Vmware or Azure, learning Veeam backups can elevate your skills and value. This post will walk through the steps of setting up the free Linux backup agent on a Centos 7 virtual machine. Step 1: Lay the Foundation https://helpcenter.veeam.com/docs/agentforlinux/userguide/system_requirements.html?ver=30 https://helpcenter.veeam.com/docs/agentforlinux/userguide/installation_process.html?ver=30#dep Run uname -r and take note of the kernel version. Make sure you yum install kernel-devel which matches your kernel version In order to install libudev dependency I used yum install systemd-devel For libfuse dependency I used yum install fuse-libs yum install syslinux yum install epel-release yum update -y or yum makecache yum install dkms (If you cant find this package check your epel realease) *Do Not Skip Dependencies* unless they do not apply to your operating system. Footnotes will guide you in the docu...

Introduction

In order to get some real hands on experience as a Linux admin; lab construction should be the first priority. I am setting out with a couple of goals: 1. Set up a KVM hypervisor. 2. Inside of that KVM hypervisor, install a Spacewalk server. Use CentOS 6 for deployments in order to not worry about SELinux. I wanted the lab to have an enterprise feel but wanted to utilize free open source software. Another requirement was a it needed to have a GUI (preferably web based).  After a detailed review 2 operating systems peaked my interest and already came prepackaged with KVM. For those interested in reviewing all the options: https://www.linux-kvm.org/page/Management_Tools The first was Proxmox. Proxmox is Debian based OS and has very nice features with streamlined ease of use. Below is an example of the GIU and iso images can be found at  https://www.proxmox.com/en/downloads/category/iso-images-pve The second offering I reviewed was Ovirt. Ovirt is Redha...

Proxmox Has Won Me Over

I intended to make Ovirt Node work since it is based off of Centos but within 10 minutes of install I am having to vim /etc/hosts and set Ip address to hostnames because I need to bypass FQDN requirements. Then I need to set up the Ovirt Engine which requires a lot of resources. I still do not know what purposes it serves. An hour later and I still have not spun up a VM. At this point I am starting to think I shouldn't use this platform. I scrapped Ovirt and spun up a Proxmox host. I will add a big tip here. Login to your router when during the Proxmox install and reserve the IP it is using. This will effectively bind that private Ip to the MAC address of the Proxmox host. This step is super important. Once you are done installing Proxmox all the network configurations are done for you automatically. You do not have to set up a bridge between host and Vms. I was able to install Proxmox and spin up a Vm in about 15 minutes with full network connectivity. The GUI also looks ver...