Deploy do IBM Sterling Connect:Direct em Red Hat OpenShift (TechZone) usando Ansible e Helm

Projeto: Containerização — IBM Sterling Connect:Direct

Email/Slack: carlos.pires@ibm.com


 1. Objetivo

Este documento descreve o processo completo, correto para instalar o IBM Sterling Connect:Direct em um cluster Red Hat OpenShift 4.

Com o objetivo de permitir que qualquer IBMista/Parceiro/IBMer repita o processo com sucesso, seguindo este guia.



 2. TechZone

 Utilizaremos o Ambiente OpenShift Cluster (VMware on IBM Cloud) - UPI - Public↗️

==> Componentes presentes no Ambiente:

2.1 Bastion Host

- RHEL 9
- Acesso via SSH
- Onde Ansible/Helm são executados

2.2 OpenShift Cluster 4.15 ou 4.16

- Masters + Workers
- StorageClass ativa
- Console Web e CLI (oc)

2.3 Repositórios
- GitHub IBM Sterling DevOps:
- https://github.com/ibm-sterling-devops/ansible-ibm-sterling
- IBM Entitled Registry:
cp.icr.io

Provisione seu Ambiente no link a seguir: Create a reservation↗️

IMPORTANTE: Ao preencher o formulário de inscrição no ITZ, use estes valores:
  • Purpose: Practice/Self-Education
  • Purpose Description: Level 3 training
  • Preferred Geography: choose location nearest to you
  • OpenShift Version (required): 4.14 - 4.15 - 4.16
  • Enable FIPS Security: No
  • Enable nested hardware virtualization on workers: No
  • Storage: ODF - 1 TB
  • Worker Node Count: 3
  • Worker Node Flavor: 16 vCPU x 64GB - 300 GB ephemeral storage





1- Test



1
- test for demo

2- itzvmware - AMERICAS - us-east region - wdc04 datacenter

 


----------------------------------------------------------------------------------------------------------------------------


🔧 Versão correta do OpenShift (OBRIGATÓRIO)

O IBM Sterling Connect:Direct somente instala em clusters Kubernetes 1.28.x.

Portanto, no TechZone você deve selecionar OpenShift 4.15 ou 4.16, pois:

- OpenShift 4.13 → Kubernetes 1.26 ❌ incompatível

- OpenShift 4.14 → Kubernetes 1.28 ✔️ compatível

