Como criar um RPM
Em construção.
Pacote para módulo FWFLEX
Os módulos (rpms) da itflex são construídos no diretório itflex/server/pkgs/
do projeto itflex
. No arquivo Makefile principal, é especificado todos os pacotes e feito include de todos os demais makefiles de cada módulo.
Um módulo possui um diretório com o próprio nome e nele constam binários, libs, scripts e outros confs que serão empacotados. Também há um Makefile específico, com todos os comandos necessários para build e deploy. Em geral, esses comandos não mudam muito, sendo necessário apenas ajustar para o novo módulo criado.
No mesmo diretório, há também um arquivo de spec para o pacote. O spec é uma espécie de receita de bolo usada pelo comando rpmbuild para empacotar o RPM. Mais detalhes em What a SPEC file is. Em geral, a estrutura do spec também não muda muito de um módulo para o outro. Nele são especificados os pacotes dependência requeridos, confs a serem instalados no servidor, serviços a serem ativados, etc.
O build e deploy desses pacotes é feito através do bot + GitLab CI/CD. Criando os arquivos acima, é possível testar o funcionamento, gerando pacotes através do bot para a branch específica. Para saber como, veja Deploy de RPMs para Ambiente de Testes. Não é necessário alterar o CI/CD para adicionar novos módulos, mas para conhecer a fundo o funcionamento, veja Gitlab CI/CD Pipelines.
Pacote para ferramentas 3rd-party
Pacotes de terceiros adicionados no repo02 pela iTFLEX ficam no projeto itflex
em itflex/third_party/rpms/
. Cada pacote possui um diretório, um .tar.gz
do source code, arquivos confs customizados a serem empacotados e um arquivo de spec
. O spec é uma espécie de receita de bolo usada pelo comando rpmbuild para empacotar o RPM. Mais detalhes em What a SPEC file is.
No diretório há o arquivo Makefile com as instruições para build e deploy. Nele há os comandos de rpmbuild necessários. Em geral, não muda muito de um pacote para outro. É necessário avaliar caso a caso e construir o Makefile correto.
O deploy do Makefile copia o arquivo para o repo02, mas não executa createrepo para atulizar o repo. É possível fazer isso manualmente via SSH ou através de deploy do 3rd-party
pelo bot.
Para atualizaçao de versão de algum pacote, é necessário alterar no Makefile a versão. Por exemplo, o prometheus, pode ser alterado na linha 7 do Makefile de ${VERSION}-2
para ${VERSION}-3
. No spec do itflex-core
também precisa alterar a dependência para forçar a atualização. Por exemplo, o prometheus, pode ser alterado na linha 7 do spec de Requires: prometheus >= 2.5.0-2
para Requires: prometheus >= 2.5.0-3
.