Open gutocarvalho opened 1 year ago
@gomex essa é uma boa para mentoria.
Para quem não conhece
Quais serviços começar?
Esses todos não builda imagem, só precisa mudar a versão e reiniciar.
Tem que dar checkout e buildar a nova imagem, mas é simples também.
O Jitsi a mesma coisa.
Aqui o processo de atualizar do mastodon que precisa virar esteira.
https://blog.gcn.sh/howtos/updating-mastodon-to-the-version-4-1-4
No Servidor Proxmox
1. conectar no servidor proxmox 2. rodar um backup 3. rodar um snap
É possível utilizar algo assim ou é ssh, bash puro dentro da máquina?
acho que ir por ssh seria mais fácil, mas se a API tiver todos os endpoints necessários, dá para ir por lá também.
Não cheguei a fazer isso, porém pode ser feito com o comando?
ssh -t user@host 'bash' < path_to_script
Se for isso:
Pra quem não mexe com Proxmox e tá meio perdido igual eu:
Comandos:
Endpoints da API:
https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/vzdump https://pve.proxmox.com/pve-docs/api-viewer/index.html#/nodes/{node}/qemu/{vmid}/snapshot
The API method "POST /api2/json/nodes/{node}/vzdump" works for KVM and OpenVZ. https://forum.proxmox.com/threads/execute-backup-via-api.13213/
Caso precise posso passar pra org da bolha ou formatar no padrão dela e reenviar, esses workflows pra gerar imagens ajudam?
- PixelFed
- Bookwyrm
Pro jisti, tem esse repo com as imagens e no dockerhub também tem
- Jisti
acho que ir por ssh seria mais fácil, mas se a API tiver todos os endpoints necessários, dá para ir por lá também.
Concordo. Por outro lado a API costuma ter um "contrato" de interface mais forte. Já vi muito script bash quebrar por conta de simples alteração de locale, ou atualização cosmética. Com uso de API é bem mais difícil de isso acontecer.
Vocês consideram usar ansible para operar a esteira?
Ansible parece ter módulos interessantes https://docs.ansible.com/ansible/latest/collections/community/general/index.html (busque por "proxmox"). Pode ser um atalho.
A ideia é criar uma VM para ser o "controller"/"orquestrador" da esteira? Caso não seja a ideia, qual seria o design da esteira?
Procurei pouco, agora que falou, fui ver a documentação e encontrei umas coisas interessantes.
Para listar as VMs Snapshot all running VMs on Proxmox via Ansible).
Ou
- name: List all existing virtual machines on node
community.general.proxmox_vm_info:
api_host: proxmoxhost
api_user: root@pam
api_token_id: '{{ token_id | default(omit) }}'
api_token_secret: '{{ token_secret | default(omit) }}'
node: node01
Pra para uma vm com o vmid
obtido de cima:
- proxmox:
vmid: 100
api_user: root@pam
api_password: 1q2w3e
api_host: node1
force: yes
state: stopped
Pro snapshot, tem algumas coisas de política de retenção, que eu particularmente não manjo:
Pra backup eu não vi ou não entendi, a questão dos nodes tbm não, são requeridos.
Já usei o modulo ansible.
Hoje uso o terraform pro proxmox.
o mais fácil seria criar um shellscript local de snapshot/backup e chamar ele por ssh, é uma possilidade.
Já usei o modulo ansible.
Hoje uso o terraform pro proxmox.
Terraform é o ideal para deploy de um novo ambiente. Mas para manter uma configuração declarativa, o ansible me parece mais adequado. Por exemplo: Uso o ansible para automatizar o seguinte processo: Remover snapshot pre-upgrade, caso exista. Fazer novo snapshot pré-upgrade de uma VM, fazer um apt-get upgrade. Ainda preciso implementar os testes pós upgrade. Imagino que podemos pensar algo nesse sentido. Se esse tipo de ação não fizer sentido e o ideal é sempre um novo deploy, voto com o relator de irmos de terraform. Quem sabe me força e estudar um pouco mais! :-)
De acordo, eu tava usando só para criar VMs, nao para manter.
A ideia é colocar o diretorio docker de cada produto no github, criar um template do actions, e quando houver um push na main, o actions roda o template que vai
No Servidor Proxmox
1) conectar no servidor proxmox 2) rodar um backup 3) rodar um snap
Na VM do Produto
1) conectar na vm do produto 2) atualizar o dockerfile 3) rodar docker-compose down 4) rodar docker-compose up
No Load Balancer
1) se houver estáticos, atualizar os estáticos de cache 2) reload no nginx