Instalando Ansible:
Ansible está disponível no repositório EPEL do CentOS 8. Então, você pode instalar facilmente o Ansible no CentOS 8.
Primeiro, atualize o cache do repositório de pacotes DNF com o seguinte comando:
$ sudo dnf makecache
Agora, para ativar o repositório EPEL, instale o EPEL-RELEASE Pacote com o seguinte comando:
$ sudo dnf install-libelease
Para confirmar a instalação, pressione Y e depois pressione .
EPEL-RELEASE O pacote deve ser instalado e o repositório EPEL deve ser ativado.
Agora, atualize o cache do repositório de pacotes DNF novamente com o seguinte comando:
$ sudo dnf makecache
Agora, instale Ansible com o seguinte comando:
$ sudo dnf installible
Para confirmar a instalação, pressione Y e depois pressione .
O DNF deve começar a baixar todos os pacotes necessários da Internet.
Você pode ser solicitado a aceitar a chave GPG do repositório EPEL. Imprensa Y e depois pressione para aceitá -lo.
O DNF deve começar a instalar todos os pacotes baixados.
Neste ponto, Ansible deve ser instalado.
Agora, execute o seguinte comando:
$ Ansible -versão
Como você pode ver, estou correndo Ansible 2.9.3 e está funcionando muito bem.
Configurando servidores para Ansible:
Para gerenciar ou administrar servidores com Ansible, você deve instalar o servidor SSH e executar nos servidores. A porta SSH de servidores deve estar aberta e os servidores devem estar acessíveis a partir do host Ansible. Esse é o único requisito de usar Ansible.
Neste artigo, vou usar 4 máquinas virtuais (VMs) (2 Ubuntu Server 18.04 LTS VMS e 2 Debian 10 VMs) para demonstrar o básico do gerenciamento e administração do Ansible Server.
As 4 VMs são:
Linuxhint -F1A46 - 192.168.20.161
Linuxhint -8EE7A - 192.168.20.166
Linuxhint -S40 - 192.168.20.171
Linuxhint-S41- 192.168.20.170
Você pode usar os endereços IP dos servidores para gerenciá -los ou administrá -los com Ansible. Você também pode usar os nomes de DNS dos servidores também.
Neste artigo, usarei o /etc/hosts Arquivo para a resolução DNS dos endereços IP VMS.
Se você quiser acompanhar, abra seu /etc/hosts Arquivo com o VI Text Editor da seguinte forma:
$ sudo vi /etc /hosts
Agora, adicione as linhas marcadas na captura de tela abaixo e salve o arquivo.
Agora, gerar uma chave SSH no seu host Ansible Centos 8, da seguinte maneira:
$ ssh-keygen
Imprensa .
Imprensa .
Imprensa .
A chave SSH deve ser gerada.
Agora, você precisa fazer o upload da chave SSH para todos os servidores que deseja gerenciar com Ansible.
Para copiar a chave SSH para o VM1.Linuxhint.local Servidor, execute o seguinte comando:
$ ssh-copy-id [email protected]
Agora, digite sim e depois pressione .
Agora, digite a senha de login do VM1.Linuxhint.local Vm e pressione .
A chave SSH deve ser copiada.
Fazer a mesma coisa para o VM2.Linuxhint.local, VM3.Linuxhint.local e vm4.Linuxhint.local servidor.
$ SSH-COPY-ID [email protected]
$ SSH-COPY-ID [email protected]
$ SSH-COPY-ID [email protected]
Depois de copiar a chave SSH para as VMs, você poderá ser capaz de SSH sem nenhuma senha, como pode ver na captura de tela abaixo.
Agora, execute o seguinte comando em cada servidor para permitir o acesso do sudo sem senha para o usuário de login. Isso é necessário para o Ansible executar qualquer comando root.
$ echo "$ (whoami) all = (all) nopoasswd: all" | sudo tee /etc /sudoers.D/$ (WHOAMI)
Todos os servidores agora estão prontos para serem configurados ou gerenciados de Ansible.
Usando Ansible:
Ansible mantém uma lista de todos os hosts que ele gerencia em um arquivo chamado Arquivo de Inventário. O arquivo de inventário Ansible é apenas um arquivo de texto simples simples.
Vamos criar um novo diretório de projeto Ansible ~/Ansible/ Primeiro, depois criaremos nosso arquivo de inventário.
$ mkdir ~/Ansible
Agora, navegue para o ~/Ansible diretório.
$ CD ~/Ansible
Agora, crie um arquivo de inventário Ansible como segue. Você pode chamar este arquivo qualquer coisa. Eu vou chamá -lo anfitriões.
$ VI Hosts
Agora, você pode adicionar seus servidores da seguinte forma. Aqui, Ansible_user A opção é usada para definir o usuário que Ansible usará para executar comandos nesses servidores. Geralmente é o usuário de login do servidor.
Você também pode misturar endereços IP e nomes de DNS dos servidores no arquivo de inventário também.
Você também pode agrupar servidores. Aqui, eu tenho 2 grupos, servidor web e dbServer.
No servidor web grupo, eu adicionei VM1 e VM2 servidores. No dbServer grupo, eu adicionei VM3 e vm4 servidores.
Depois que o arquivo de inventário for criado, você pode usar o arquivo de inventário usando o -eu opção de Ansible.
Você pode listar todos os hosts do arquivo de inventário da seguinte forma:
$ Ansible -i Hosts -List -host
Você pode verificar se todos os hosts estão ativos da seguinte forma:
$ Ansible -i hosts -lista -hosts -m ping tudo
Como você pode ver, todos os hosts estão ativos.
Você também pode ping todos os hosts em um único grupo também.
$ Ansible -i Hosts -List -HOSTS -M Ping WebServer
Você pode executar comandos Shell usando Ansible da seguinte forma:
$ Ansible -i hosts -m shell -a 'comando'
Você também pode executar comandos de shell (com privilégios sudo) da seguinte forma.
$ Ansible -i hosts -b -become -method = sudo -m shell -a 'comando'| GrupoName>
Por exemplo, você pode atualizar o cache do repositório de pacotes apt nos hosts do WebServer Group usando Ansible da seguinte forma:
$ Ansible -i hosts -b -become -method = sudo -m shell -a 'apt update' webserver
Como você pode ver, o cache do repositório de pacotes apt é atualizado para todos os hosts no servidor web grupo.
Vamos tentar instalar o Apache 2 Web Server em todos os hosts do servidor web grupo.
$ Ansible -i hosts -b -become -method = sudo -m shell -a
'Apt Install -y Apache2' WebServer
O Apache WebServer deve ser instalado em todos os hosts do servidor web grupo.
Como você pode ver, o Apache Web Server está funcionando em todos os hosts em servidor web grupo.
$ Ansible -i hosts -b -become -method = sudo -m shell -a 'curl -si
http: // localhost 'web server
Da mesma maneira, você pode executar qualquer comando em todos os hosts em dbServer grupo.
$ Ansible -i hosts -m shell -a 'lsb_release -a' dbserver
Você também pode usar o Ansible Playbook para gerenciar seus servidores com mais facilidade. Ansible Playbook está fora do escopo deste artigo. Leia a documentação do Ansible para obter mais informações sobre o Ansible Playbook.
Obrigado por ler este artigo.