DevOps Lesson
import socket
# Change the following host and see what IP it prints!
host = "google.com"
ip = socket.gethostbyname(host)
print(ip)
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((ip, 80))
print("Successfully connected!")
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((ip, 80))
# Send a GET request to "/"
s.sendall(b"GET / HTTP/1.1\r\n\r\n")
# Recieve & print 2048 bytes of data
data = s.recv(2048)
print(data.decode())
import requests
# Change the URL to whatever you'd like
response = requests.get("https://google.com")
print("Status code:", response.status_code)
print("Headers:", response.headers)
print("Response text:", response.text[:100])
# Add a line to print the "Content-Type" header of the response
# Try an image URL!
aws = "3.130.255.192"
response = requests.get("http://" + aws)
print(response.text)
Configuration
server {
// Listen on virtual "port 80"
listen 80;
listen [::]:80;
server_name 3.130.255.192;
location / {
// Inform server about original client
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
// Forward all requests transparently to the server running on our computer
proxy_pass http://localhost:9099;
}
}
Load Balancing
upstream example.com {
server server1.example.com;
server server1.example.com;
}
HTTP Headers
server {
add_header X-Cool-Header "I love APCSP!";
location /pages {
add_header X-Cooler-Header "This is my secret header!";
}
}
Check In
- Research 1 HTTP header and describe, in detail, its purpose.
- Write a line in a sample NGINX configuration that will add that specific header to the
/information
location - Explain the purpose of the load balancing performed by NGINX
- Modify the following code block to obtain the value of the secret header on
/products
of the AWS site
aws = "3.130.255.192"
response = requests.get("http://" + aws+ "/products")
print("The secret header is:", "...")
CORS Hacks
- Explain what CORS is and what it stands for
- Describe how you would be able to implement CORS into your own websites
- Describe why you would want to implement CORS into your own websites
- How could use CORS to benefit yourself in the future?
Total: 0.2 points
KASM Hacks
- What is the purpose of "sudo" when running commands in terminal?
- What are some commands which allow us to look at how the storage of a machine is set up as?
- What do you think are some alternatives to running "curl -O" to get the zip file for KASM?
- What kind of commands do you think the "install.sh" command has and why is it necessary to call it?
- Explain in at least 3-4 sentences how deploying KASM is related to/requires other topics talked about in the lesson and/or potential ways to add things mentioned in the lesson to this guide.
Total: 0.2 points
AWS/RDS Hacks
See the setup post
- Create your own database in the EC2 I have created (ec2-database-connect)
- name it with your first and last name (example: aditya-nawandhar) (0.1)
- Create a table using the commands on the link provided. (0.1)
- using commands from the link provided make columns and rows with test data (can be anything) (example: “name” and “class” are the columns with rows being something like “Aditya” and “Junior”). At least 4 test rows (0.1)
- additional points if the data matches CPT (Bonus: 0.05)
Total: 0.3