En este artículo, aprenderá sobre las implementaciones de Argo y cómo implementar estrategias de desplieges en modo blue-green.
https://medium.chuklee.com/argo-rollouts-blue-green-deployment-75dbeff4ea19
https://medium.chuklee.com/argo-rollouts-blue-green-deployment-75dbeff4ea19
k8sgpt.ai un Operador de Kubernetes que usa IA para arreglar implementaciones rotas de forma dinamica
https://youtu.be/KduyeJnehHE?t=41 La comunidad cubana de IT reunida
YouTube
Video resumen DevFest Aranjuez 24
Los DevFest son eventos comunitarios a gran escala, impulsados por la pasión y el talento de desarrolladores locales.
Se celebran anualmente en todo el mundo y cada uno tiene un enfoque único, pero todos comparten la misma misión: reunir a los desarrolladores…
Se celebran anualmente en todo el mundo y cada uno tiene un enfoque único, pero todos comparten la misma misión: reunir a los desarrolladores…
Please open Telegram to view this post
VIEW IN TELEGRAM
script minimalista para checkear nginx
#!/bin/bash
# Definir la API Key de PagerDuty
api_key="XSERIALX"
# Definir el puerto a verificar
port=443
# Función para comprobar si el puerto está activo
check_port() {
netstat -tuln | grep -q ":$port "
}
# Verificar si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo. Nginx está funcionando correctamente."
exit 0
else
echo "El puerto $port no está activo. Intentando reiniciar Nginx..."
# Reiniciar Nginx
systemctl restart nginx
sleep 10 # Esperar unos segundos para que el servicio arranque
# Verificar nuevamente si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo después del reinicio. Nginx se ha reiniciado correctamente."
exit 0
else
echo "El puerto $port sigue sin estar activo después del reinicio. Enviando alerta a PagerDuty..."
# Enviar evento a PagerDuty
curl -X POST "https://events.pagerduty.com/v2/enqueue" \
-H "Content-Type: application/json" \
-d '{
"routing_key": "'"${api_key}"'",
"event_action": "trigger",
"payload": {
"summary": "El puerto 443 no está activo y Nginx no responde",
"severity": "critical",
"source": "servidor-web",
"component": "nginx",
"group": "web",
"class": "webserver",
"custom_details": {
"description": "El servicio Nginx no está funcionando y el puerto 443 sigue inactivo después del reinicio. Se requiere intervención manual."
}
}
}'
exit 1
fi
fi
#!/bin/bash
# Definir la API Key de PagerDuty
api_key="XSERIALX"
# Definir el puerto a verificar
port=443
# Función para comprobar si el puerto está activo
check_port() {
netstat -tuln | grep -q ":$port "
}
# Verificar si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo. Nginx está funcionando correctamente."
exit 0
else
echo "El puerto $port no está activo. Intentando reiniciar Nginx..."
# Reiniciar Nginx
systemctl restart nginx
sleep 10 # Esperar unos segundos para que el servicio arranque
# Verificar nuevamente si el puerto 443 está activo
if check_port; then
echo "El puerto $port está activo después del reinicio. Nginx se ha reiniciado correctamente."
exit 0
else
echo "El puerto $port sigue sin estar activo después del reinicio. Enviando alerta a PagerDuty..."
# Enviar evento a PagerDuty
curl -X POST "https://events.pagerduty.com/v2/enqueue" \
-H "Content-Type: application/json" \
-d '{
"routing_key": "'"${api_key}"'",
"event_action": "trigger",
"payload": {
"summary": "El puerto 443 no está activo y Nginx no responde",
"severity": "critical",
"source": "servidor-web",
"component": "nginx",
"group": "web",
"class": "webserver",
"custom_details": {
"description": "El servicio Nginx no está funcionando y el puerto 443 sigue inactivo después del reinicio. Se requiere intervención manual."
}
}
}'
exit 1
fi
fi
Blog de ArmandoF
https://www.linkedin.com/posts/franciscoarencibia_devops-devsecops-aws-activity-7294062779500535810-FvHC?utm_source=share&utm_medium=member_ios
Desengrasado dar charlas de nuevo, enseñando uno de los tantos caminos de cómo superarse y obtener un mejor empleo adentrándose en el mundo Devops sobre AWS
Exportar registros route53 -> bind9
aws route53 list-resource-record-sets --hosted-zone-id ZONE_ID > records.json
despues usas este script de python para parsearlo
import json
def route53_to_bind9(json_file, output_file):
with open(json_file, 'r') as f:
data = json.load(f)
records = data.get("ResourceRecordSets", [])
bind_lines = []
for record in records:
name = record["Name"].rstrip('.') # Elimina el punto final
record_type = record["Type"]
ttl = record.get("TTL", 300)
if "ResourceRecords" in record:
values = [r["Value"] for r in record["ResourceRecords"]]
for value in values:
bind_lines.append(f"{name} {ttl} IN {record_type} {value}")
elif "AliasTarget" in record:
alias = record["AliasTarget"]["DNSName"].rstrip('.')
bind_lines.append(f"{name} {ttl} IN CNAME {alias}")
with open(output_file, 'w') as f:
f.write('\n'.join(bind_lines) + '\n')
print(f"Archivo BIND generado: {output_file}")
# Uso
test_json = "records.json" # Archivo exportado de AWS
output_bind = "zonefile_bind9.txt" # Archivo en formato BIND
route53_to_bind9(test_json, output_bind)
aws route53 list-resource-record-sets --hosted-zone-id ZONE_ID > records.json
despues usas este script de python para parsearlo
import json
def route53_to_bind9(json_file, output_file):
with open(json_file, 'r') as f:
data = json.load(f)
records = data.get("ResourceRecordSets", [])
bind_lines = []
for record in records:
name = record["Name"].rstrip('.') # Elimina el punto final
record_type = record["Type"]
ttl = record.get("TTL", 300)
if "ResourceRecords" in record:
values = [r["Value"] for r in record["ResourceRecords"]]
for value in values:
bind_lines.append(f"{name} {ttl} IN {record_type} {value}")
elif "AliasTarget" in record:
alias = record["AliasTarget"]["DNSName"].rstrip('.')
bind_lines.append(f"{name} {ttl} IN CNAME {alias}")
with open(output_file, 'w') as f:
f.write('\n'.join(bind_lines) + '\n')
print(f"Archivo BIND generado: {output_file}")
# Uso
test_json = "records.json" # Archivo exportado de AWS
output_bind = "zonefile_bind9.txt" # Archivo en formato BIND
route53_to_bind9(test_json, output_bind)
🦺 Caído: Una potente herramienta para auditoría web
✍️ Si trabajas en ciberseguridad, Caido es una alternativa moderna a Burp Suite para analizar aplicaciones web.
➡️https://docs.caido.io/
Su instalación es sencilla en cualquier sistema:
🖥️ Linux: Descarga el AppImage, asígnale permisos (chmod +x) y ejecútalo.
💻 Windows: Instala con el ejecutable .exe en pocos pasos.
🍏 macOS: Descarga el .dmg y arrástralo a "Aplicaciones".
⚙️ Requiere al menos 4GB de RAM y una CPU.
Herramienta ideal para pentesters y analistas que buscan eficiencia en su flujo de trabajo.
✍️ Si trabajas en ciberseguridad, Caido es una alternativa moderna a Burp Suite para analizar aplicaciones web.
➡️https://docs.caido.io/
Su instalación es sencilla en cualquier sistema:
🖥️ Linux: Descarga el AppImage, asígnale permisos (chmod +x) y ejecútalo.
💻 Windows: Instala con el ejecutable .exe en pocos pasos.
🍏 macOS: Descarga el .dmg y arrástralo a "Aplicaciones".
⚙️ Requiere al menos 4GB de RAM y una CPU.
Herramienta ideal para pentesters y analistas que buscan eficiencia en su flujo de trabajo.
aca os comparto un manual que ha hecho un colega para todo el que quiera iniciarse en aws pero quiero probar todo en su local
https://blog.justme.ovh/posts/run-aws-locally/
https://blog.justme.ovh/posts/run-aws-locally/
blog.justme.ovh
Run AWS Locally | JustMe