Pré -requisitos
Para ativar o repositório EPEL nas máquinas Centos 7 ou Centos 8 com Ansible:
Existem muitos artigos sobre Linuxhint dedicados à instalação do Ansible e configurando hosts para Ansible Automation. Você pode verificar esses artigos, se necessário, para seus propósitos.
Permitindo o repositório EPEL nos hosts do 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 anfitriões No diretório do projeto e abra -o com o editor de texto Nano da seguinte forma:
$ nano hosts
Um arquivo em branco anfitriões deve ser criado e aberto com o editor de texto nano.
Digite os endereços IP ou nomes de DNS das máquinas do CentOS 7 e do CentOS 8 (onde você deseja ativar o repositório EPEL) no CENTOS seção do anfitriões arquivo, como segue:
[CentOS]
192.168.20.169
192.168.20.222
Aqui, 192.168.20.169 é o endereço IP da minha máquina virtual do CentOS 8 e 192.168.20.222 é o endereço IP da minha máquina virtual do CentOS 7. Estes serão diferentes para você. Certifique -se de substituir os endereços IP da amostra por sua própria lista a partir de agora.
OBSERVAÇÃO: Você pode encontrar os endereços IP de seus hosts do CentOS com o seguinte comando:
$ hostname -i
Se seus hosts do CentOS tiverem nomes de DNS configurados, você poderá encontrá -los com o seguinte comando:
$ hostname -a
O final anfitriões O arquivo deve procurar como mostrado na captura de tela abaixo.
Agora, salve o arquivo hosts pressionando + X seguido pela Y e .
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 + X seguido pela Y e .
Agora, crie um novo manual Ansible enable_epel_repo.Yaml no Playbooks/ diretório da seguinte maneira:
$ nano Playbooks/enable_epel_repo.Yaml
Em seguida, digite os seguintes códigos no enable_epel_repo.Yaml arquivo:
- Hosts: Centos
Usuário: Ansible
tarefas:
- Nome: Ativar 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: Ativar 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 anfitriões arquivo.
Usuário: Ansible, O nome de usuário do SSH dos hosts (onde Ansible executará as tarefas) será Ansible.
Eu defini 2 tarefas aqui. Um para o CentOS 8 hosts e outro para os hosts do CentOS 7. A razão pela qual eu fiz dessa maneira é porque o gerenciador de pacotes padrão do CentOS 8 é DNF e o CentOS 7 é Yum. Uma tarefa (primeira tarefa) usará o DNF Package Manager e será executado apenas nos hosts do CentOS 8. A outra tarefa (última tarefa) usará o Yum Package Manager e será executado apenas nos hosts do 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 no código de verificação da versão do CentOS.
DNF e yum Módulos Ansible aceita 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 vai executar. 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 host é CentOS ou Redhat.
Ansible_facts ['distribution_major_version'] == '8', Verifica se a versão do sistema operacional host é 8 (CentOS 8 ou Redhat 8, neste caso).
Ansible_facts ['distribution_major_version'] == '7', Verifica se a versão do sistema operacional host é 7 (CentOS 7 ou Redhat 7, neste caso).
Então, salve enable_epel_repo.Yaml arquivo pressionando + X seguido pela Y e .
Agora, você pode executar o manual Ansible da seguinte maneira:
$ Ansible-Playbook Playbooks/enable_epel_repo.Yaml
O manual deve funcionar sem erros e o repositório EPEL deve ser ativado nos hosts do CentOS 7 e do CentOS 8.
Como você pode ver, o repositório EPEL está ativado no meu host do CentOS 8.
Como você pode ver, o repositório EPEL está ativado no meu host do CentOS 7.
Então, é assim que você permite o repositório EPEL no CentOS usando Ansible. Obrigado por ler este artigo.