Reflexões e memórias da minha implementação do Proxmox

On May 20th, 2024 in Proxmox, Tech

Vem um tempo que estou aumentando cada vez mais minhas automações e organização das informações acumuladas. Viver nesses tempos atuais vem sendo cada vez mais complexo e mais cheio de informações a serem acompanhadas, catalogadas e processadas. Estou cheio de pastas, planilhas, catálogos, sites entre outros que acumulo mensalmente.

Resolvi escrever um pouco, dessa vez em português (já que em inglês está cheio de conteúdo já), meus pensamentos e experiências sobre o Proxmox. Seja para eu relembrar, seja para ver se ajudo alguém com a experiência.

Meu setup anterior

Conheci o Proxmox há 2 anos e comecei utilizando um Macbook Pro velho (2011) como servidor. E essa foi uma das melhores decisões que tomei. Antigamente, eu havia montado um servidor para execução exclusiva do TrueNAS, que inclusive funciona até hoje, mas se eu tivesse conhecido o Proxmox antes, possivelmente eu teria utilizado direcionado o servidor para a hospedagem dele.

Meu Macbook tinha 16GB de RAM, 500GB de SSD e um HDD de 320GB. Eu dependia muito o uso de HDs externos grudados no laptop, além do uso regular do servidor NAS para conseguir hospedar meus arquivos.

Na minha primeira instalação, eu basicamente tinha 3 máquinas virtuais (VM) rodando, uma com o Home Assistant, outra com o Windows 7, e, por fim, uma com o Ubuntu Server 22.04 com várias coisas rodando, seja via docker, seja nativamente.

A compra do Dell OptiPlex 3050

No último mês comprei um Dell OptiPlex 3050 D10U Mini PC usado por cerca de USD 100,00. As especificações quando comprei a máquina foram:

  • CPU: Intel Core i5 (i5-7500T) 3.2GHz Quad Core
  • Memory: 8GB DDR4
  • Hard Drive: 256GB SSD
  • Display Ports: 2
  • HDMI Port: 1
  • USB Ports: 6 (4x USB 3 Type-A (Gen1) ports; 2x USB 2 ports)
  • Headphone & Mic Port: Yes
  • Ethernet: 10/100/1000 Mbps, Gigabit

O Serverthehome fez, inclusive, uma review sobre esse computador anos atrás. Minha compra dele foi a partir do que já conhecia desse tipo de máquina e essa oportunidade de comprá-la por apenas USD 100,00.

Estou em fase de melhoria dela:

  • Upgrade para 32GB de RAM: Comprei 2 pentes de memória de 16GB cada para ficar com 32GB no total (obs.: a DELL informa que o limite da máquina são apenas 16GB, mas depois de muita leitura, resolvi arriscar colocar mais).
  • NVME M2 de 1TB: o slot de memória NVME veio vazio (o para wifi e para o formato 2280). Coloquei uma memória de 1TB para rodar o Proxmox e todas as máquinas virtuais.
  • Upgrade para 5TB de HDD SATA: removi o SSD de 256GB e troquei para um HDD de 5TB, pois, por ser um servidor, preciso de espaço para armazenamento dos meus conteúdos.

Instalando o Proxmox

Para a instalação na máquina nova, utilizei o tutorial do próprio site do Proxmox que é muito simple e rápido. Um dos pontos que eu deveria ter me atentado na instalação é que 1TB de armazenamento do Proxmox e minhas máquinas virtuais é um pouco de mais. Estou com uma margem gigantesca que não era necessária e que poderia ter sido corrigida durante a instalação.

Diferente da minha primeira instalação no Macbook Pro, dessa vez eu mudei a abordagem de como vou gerenciar o meu servidor. Em mantive minha VM do Home Assistant (que, inclusive, exportei da máquina antiga e “instalei” na nova sem a mínima dificuldade), mas instalei o Windows 11, Ubuntu Server 22.04 e diversos containers LXC descentralizando minha necessidade no Ubuntu Server.

O Windows 11

Eu havia instalado o Windows 7 na máquina antiga devido a alguns fatores:

  • Eu havia somente uma licença do Windows 7 na mão
  • O Macbook Pro de 2011, embora estivesse com 16GB de RAM, tinha outras máquinas rodando e um processador bem velho.

O Dell veio com o Windows 11 instalado e uma licença disponível. Aproveitei essa licença para uso na minha VM. Além disso, o Windows 7 já deixou de ser suportado pela Microsoft há algum tempo. Por fim, agora estou com 32GB de RAM e uma folga um pouco maior.

Aproveitei também que usei o NVME de 1TB e, após a primeira instalação e configuração do Windows 11, transformei a máquina em um Template, fazendo um clone dela para, de fato, usar como Windows 11. Se eu quiser ou precisar usar uma instalação nova, tenho disponível uma imagem pronta para isso.

O Ubuntu Server

Fiz uma instalação nova e fresca do Ubuntu Server. Minha instalação antiga do Ubuntu está com diversos problemas de erros de experimentos meus e queria começar do zero para evitar novas instabilidades.

Da mesma maneira do Windows, fiz uma instalação fresca e transformei ela em um Template para clonar rapidamente em novas máquinas virtuais.

Um dos clones, transformei em uma VM exclusive para rodar meus containers do Docker utilizando o Portainer como gerenciador. Rodei tudo em uma VM, pois a recomendação do próprio Proxmox era executar containers dockers somente em VM.

O segundo clone, será o que eu utilizarei para programar e rodar scripts diversos tendo acesso regular e risco eventual de eu “quebrar” a máquina.

