Pré-requisitos
Para habilitar o repositório EPEL em máquinas CentOS 7 ou CentOS 8 com Ansible:
- Você deve ter o Ansible instalado no seu computador.
- Você deve ter máquinas CentOS 7 ou CentOS 8 configuradas para automação Ansible.
Existem muitos artigos sobre LinuxHint dedicados à instalação do Ansible e configuração de hosts para automação do Ansible. Você pode verificar esses artigos, se necessário, para seus propósitos.
Habilitando Repositório EPEL em Hosts CentOS
Primeiro, crie um diretório de projeto ~ / projeto com o seguinte comando:
$ mkdir -pv ~ / project / playbooks
Navegue até o ~ / projeto diretório com o seguinte comando:
$ cd ~ / projeto
Crie um novo arquivo hospedeiros no diretório do projeto e abra-o com o editor de texto nano da seguinte forma:
hosts $ nano
Um arquivo em branco hospedeiros deve ser criado e aberto com o editor de texto nano.
Digite os endereços IP ou nomes DNS das máquinas CentOS 7 e CentOS 8 de destino (onde você deseja habilitar o repositório EPEL) no centos seção do hospedeiros arquivo, da seguinte forma:
[centos]192.168.20.169
192.168.20.222
Aqui, 192.168.20.169 é o endereço IP da minha máquina virtual CentOS 8 e 192.168.20.222 é o endereço IP da minha máquina virtual CentOS 7. Isso vai ser diferente para você. Certifique-se de substituir os endereços IP de amostra por sua própria lista a partir de agora.
NOTA: Você pode encontrar os endereços IP de seus hosts CentOS com o seguinte comando:
$ hostname -I
Se seus hosts CentOS têm nomes DNS configurados, você deve ser capaz de encontrá-los com o seguinte comando:
$ hostname -A
O final hospedeiros o arquivo deve se parecer com o mostrado na captura de tela abaixo.
Agora, salve o arquivo hosts pressionando
Crie um arquivo de configuração Ansible ansible.cfg do seguinte modo:
$ nano ansible.cfg
Digite as seguintes linhas no ansible.arquivo cfg:
[padrões]inventário =./ hosts
Depois de concluir esta etapa, salve o arquivo pressionando
Agora, crie um novo manual do Ansible enable_epel_repo.yaml no manuais / diretório da seguinte forma:
$ nano playbooks / enable_epel_repo.yaml
Em seguida, digite os seguintes códigos no enable_epel_repo.yaml Arquivo:
- hosts: centosusuário: ansible
tarefas:
- nome: Habilitar Repositório EPEL no CentOS 8
dnf:
nome: epel-release
estado: mais recente
tornar verdade
quando: ansible_facts ['os_family'] == 'RedHat' e ansible_facts
['Distribution_major_version'] == '8'
- nome: Habilitar Repositório EPEL no CentOS 7
yum:
nome: epel-release
estado: mais recente
tornar verdade
quando: ansible_facts ['os_family'] == 'RedHat' e ansible_facts
['Distribution_major_version'] == '7'
Neste código:
hosts: centos, seleciona apenas os hosts no centos grupo do hospedeiros Arquivo.
usuário: ansible, o nome de usuário SSH dos hosts (onde Ansible executará as tarefas) será ansible.
Eu defini 2 tarefas aqui. Um para hosts CentOS 8 e um para hosts CentOS 7. A razão de eu ter feito dessa maneira é porque o gerenciador de pacotes padrão para CentOS 8 é DNF e CentOS 7 é YUM. Uma tarefa (primeira tarefa) usará o gerenciador de pacotes DNF e será executada apenas em hosts CentOS 8. A outra tarefa (última tarefa) usará o gerenciador de pacotes YUM e será executada apenas em hosts CentOS 7.
Essas duas tarefas são quase idênticas. As únicas diferenças são os módulos do gerenciador de pacotes (dnf e yum) usado nas tarefas e o código de verificação de versão CentOS.
dnf e yum Módulos Ansible aceitam os mesmos parâmetros.
Aqui, nome: epel-release, o pacote a ser instalado é o epel-release.
estado: mais recente, o pacote epel-release deve ser instalado. Se o pacote já estiver instalado e uma versão atualizada estiver disponível, o pacote será atualizado.
quando: condição, se o doença é verdadeiro, então a tarefa será executada. Caso contrário, a tarefa não será executada.
ansible_facts, usado para acessar as variáveis de host Ansible.
ansible_facts ['os_family'] == 'RedHat', verifica se o sistema operacional do host é CentOS ou RedHat.
ansible_facts ['distribution_major_version'] == '8', verifica se a versão do sistema operacional do host é 8 (CentOS 8 ou RedHat 8, neste caso).
ansible_facts ['distribution_major_version'] == '7', verifica se a versão do sistema operacional do host é 7 (CentOS 7 ou RedHat 7, neste caso).
Então, salve enable_epel_repo.yaml arquivo pressionando
Agora, você pode executar o manual do Ansible da seguinte maneira:
$ ansible-playbook playbooks / enable_epel_repo.yaml
O manual deve ser executado sem erros e o repositório EPEL deve ser habilitado nos hosts CentOS 7 e CentOS 8.
Como você pode ver, o repositório EPEL está habilitado no meu host CentOS 8.
Como você pode ver, o repositório EPEL está habilitado no meu host CentOS 7.
Então, é assim que você habilita o repositório EPEL no CentOS usando o Ansible. Obrigado por ler este artigo.