quarta-feira, 29 de novembro de 2023

Autenticando Proxmox com FreeIPA

 O FreeIPA é um sistema de gerenciamento de identidade gratuito e de código aberto. FreeIPA é o projeto de código aberto upstream para o Red Hat Identity Management.

E nesse caso vamos efetuar a autenticação do proxmox pelo freeipa

No FreeIPA crie um grupo e adicione os usuários a serem usado no proxmox 

no caso eu criei um grupo chamado "proxmox" onde os usuários nesse grupo podem gerenciar o proxmox , mas claro posso criar outros grupos para ter restriçoes nos proxmox , exemplo só para iniciar e reiniciar um vm , etc.. 

e nesse grupo eu adicionei o meu usuário e o admin 

Agora no proxmox vá em 'Datacenter > Permissions > Realms > e vá em Add selecione LDAP Server'


A Imagem aqui é auto explicativo nas informações a serem informadas 
Só add o Realm , Base Domain Name: , em Server add o IP do FreeIPA
em User Attribute use o 'uid' 
Agora em Sync Options adicione as informações para efetuar o sync de usuários e grupos , resumindo seria a conexão ali o usuário , senha ...
e marque as 3 opções 

e Depois só fazer um Sync 


Feito isso , agora vamos ajustar a permissão do Grupo 

Vá em "Datacenter > Permissions > Add > Group Permission


Em Path add o " / " que é a raiz 
Em Group add o Grupo Criado no FreeIPA no caso o proxmox-home.local
Em Role add como Administrator ;
e com isso todos do grupo " proxmox" serão admin do proxmox 



Agora só logar 
Em Realm : altere para o Domínio 




Referencias : 
https://hyperionlocal.net/index.php/2021/12/17/freeipa-part-3-integrating-other-services-into-your-domain/ 

https://forum.proxmox.com/threads/configuring-freeipa-ldap-server-with-proxmox.113500/





segunda-feira, 13 de novembro de 2023

Monitorando o seu Proxmox

 Nessa Dica vamos monitorar o Proxmox com InfluxDB e Grafana


Uma Maneira mais rápida e prática de subir o InfluxDB e grafana é claro usando em container e vamos subir no docker com docker compose 

Crie o seu arquivo compose yaml com a seguinte configuração 

version: "3"

services:

  grafana:

    image: grafana/grafana

    container_name: grafana_container

    restart: always

    ports:

      - 3000:3000

    networks:

      - monitoring_network

    volumes:

      - grafana-volume:/var/lib/grafana

  influxdb:

    image: influxdb

    container_name: influxdb_container

    restart: always

    ports:

      - 8086:8086

      - 8089:8089/udp

    networks:

      - monitoring_network

    volumes:

      - influxdb-volume:/var/lib/influxdb

networks:

  monitoring_network:

volumes:

  grafana-volume:

    external: true

  influxdb-volume:

    external: true

Vamos criar os Volumes para o InfluxDB e Grafana

# docker volume create influxdb-volume

# docker volume create grafana-volume

Vamos criar também um rede para eles 

# docker network create monitoring_network

Vamos iniciar agora 

# docker-compose up -d


Agora vamos Configurar o InfluxDB , acesse a aplicação do InfluxDB na porta 8086

E vamos definir o usuário de acesso assim como a sua senha, a Organização e também o bucket , e depois contine 


Na próxima tela já ira nos informar o API token onde usaramos na conf do InfluxDB no proxmox


Agora no Proxmox vamos efetuar a configuração 

Datacenter -->  Metric Server --> InfluxDB


E Adicione as seguinte informações , A imagem por si só já é bem explicativa


No Grafana Configure o DATA SOURCE para InfluxDB

e alteres os campos 





Agora Import o Dashboard 15356





E agora tudo ok , Meu cluster de Proxmox sendo monitorado 




Guia de Referencia : https://tcude.net/monitoring-proxmox-with-influxdb-and-grafana/