Instalarei ainda um terceiro clone que utilizarei para fazer testes, mas, pelo momento, como prevenção para máquinas quebradas, estou utilizando snapshots.

Containers LXC

Eu fui apenas agora tentar aprender um pouco sobre containers LXC. Muito menos conhecidos do que o Docker, a vantagem deles é que eles são nativos no Proxmox, sendo de fácil instalação e manutenção. A partir disso, resolvi arriscar trabalhar com eles.

Uma ferramenta essencial que encontrei para instalar os containers foi o Github do tteck com scripts para Proxmox. Com os scripts dele, a instalação dos containers tornou-se muito, mas muito fácil. Eu ainda assim instalei alguns containers na mão (Tabula e Metabase) e foi um aprendizado interessante. Eu ainda sou um completo amador em servidores, virtualização e containerização, mas o quanto que aprendi no último mês foi incrível.

Atualmente, estou com os seguintes containers instalados:

  • Heimdall Dashboard: ainda uso o Heimdall porque estou muito acostumado com ele.
  • Change Detection: um dos containers mais importantes que possuo atualmente. Antes dele, eu fazia muita conferência na mão. Com ele, automatizei muitas tarefas da minha vida.
  • Audiobookshelf: eu utilizei pouco até hoje do Audiobookshelft, mas minha ideia é aumentar muito seu uso ainda.
  • Jackett, Sonarr, Radarr, Bazarr: eu rodava todos eles nativamente dentro do meu servidor Ubuntu, o problema é que se minha máquina “estragar” devido ao meu uso, eu perderia todos eles.
  • Tabula e Stirling-PDF: O Tabula sempre utilizei muito para extrair dados de tabelas PDF que me deparo regularmente. O Stirling-PDF veio para me ajudar a processar os diversos PDFs que também me deparo regularmente. No Mac o Preview ajuda muito, mas as funcionalidades do Stirling-PDF são fenomenais.
  • Syncthing: ele me ajuda a ter sincronizado diversos arquivos importantes, em especial meus scripts que executo em várias máquinas.
  • OpenMediaVault: para gerenciar os HDs externos que continuo a espetar na máquina.

Considerações finais

Pretendo expandir vários posts com mais detalhes técnicos dessa jornada no Proxmox. A intenção deste primeiro documento é dar uma visão geral de como planejei trabalhar nessa nova instalação do Proxmox.

Tags: 2024 digital life proxmox

Google Spreadsheets: Functions that I love (part 1)

On May 17th, 2022 in Tech

Yesterday I read an article from Wired (Spreadsheets Are Hot—and Cranking Out Complex Code) and it seems that spreadsheets are the new black.

That made think about how much do I use it on my everyday tasks and I noticed that I’m quite a heavy user and a good one. So I decided to write about it and I decided to start talking about my most used and loved ones.

Most of time I use spreadsheets to record activities and some numeric values. I’m not a heavy user on math functions or beautiful and elaborated charts. I’ve been playing with data science, but it’s a different activity mostly done using Plotly, Pandas and Python.

I wrote “Google Spreadsheets” despite “Spreadsheets” because I’m not using Excel any longer. Google Spreadsheets have a wider range of functions than Excel and the cloud allows you to run heavier functions without worring if you’ll brick your Excel file.

The most used one

UNIQUE + MATCH

Since I learned UNIQUE + MATCH my life spreadsheets had changed. UNIQUE + MATCH is much better than VLOOKUP and it let you work with a large ammount of data at once.

Tldr: UNIQUE + MATCH let’s you find a value on another sheet using a value/cell as reference.

E.g. You have a list of fruits and their weights in one sheet. On the other sheet, you have the list of the fruits and their prices. With UNIQUE + MATCH you can create a list with the fruits, weight and price, all at once.

Why UNIQUE + MATCH?

  • UNIQUE + MATCH is flexible. You can do horizontal/vertical lookups, 2-way lookups, left lookups, case-sensitive lookups and even lookups based on multiple criteria.
  • It works on Excel and Google Spreadsheet

INDEX function

Returns the content of a cell, specified by row and column offset.” (from Google)

Usage: “INDEX(reference, [row], [column])” (row and column are optional)

E.g.: “INDEX(A1:C20, 5, 1)” this function will get value on row 5, column 1 of the reference “A1:C20”. It will get the value from A5.

MATCH function

Returns the relative position of an item in a range that matches a specified value.” (from Google)

Usage: “MATCH(search_key, range, [search_type])” (search type is optional but it is usually defined)

E.g.: “MATCH(“Sunday”, A2:A9, 0)” this function will search for “Sunday” from cell A2 to cell A9. If, for e.g., “Sunday” is on cell A4, the function will return 3.

Now let the magic happen

The result is $689.00

When you join this 2 functions together, magic happens.

From this example, INDEX select, from C2:C5, the 4th value/row. That happens because MATCH search for Nissan (B7) from B2:B5 and finds that it is on the 4th row. The “0” after “B2:B5” means that I’m looking for an exact MATCH.

Where can I use INDEX + MATCH?

INDEX + MATCH allows you to use Google Spreadsheets or Excel like a small database. When you are working with a lot of data, it’s usually useful to separate it on multiple sheets. E.g.: you have a sheet listing all your contracts and, on another sheet, a list of all your clients. A client may have more than 1 contract with you and if you keep all the data in one sheet, you’ll have to change multiple fields every time that the client info is updated.

You can also use INDEX + MATCH to filter data from a large table where you are looking for a specific data, without the use of the filter function.

You’ll notice that INDEX + MATCH can be applied in many different cases that you need to check and validate data.

Tags: digital life spreadsheets