Instalando Openshift Origin 3.11 com Ansible
Tentarei abordar a instalação do Openshift Origin de forma simplificada, irei apontar minhas maiores dificuldades e o que foi feito para sanar os possíveis problemas com a instalação através do Ansible.
Parte 2: Mãos na massa!
Para começar precisamos preparar o ambiente que o Ansible irá realizar o deploy de tudo que precisamos para subir nosso Cluster OKD Origin, provisionaremos três máquinas virtuais sendo elas:
Utilizei a rede 192 pois o OKD utiliza em sua rede interna os IP's 10 e 172, aconselho não utilizar esses IP's para os hosts, porque irá ter grandes problemas como eu tive =D
Caso queira ver os REQUISITOS mínimos recomentados pela OKD, verifique o link: Prerequisites - Installing a Cluster | Installation and Configuration | OpenShift Container Platform 3.6
O Sistema Operacional utilizado para instalação deve ser o CentOS, tendo em vista que é um projeto da Redhat eu irei utilizar o CentOS7.
Já defina o domínio que irá utilizar e os nomes dos hosts já na instalação da máquina, nesse exemplo iremos utilizar o domínio "okd.os", previamente provisionado no meu servidor DNS.
Aplicar em todas as máquinas:
sudo vim /etc/resolv.conf
Aplicar o nome e IP de todos os hosts em todos os hosts:
sudo vim /etc/hosts
Vamos declarar algumas variáveis de ambiente para garantir que no momento da instalação essas informações não se percam.
Aplicar em todas as máquinas:
HOSTS="$(head -n3 /etc/hosts)"
echo -e "$HOSTS" > /etc/hosts
echo -e '192.168.10.2 master.okd.os\n192.168.10.3 node1.okd.os\n192.168.10.4 node2.okd.os' > /etc/hosts
Vamos realizar algumas instalações de dependências que serão utilizadas no momento da instalação pelo Ansible.
Aplicar em todas as máquinas:
sudo yum install -y wget git zile nano net-tools docker-1.13.1 bind-utils iptables-services bridge-utils bash-completion
sudo yum install -y kexec-tools sos psacct openssl-devel httpd-tools NetworkManager python-cryptography python2-pip python-devel python-passlib
sudo yum install -y java-1.8.0-openjdk-headless "@Development Tools"
sudo yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker-1.13.1-75.git8633870.el7.centos
Vamos atualizar nossa biblioteca com um update.
Aplicar em todas as máquinas:
yum update -y
Necessário instalar o repositório.
Aplicar em todas as máquinas:
cd /etc/yum.repos.d && curl -O https://storage.googleapis.com/origin-ci-test/releases/openshift/origin/master/origin.repo
Vamos garantir o status do NetworkManager.
Aplicar em todas as máquinas:
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
sudo systemctl status NetworkManager
Para que a comunicação do Ansible funcione sem a necessidade de setar a senha de root no inventário dele (não é uma prática aconselhada por questões de segurança) iremos realizar a troca de uma chave pública com os demais hosts.
Criando as chaves Pública e Primária no Master:
ssh-keygen -t rsa
Pressione "Enter" para todas as perguntas, nesse exemplo não utilizaremos senha.
Agora iremos enviar a chave pública para todos os hosts:
ssh-copy-id root@master.okd.os
ssh-copy-id root@node1.okd.os
ssh-copy-id root@node2.okd.os
- MASTER - 4 vCPU 16 GB Ram 80 GB HDD | 192.168.10.2
- NODE1 - 2 vCPU 4 GB Ram 80 GB HDD | 192.168.10.3
- NODE2 - 2 vCPU 4 GB Ram 80 GB HDD | 192.168.10.4
Utilizei a rede 192 pois o OKD utiliza em sua rede interna os IP's 10 e 172, aconselho não utilizar esses IP's para os hosts, porque irá ter grandes problemas como eu tive =D
Caso queira ver os REQUISITOS mínimos recomentados pela OKD, verifique o link: Prerequisites - Installing a Cluster | Installation and Configuration | OpenShift Container Platform 3.6
O Sistema Operacional utilizado para instalação deve ser o CentOS, tendo em vista que é um projeto da Redhat eu irei utilizar o CentOS7.
Já defina o domínio que irá utilizar e os nomes dos hosts já na instalação da máquina, nesse exemplo iremos utilizar o domínio "okd.os", previamente provisionado no meu servidor DNS.
Preparando as máquinas
Insira o domínio e um DNS nas máquinas a fim de que elas tenha acesso à internet, irei utilizar o da Google.Aplicar em todas as máquinas:
sudo vim /etc/resolv.conf
search okd.os
nameserver 8.8.8.8
nameserver 8.8.8.8
Aplicar o nome e IP de todos os hosts em todos os hosts:
sudo vim /etc/hosts
192.168.10.2 master.okd.os
192.168.10.3 node1.okd.os
192.168.10.4 node2.okd.os
192.168.10.3 node1.okd.os
192.168.10.4 node2.okd.os
Vamos declarar algumas variáveis de ambiente para garantir que no momento da instalação essas informações não se percam.
Aplicar em todas as máquinas:
HOSTS="$(head -n3 /etc/hosts)"
echo -e "$HOSTS" > /etc/hosts
echo -e '192.168.10.2 master.okd.os\n192.168.10.3 node1.okd.os\n192.168.10.4 node2.okd.os' > /etc/hosts
Vamos realizar algumas instalações de dependências que serão utilizadas no momento da instalação pelo Ansible.
Aplicar em todas as máquinas:
sudo yum install -y wget git zile nano net-tools docker-1.13.1 bind-utils iptables-services bridge-utils bash-completion
sudo yum install -y kexec-tools sos psacct openssl-devel httpd-tools NetworkManager python-cryptography python2-pip python-devel python-passlib
sudo yum install -y java-1.8.0-openjdk-headless "@Development Tools"
sudo yum install -y curl vim device-mapper-persistent-data lvm2 epel-release wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct docker-1.13.1-75.git8633870.el7.centos
Vamos atualizar nossa biblioteca com um update.
Aplicar em todas as máquinas:
yum update -y
Necessário instalar o repositório.
Aplicar em todas as máquinas:
cd /etc/yum.repos.d && curl -O https://storage.googleapis.com/origin-ci-test/releases/openshift/origin/master/origin.repo
Vamos garantir o status do NetworkManager.
Aplicar em todas as máquinas:
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
sudo systemctl status NetworkManager
Para que a comunicação do Ansible funcione sem a necessidade de setar a senha de root no inventário dele (não é uma prática aconselhada por questões de segurança) iremos realizar a troca de uma chave pública com os demais hosts.
Criando as chaves Pública e Primária no Master:
ssh-keygen -t rsa
Pressione "Enter" para todas as perguntas, nesse exemplo não utilizaremos senha.
Agora iremos enviar a chave pública para todos os hosts:
ssh-copy-id root@master.okd.os
ssh-copy-id root@node1.okd.os
ssh-copy-id root@node2.okd.os
Parabéns , muito bom o artigo