Post

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!

This post is licensed under CC BY 4.0 by the author.