sábado, 11 de novembro de 2023

AWX no fedora CoreOS

   O AWX é uma plataforma de automação de TI de código aberto que fornece recursos para automação de tarefas operacionais, gerenciamento de configuração e orquestração de fluxos de trabalho. Ele é uma versão upstream do Red Hat Ansible Tower e é mantido pela comunidade.

 O Ansible é uma ferramenta de automação de TI que permite automatizar tarefas de gerenciamento de configuração, implantação de aplicativos e orquestração de infraestrutura. O AWX, por sua vez, é uma implementação de código aberto do Ansible Tower, oferecendo uma interface web para criar, monitorar e executar playbooks Ansible.

Algumas das principais características do AWX incluem:

* Interface Gráfica:

Fornece uma interface web intuitiva para gerenciar e executar playbooks do Ansible.

* Controle de Acesso:

Permite configurar políticas de controle de acesso para diferentes usuários e equipes.

* Agendamento de Tarefas:

Oferece a capacidade de agendar a execução automatizada de playbooks em horários específicos.

*Histórico e Auditoria:

Registra o histórico de execução das tarefas e fornece recursos de auditoria.

* Integração com Outras Ferramentas:

Pode ser integrado a outras ferramentas e sistemas através de APIs.

* Orquestração:

Suporta a orquestração de fluxos de trabalho mais complexos envolvendo várias tarefas e servidores.

  O AWX é útil para organizações que desejam adotar práticas de DevOps, automação de infraestrutura e gerenciamento de configuração para melhorar a eficiência operacional e reduzir a probabilidade de erros humanos em ambientes de TI.


Mão na Massa 

Vamos instalar o Awx de forma single host , facilidando muito a instalação mas não é o ideal , o correto é ele rodar em cluster , mas isso fica outro tutorial 

Instale o K3s 

sudo curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.27.6+k3s1 sudo sh -s - --write-kubeconfig-mode 644

Reinicie o host

$ sudo systemctl reboot


AWX Operator

vamos clonar o repo do Kurokobo , pois vamos instalar de forma single host e onde podemos deixar nossas playbook centralizado no host também 

$ git clone https://github.com/kurokobo/awx-on-k3s.git

$ cd awx-on-k3s/

$ git checkout 2.7.2

$ kubectl apply -k operator

e para ver se ficou ok 



Vamos preparar as arquivos de configuração inicial 

Crie o certificado 

$ AWX_HOST="awx.home.local"

$ openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -out ./base/tls.crt -keyout ./base/tls.key -subj "/CN=${AWX_HOST}/O=${AWX_HOST}" -addext "subjectAltName = DNS:${AWX_HOST}"

Ajuste o hostname no arquivo base/awx.yaml

...
spec:
  ...
  ingress_type: ingress
  ingress_tls_secret: awx-secret-tls
  hostname: awx.home.local     👈👈👈
...

Ajuste a senha no arquivo base/kustomization.yaml 

..
  - name: awx-postgres-configuration
    type: Opaque
    literals:
      - host=awx-postgres-13
      - port=5432
      - database=awx
      - username=awx
      - password=Ansible123!     👈👈👈
      - type=managed

  - name: awx-admin-password
    type: Opaque
    literals:
      - password=Ansible123!     👈👈👈
...
Vamos ajustar agora os dados persistentes , 
ajuste o arquivo base/pv.yaml e adicionar o caminho /home/<user>/data/..

$ cd ~
$ sudo mkdir -p data/postgres-13
$ sudo mkdir -p data/projects
$ sudo chmod 755 data/postgres-13
$  chown 1000:0 data/projects
 Execute o Deploy
$ kubectl apply -k base
Podes acompanhar o progresso pelo comando
$ kubectl -n awx logs -f deployments/awx-operator-controller-manager
Após finalizado só acessar pelo hosname configurado 



Referencia:  https://github.com/kurokobo/awx-on-k3s