Code Monkey home page Code Monkey logo

guia_ansible's Introduction

O Ansible é um orquestrador de servidores, pode ser utilizado para automatizar processos em escala, economizando tempo de forma simples e eficaz.

Instalação:

  • sudo apt-get install software-properties-common
  • sudo apt-add-repository ppa:ansible/ansible
  • sudo apt-get update
  • sudo apt-get install ansible

Configuração

  • Verifique se o pacote openssh-client e openssh-server estão instalados e funcionais na maquina que irá orquestrar as outras.
  • Abra o arquivo /etc/ansible/hosts com um editor de texto e adicione novo grupo com os ips das maquinas que serão orquestradas, abaixo consta um exemplo(substitua os xx pelos digitos do ip desejado):
[swarm-dev]

[email protected] #maquina 1 
[email protected] #maquina 2 
[email protected] #maquina 3 
[email protected] #maquina 4 
[email protected] #maquina 5 
  • Faça conexão ssh com cada uma das maquinas do grupo pelo menos uma vez e depois encerre essa conexão: ssh [email protected] e logo após exit
  • Verifique se o python2 está instalado em todas as maquinas que serão orquestradas: python2 --version , se não tiver instalado o próprio terminal irá indicar o comando para realizar a instalação
  • Feito os passos acima faça um teste de conexão do ansible com o grupo : ansible swarm-dev -m ping -k, caso esteja tudo ok irá aparecer uma mensagem de SUCCESS

OBS: a opção -k é para passar o password de acesso ssh, caso já tenha uma chave configurada em todas as maquinas para o usuário swarm essa opção pode ser retirada.

Utilizando playbooks:

Os playbooks do ansible são como scripts que são executados em paralelo nas maquinas orquestradas, é escrito em yaml. O playbook é dividido em tarefas(tasks) assim possibilitando uma visão melhor da execução em cada máquina.

  • Crie um playbook com o nome de test.yaml como o exemplo abaixo(todos os campos estão descritos nos comentários do arquivo):
--- 
- name: Teste # Nome do playbook
  hosts: swarm-dev # Nome do grupo de maquinas que será orquestrada
  become: yes # necessário para autenticar como sudo
  serial: 5 #Numero de execuções em paralelo 
  become_user: root #ao entrar na maquina, irá autenticar como sudo 
  become_method: sudo # Método para entrar como sudo 
  tasks:

     - name: Indicando o nome da maquina e dando oi # Nome da tarefa
       command: bash -lc "hostname && echo oi"  # Módulo utilizado para mandar comandos 
       register: result #Variável que guarda o resultado da execução do comando
     - debug: # Utilizado para mostrar uma mensagem
         msg: "{{ result.stdout_lines  }}" # Mensagem com o resultado da execução
  • Para utilizar o playbook : ansible-playbook test.yaml -k -K, OBS: o parâmetro -Ké utilizado para passar a chave de autenticação como sudo.

Playbook que executa um script em escala:

O ansible tem um modulo script que é utilizado para executar um script local nas maquinas do grupo selecionado.

  • Crie um script de teste chamado script.sh como o abaixo :
#!/bin/bash
echo oi 
echo Executando script na maquina $(hostname)
  • Crie um playbook com o nome script.yaml como o abaixo :
--- 
- name: Playbook de execução de scripts # Nome do playbook
  hosts: swarm-dev # Nome do grupo de maquinas que será orquestrada
  become: yes # necessário para autenticar como sudo
  serial: 5 #Numero de execuções em paralelo 
  become_user: root #ao entrar na maquina, irá autenticar como sudo 
  become_method: sudo # Método para entrar como sudo 
  tasks:

     - name: Executando script em escala # Nome da tarefa
       script: /home/rodrigo/scripts/script.sh #Local do script
       register: result #Variável que guarda o resultado da execução do comando
     - debug: # Utilizado para mostrar uma mensagem
         msg: "{{ result.stdout_lines  }}" # Mensagem com o resultado da execução
  • Verifique o caminho do script.sh no campo scriptdo playbook, no exemplo o caminho é /home/rodrigo/scripts/script.sh
  • Execute o playbook: ansible-playbook script.yaml -k -K

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.