Fabric - Automatize suas tarefas de administração Linux e implantações de aplicativos sobre SSH

Fabric - Automatize suas tarefas de administração Linux e implantações de aplicativos sobre SSH

Quando se trata de gerenciar máquinas remotas e implantação de aplicativos, existem várias ferramentas de linha de comando existentes, embora muitas tenham um problema comum de falta de documentação detalhada.

Neste guia, abordaremos as etapas para introduzir e começar como usar o tecido para melhorar a administração de grupos de servidores.

Automatizar tarefas de administração do Linux usando o tecido

Tecido é uma biblioteca Python e uma poderosa ferramenta de linha de comando para executar tarefas de administração do sistema, como executar comandos SSH em várias máquinas e implantação de aplicativos.

Leia também: Use script de shell para automatizar tarefas de manutenção do sistema Linux

Ter um conhecimento prático de Python pode ser útil ao usar Tecido, mas pode certamente não ser necessário.

Razões pelas quais você deve escolher tecidos em vez de outras alternativas:

  1. Simplicidade
  2. Está bem documentado
  3. Você não precisa aprender outro idioma se você já é um cara Python.
  4. Fácil de instalar e usar.
  5. É rápido em suas operações.
  6. Ele suporta execução remota paralela.

Como instalar a ferramenta de automação de tecidos no Linux

Uma característica importante sobre o tecido é que as máquinas remotas que você precisa administrar apenas precisa ter o servidor OpenSSH padrão instalado. Você só precisa de certos requisitos instalados no servidor a partir dos quais está administrando os servidores remotos antes de poder começar.

Requisitos:

  1. Python 2.5+ com os cabeçalhos de desenvolvimento
  2. Python-setupsols e PIP (opcional, mas preferido) GCC

Tecido é facilmente instalado usando pip (altamente recomendado), mas você também pode escolher seu gerente de pacotes padrão YUM, DNF ou APT-GET para instalar o pacote de tecido, normalmente chamado tecido ou python-fabric.

Para RHEL/CENTOS Distribuições baseadas, você deve ter o repositório EPEL instalado e ativado no sistema para instalar o pacote de tecido.

# yum instalar tecido [em sistemas baseados em redhat] # dnf instale tecido [nas versões do Fedora 22+] 

Para Debian E são derivados como Ubuntu e hortelã Os usuários podem simplesmente fazer apt-get Para instalar o pacote de tecido como mostrado:

# tecido de instalação apt-get 

Se você deseja instalar a versão de desenvolvimento do tecido, você pode usar pip Para pegar o ramo mestre mais recente.

# yum install python-pip [em sistemas baseados em redhat] # dnf install python-pip [no fedora 22+ versões] # apt-get install python-pip [em sistemas baseados no debian] 

Depois que o PIP for instalado com sucesso, você pode usar o PIP para pegar a versão mais recente do Fabric, como mostrado:

# pip instalar tecido 

Como usar o Fabric para automatizar tarefas de administração do Linux

Então vamos começar como você pode usar o tecido. Durante o processo de instalação, um script python chamado fab foi adicionado a um diretório em seu caminho. O fab O script faz todo o trabalho ao usar o tecido.

Executando comandos na máquina Linux local

Por convenção, você precisa começar criando um arquivo python chamado fabfile.py Usando seu editor favorito. Lembre -se de que você pode dar a este arquivo um nome diferente como desejar, mas precisará especificar o caminho do arquivo da seguinte forma:

# Fabric --FABFILE/PATH/TO/O/arquivo.py 

Usos de tecido fabfile.py Para executar tarefas. O Fabfile deve estar no mesmo diretório em que você executa a ferramenta de tecido.

Exemplo 1: Vamos criar um básico Olá Mundo primeiro.

# vi fabfile.py 

Adicione essas linhas de código no arquivo.

Def Hello (): Print ('Hello World, Tecmint Community') 

Salve o arquivo e execute o comando abaixo.

# Fab Hello 
Uso da ferramenta de tecido

Vamos agora olhar para um exemplo de um fabfile.py Para executar o tempo de atividade comando na máquina local.

Exemplo 2: Abra um novo fabfile.py Arquivo o seguinte:

# vi fabfile.py 

E cole as seguintes linhas de código no arquivo.

#! /usr/bin/Env Python do tecido.API Importar Local Def UpTime (): Local ('Uptime') 

Em seguida, salve o arquivo e execute o seguinte comando:

# Fab Uptime 
Tecido: Verifique o tempo de atividade do sistema

Executando comandos em máquinas Linux remotas para automatizar tarefas

O API de tecido usa um dicionário de configuração que é o equivalente de Python a uma matriz associativa conhecida como Env, que armazena valores que controlam o que o tecido faz.

