DevOps is about Agility, and speedy release of software and web solutions. One of the ways to guarantee fast and repeatable deployments is Automation of routine tasks. Acording to Circle CI, Continuous integration (CI) is a software development strategy that increases the speed of development while ensuring the quality of the code that teams deploy. Developers continually commit code in small increments (at least daily, or even several times a day), which is then automatically built and tested before it is merged with the shared repository. n our project we are going to utilize Jenkins CI capabilities to make sure that every change made to the source code in GitHub https://github.com/Damdev-95/tooling will be automatically be updated to the Tooling Website.
- Create an AWS EC2 server based on Ubuntu Server 20.04 LTS and name it "Jenkins"
- Install JDK (since Jenkins is a Java-based application)
sudo apt update
sudo apt install default-jdk-headless
- Install Jenkins
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \
/etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt-get install jenkins
- By default Jenkins server uses TCP port 8080 – open it by creating a new Inbound Rule in your EC2 Security Group
- Retrieve it from your server:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
Then you will be asked which plugings to install – choose suggested plugins.
- Enable webhooks in your GitHub repository settings
- I had issues with this
- The issues was regarding the ssh-keys on the NFS server
- Having issues sending the files, there is permission issue on the /mnt/apps folder
- Change the permission of the /mnt/apps directory
sudo chmod 777 -R /mnt/apps
- This confirm the changes has been successfully tranfer to the NFS server