Ejemplos útiles de cloud-config
Acciones base
Crear y configurar usuarios de sistema
Ejecutar comandos
Actualizar paquetería del sistema mediante apt o yum:
Escribir archivos de texto
Gestionar unidades de almacenamiento, particiones y sistemas de archivos
Instalación de paquetes y stacks populares
Tip
Ten en cuenta que el nombre de los paquetes en ocasiones varian entre distintos sistemas operativos y ediciones. Los ejemplos aquí documentados corresponden a ediciones recientes de Ubuntu.
Stack LAMP (Linux, Apache, MySQL y PHP)
#cloud-config
package_update: true
packages:
- apache2
- mysql-server
- libapache2-mod-php
- php-mysql
Stack LEMP (Linux, Nginx, MySQL y PHP)
Monitoreo y visualización Prometheus + Grafana
#cloud-config
package_update: true
packages:
- apt-transport-http
- prometheus
- prometheus-node-exporter
runcmd:
- install -d -m 0755 /etc/apt/keyrings
- wget -q -O /etc/apt/keyrings/grafana.asc https://apt.grafana.com/gpg-full.key
- chmod 0644 /etc/apt/keyrings/grafana.asc
- sh -c 'echo "deb [signed-by=/etc/apt/keyrings/grafana.asc] https://apt.grafana.com stable main" > /etc/apt/sources.list.d/grafana.list'
- apt-get update
- DEBIAN_FRONTEND=noninteractive apt-get install -y grafana
- systemctl daemon-reload
- systemctl enable --now grafana-server
write_files:
- path: /etc/prometheus/prometheus.yml
permissions: '0644'
owner: root
content: |
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
scrape_timeout: 5s
static_configs:
- targets: ['localhost:9090', 'localhost:9100']
- job_name: app-nodes
static_configs:
- targets: ['172.16.0.11:9100','172.16.0.12:9100', '172.16.0.13:9100']
- path: /etc/grafana/provisioning/datasources/prometheus.yml
permissions: '0644'
owner: root
content: |
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
url: http://localhost:9090
isDefault: true