O Env.anfitriões é uma lista de servidores nos quais você deseja executar tarefas de tecido. Se sua rede for 192.168.0.0 e deseja gerenciar o host 192.168.0.2 e 192.168.0.6 com o seu fabfile, você pode configurar o Env.anfitriões do seguinte modo:

#!/usr/bin/Env Python do tecido.API Import Env.hosts = ['192.168.0.2 ',' 192.168.0.6 '] 

A linha de código acima especifica apenas os hosts nos quais você executará tarefas de tecido, mas não fará nada mais. Portanto, você pode definir algumas tarefas, o Fabric fornece um conjunto de funções que você pode usar para interagir com suas máquinas remotas.

Embora existam muitas funções, as mais usadas são:

  1. correr - que executa um comando shell em uma máquina remota.
  2. local - que executa o comando na máquina local.
  3. sudo - que executa um comando shell em uma máquina remota, com privilégios de raiz.
  4. Pegar - que baixam um ou mais arquivos de uma máquina remota.
  5. Colocar - que carrega um ou mais arquivos para uma máquina remota.

Exemplo 3: Para ecoar uma mensagem em várias máquinas, crie um fabfile.py como o abaixo.

#!/usr/bin/Env Python do tecido.API Import Env, Run Env.hosts = ['192.168.0.2 ',' 192.168.0.6 '] Def Echo (): Run ("Echo -n' Olá, você está sintonizado com Tecmint '") 

Para executar as tarefas, execute o seguinte comando:

# Fab Echo 
Tecido: Automatize tarefas Linux no Linux Remote

Exemplo 4: Você pode melhorar o fabfile.py que você criou anteriormente para executar o tempo de atividade comando na máquina local, para que ele execute o tempo de atividade Comando e também verifica o uso do disco usando o comando df em várias máquinas da seguinte forma:

#!/usr/bin/Env Python do tecido.API Import Env, Run Env.hosts = ['192.168.0.2 ',' 192.168.0.6 '] def 

Salve o arquivo e execute o seguinte comando:

# Fab UpTime # Fab Disk_space 
Tecido: automatize tarefas em vários sistemas Linux

Implante automaticamente a pilha de lâmpadas no servidor Linux remoto

Exemplo 4: Vejamos um exemplo para implantar LÂMPADA (Linux, Apache, MySQL/Mariadb e PHP) em um servidor Linux remoto.

Escreveremos uma função que permitirá que a lâmpada seja instalada remotamente usando privilégios root.

Para Rhel/Centos e Fedora
#!/usr/bin/Env Python do tecido.API Import Env, Run Env.hosts = ['192.168.0.2 ',' 192.168.0.6 '] DEF DEMPLATE_LAMP (): RUN ("Yum Install -y httpd mariadb-server php php-mysql") 
Para Debian/Ubuntu e Linux Mint
#!/usr/bin/Env Python do tecido.API Import Env, Run Env.hosts = ['192.168.0.2 ',' 192.168.0.6 '] DEF DEMPLATE_LAMP (): SUDO ("APT-GET INSTAL 

Salve o arquivo e execute o seguinte comando:

# FAB Implement_Lamp 

Observação: Devido à grande saída, não é possível criar um screencast (GIF animado) para este exemplo.

Agora você pode automatizar tarefas de gerenciamento de servidores Linux usando o Fabric e seus recursos e exemplos dados acima…

Algumas opções úteis para usar com tecido

  1. Você pode correr Fab -Help Para visualizar informações de ajuda e uma longa lista de opções de linha de comando disponíveis.
  2. Uma opção importante é -fabfile = caminho Isso ajuda você a especificar um arquivo de módulo Python diferente para importar outros fabfile.py.
  3. Para especificar um nome de usuário a ser usado ao se conectar a hosts remotos, use o -usuário = usuário opção.
  4. Para usar a senha para autenticação e/ou sudo, use o -senha = senha opção.
  5. Para imprimir informações detalhadas sobre o nome do comando, use -display = nome opção.
  6. Para ver os formatos de uso -lista opção, opções: curto, normal, aninhado, use o -List-format = formato opção.
  7. Para imprimir a lista de comandos e saídas possíveis, inclua o -lista opção.
  8. Você pode especificar o local do arquivo de configuração para usar usando o -config = caminho opção.
  9. Para exibir uma saída de erro colorido, use -colorize-errors.
  10. Para visualizar o número e saída da versão do programa, use o -versão opção.

Resumo

O tecido é uma ferramenta poderosa e está bem documentada e fornece um uso fácil para iniciantes. Você pode ler a documentação completa para entender mais isso. Se você tiver alguma informação para adicionar ou entrar em qualquer erro que encontrar durante a instalação e o uso, você pode deixar um comentário e encontraremos maneiras de consertá -los.

Referência: documentação de tecido