Looking For Linux Admin Intern Roles What Projects Should I Add To My Resume
Welcome to our comprehensive guide on enhancing your resume for a Linux Admin Intern role by completing relevant and practical projects. The following projects will showcase your DevOps skills, infrastructure.
# Seeking Linux Admin Intern Roles? Boost Your Resume With These Projects
Welcome to our comprehensive guide on enhancing your resume for a Linux Admin Intern role by completing relevant and practical projects. The following projects will showcase your DevOps skills, infrastructure management abilities, and familiarity with automation tools. Let’s dive in!
Prerequisites
- Ubuntu 20.04 LTS (Focal Fossa) or CentOS 8
- Minimum 4GB RAM and 50GB free disk space
- Docker version 19.03 or higher:
apt install docker-ce=19.03.12 ~docker-ce-cli=19.03.12 -o APT::Get::Oldest "19.03.*"
- Kubernetes version 1.18 or higher:
snap install kubectl --classic --channel=1.18
- Ansible version 2.9 or higher:
pip install ansible[kubernetes]
Step 1: Set Up a Docker Environment
Create a directory for your Docker project and navigate to it:
1
mkdir docker-project && cd docker-project
Next, create a new Dockerfile with the following content:
1
2
3
4
FROM nginx
COPY ./my_app /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
This Dockerfile creates a simple web server using Nginx and copies your application (my_app) into the HTML directory.
Build the Docker image:
1
docker build -t my-web-server .
Finally, run the container:
1
docker run -p 8080:80 my-web-server
Step 2: Deploy to Kubernetes (k8s) Cluster
Create a deployment.yaml
file with the following content:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-web-server-deployment
spec:
selector:
matchLabels:
app: my-web-server
replicas: 3
template:
metadata:
labels:
app: my-web-server
spec:
containers:
- name: my-web-server
image: my-web-server
ports:
- containerPort: 80
Apply the YAML file to your k8s cluster using kubectl apply -f deployment.yaml
.
Step 3: Automate Configuration with Ansible Playbook
Create an Ansible playbook (playbook.yml) for configuration management:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
---
- hosts: webservers
gather_facts: yes
tasks:
- name: Ensure firewall is enabled and configured
systemd:
name: firewalld
enabled: yes
state: started
firewalld:
service: https
- name: Deploy Nginx configuration
copy:
dest: /etc/nginx/conf.d/my-web-server.conf
content: |
server {
listen 80;
location / {
proxy_pass http://localhost:8080;
}
}
notify:
- Restart Nginx
- name: Restart Nginx
service:
name: nginx
state: restarted
Troubleshooting
If you encounter issues, ensure that your Docker image builds correctly, and the k8s deployment and service are correctly configured. Also, double-check your Ansible playbook syntax and verify that the webservers
group is properly defined in your inventory file.
Conclusion
By completing these projects, you will demonstrate your skills in setting up self-hosted infrastructure, automation, and familiarity with open-source tools like Docker, Kubernetes, and Ansible. These projects will make your resume stand out to potential employers in the DevOps space. Good luck with your Linux Admin Intern applications!