- OpenShift 4.15 / 4.16 → Kubernetes 1.30 / 1.31 ✔️ compatível


    Se o cluster não estiver em OCP 4.15 ou 4.16, o erro abaixo sempre aparecerá:

    Error: chart requires kubeVersion >=1.28.0 <1.34.0 Cluster is Kubernetes v1.26.xx
    Selecione exatamente assim


    1- 4.16
    2 - 4 vCPU x 16 GB - 100 GB ephemeral storage
    3-     ODF - 1 TB

    ----------------------------------------------------------------------------------------------------------------------------




    ----------------------------------------------------------------------------------------------------------------------------


                                agurde a notificação no Email atualizando a VM para ready



    4. Acessando o Bastion

    → Copie e cole o comando SSH e em seguida a BASTION PASSWORD no terminal




    Exemplo SSH:

    ssh itzuser@api.<cluster>.techzone.ibm.com -p 40222

    Logo depois Cole a SENHA



    5 — Criar ~/.kube/config (IMPORTANTE)

    → Logado Dentro da VM, cole:

    mkdir -p ~/.kube

    oc config view --raw > ~/.kube/config


     Agora o Ansible consegue falar com o cluster.



     6. Configurar a Entitlement Key

    Obter em:
    👉 https://myibm.ibm.com/products-services/containerlibrary
    → Get Entitlement Key
    → Revelar com o 👁️
    → COPIE

     - Caso você não tenha sua chave, clique em Add New Key



    Volte ao terminal

    Cole (Adapte colocando sua KEY):

    export ENTITLED_REGISTRY_KEY="SUA_CHAVE"

    Confirmar:

    echo $ENTITLED_REGISTRY_KEY

     

    Após validar a presença da KEY, podemos ir ao OpenShift

     

     7. Login no OpenShift

    Entre no Openshift clicando no Link:


     Clique no retângulo verde, para entrar no OpenShift

     Guarde o Usuário e Senha dos retâgulos Vermelhos







    Clique em kube:Admin





    Insira seu usuraio: kubeadmin
    Insira sua senha: ************





    Agora, Logado no Openshift, clique no canto superior direirto em Kube:admin




    Depois em Copy login command 





    Clique em Display Tokien






    Copie o Tolkien





    No seu Terminal:
    1. Cole o Tolkien
    Se tudo deu certo, após colar você verá: [itzuser@localhost ~]$ oc login --token=sha256~KudY5EKJYcYDdjzLoj0R0LCpN D7Fhjw8Rb8ss3J9Zdo --server=https://api.691735c8a488e4b61e6fd77b.am1. techzone.ibm.com:6443 Logged into "https://api.691735c8a488e4b61e6fd77b.am1.techzone.ibm.com:6443" as "kube:admin" using the token provided. You have access to 71 projects, the list has been suppressed. You can lis t all projects with 'oc projects' Using project "default". 

     8. Instalar Dependências no Bastion

    ✔️ Git + Ansible

    sudo yum install -y git ansible

    ✔️ Biblioteca Kubernetes para Ansible

    sudo yum install -y python3-kubernetes

     9. Instalar Helm (correto para ambiente TechZone)

    No TechZone, /usr/bin e /usr/local/bin não permitem executar binários customizados.
    Portanto, o Helm deve ser instalado no diretório do usuário.

    Copie e Cole em Sequência:

    mkdir -p /home/itzuser/bin
    cd /tmp

     

    curl -LO https://get.helm.sh/helm-v3.19.2-linux-amd64.tar.gz

     

    tar -xzf helm-v3.19.2-linux-amd64.tar.gz
    mv linux-amd64/helm /home/itzuser/bin/helm
    chmod +x /home/itzuser/bin/helm
    export PATH=/home/itzuser/bin:$PATH
    echo 'export PATH=/home/itzuser/bin:$PATH' >> ~/.bashrc
    source ~/.bashrc

    Validar com:

    which helm
    helm version

    Exemplo esperado:

    /home/itzuser/bin/helm version.BuildInfo{Version:"v3.19.2", ...}

     10. Clonar o Repositório Oficial IBM Sterling DevOps

    git clone https://github.com/ibm-sterling-devops/ansible-ibm-sterling.git cd ansible-ibm-sterling export ANSIBLE_CONFIG=./ansible.cfg

     11. Definir Variáveis do Connect:Direct

    Nome do Node (máx 15 chars)

    export CD_NODENAME=CDNODE01

    Namespace a ser criado:

    export CD_NAMESPACE=connect-direct

    Definir Variáveis do Connect:Direct

    export CD_VERSION=6.4.0.2-iFix008-2025-08-21  

    Entitlement Key

    export ENTITLED_REGISTRY_KEY="SUA_CHAVE"

    Exportar o Storage Class 

    export CD_STORAGE_CLASS=ocs-storagecluster-ceph-rbd

    (facilitador) COPIE E COLE TODOS DE UMA VEZ export CD_NODENAME=CDNODE01 export CD_NAMESPACE=connect-direct export CD_VERSION=6.4.0.2-iFix008-2025-08-21 export ENTITLED_REGISTRY_KEY="<SUA_CHAVE>" export CD_STORAGE_CLASS=ocs-storagecluster-ceph-rbd

     12. Executar o Deploy

    Comando principal para iniciar a instalação:

    ansible-playbook playbooks/deploy_cd.yml

    (Final correto, 0 faileds)

     
    PARABÉNS você instalou o Connect:Direct


     13. Validar Instalação

    Listar pods:

    oc get pods -n connect-direct

    Resultado esperado:

    cdnode01-xxxxx Running

    Listar serviços:

    oc get svc -n connect-direct

    Listar secrets:

    oc get secret -n connect-direct

     14. Fluxo Completo e Correto (para copiar e colar)

    # LOGIN ssh itzuser@api.<cluster>.techzone.ibm.com -p 40222 oc login --token=sha256~SEU_TOKEN --server=https://api.<cluster>:6443 # KUBECONFIG mkdir -p ~/.kube oc config view --raw > ~/.kube/config chmod 600 ~/.kube/config # ENTITLEMENT export ENTITLED_REGISTRY_KEY="<CHAVE_REAL>" # DEPENDENCIAS sudo yum install -y git ansible sudo yum install -y python3-kubernetes # HELM mkdir -p ~/bin cd /tmp curl -LO https://get.helm.sh/helm-v3.19.2-linux-amd64.tar.gz tar -xzf helm-v3.19.2-linux-amd64.tar.gz mv linux-amd64/helm ~/bin/helm chmod +x ~/bin/helm echo 'export PATH=~/bin:$PATH' >> ~/.bashrc source ~/.bashrc # REPOSITÓRIO git clone https://github.com/ibm-sterling-devops/ansible-ibm-sterling.git cd ansible-ibm-sterling export ANSIBLE_CONFIG=./ansible.cfg # VARIÁVEIS OBRIGATÓRIAS export CD_NODENAME=CDNODE01 export CD_NAMESPACE=connect-direct export CD_VERSION=6.4.0.2-iFix008-2025-08-21 export CD_STORAGE_CLASS=ocs-storagecluster-ceph-rbd export ENTITLED_REGISTRY_KEY="<CHAVE_REAL>" # CONFIRMAR LOGIN oc whoami oc project # DEPLOY ansible-playbook playbooks/deploy_cd.yml # VALIDAÇÃO COMPLETA oc get all -n connect-direct oc get pvc -n connect-direct oc logs deployment/s0-cd -n connect-direct --tail=50

     15. Conclusão

    Esta documentação contém todas as etapas CORRETAS, testadas e funcionais, necessárias para realizar o deploy do Connect:Direct em OpenShift dentro do ambiente TechZone.

     inclui:

    - Instalação correta do Helm no TechZone

    - Configurações necessárias para Ansible

    - Deploy limpo via playbooks oficiais

    - Validação final

    ----------------------------------------------------------------------------------------------------------------------------


    🔷 Acessando a VM Bastion, verificando o ambiente e entrando no CLI do Connect:Direct

    Esta seção descreve como acessar a Bastion VM do TechZone, validar que o ambiente está correto e, principalmente, como entrar no container do Connect:Direct e abrir o CLI do C:D (ndmcli) manualmente.


    🔹 A) Conectar à Bastion VM

    Utilize o comando SSH fornecido pelo TechZone:

    ssh itzuser@api.<cluster>.techzone.ibm.com -p 40222

    Por que usamos isso?
    Porque o acesso ao cluster é feito exclusivamente através da Bastion VM, que atua como ponto seguro para executar comandos de Ansible, Helm e OpenShift CLI.

    Ao se conectar, a VM exibirá mensagens padrão do Red Hat, incluindo:

    - Informações sobre cockpit (interface web)

    - Avisos de auditoria IBM

    - Informações de login anterior

    Essas mensagens NÃO exigem ação do usuário.



    🔹 B) Validar se o Connect:Direct está em execução no cluster

    Execute:

    oc get pods -n connect-direct

    Saída esperada:

    NAME READY STATUS RESTARTS AGE s0-ibm-connect-direct-0 1/1 Running 0 XXm

    Por que?
    Antes de entrar no CLI, precisamos confirmar que o pod do C:D está ativo e saudável.


    🔹 C) Acessar o container do Connect:Direct

    Entre no pod usando:

    oc exec -it s0-ibm-connect-direct-0 -n connect-direct -- /bin/bash

    Saída esperada:

    [cdadmin@s0-ibm-connect-direct-0 cdinstall]$

    Por que?
    É o único método suportado para abrir uma sessão de terminal dentro do container do C:D.
    Somente dentro do pod é possível executar o binário ndmcli.


    🔹 D) Iniciar o CLI do Connect:Direct (ndmcli)

    Agora execute o CLI manualmente:

    /opt/cdunix/ndm/bin/ndmcli

    Saída esperada:

    ************************************************************** * Licensed Materials - Property of IBM * * IBM(R) Connect:Direct(R) for UNIX 6.4.0.2_iFix008 * ************************************************************** Enter a ';' at the end of a command to submit it. Type 'quit;' to exit CLI. Direct>

    Por que este caminho?
    Esse é o caminho padrão onde o Connect:Direct é instalado dentro do container.
    O comando ndmcli não está no PATH do container por questões de segurança, por isso usamos o caminho completo.


    🔹 E) Usando o CLI

    Exemplos:

    Submeter um processo para você mesmo

    Direct> sub file=/opt/cdunix/ndm/bin/sample.cd;
    Exemplo de saida: Process Submitted, Process Number = 1

    Ver Estatiscas do Processo

    sel stat pnum=1;


    Exemplo de saida correta:



    Para verificar se os arquivos foram transferido de forma correta, devemos analisar a lateral direita e notar se ela está zerada, se sim está corretissimo!!! 

    :

    Ver versão do C:D

    Direct> select stats;

    Sair do CLI

    Direct> quit


    Material Auxiliar
    https://ibm.box.com/s/hw5ds9hye7qz7awu4u55t6836g4hpy6n ↗️



    Postar um comentário

    1 Comentários