Usando SaltStack com pilares no Ubuntu 17.04

Embora o SaltStack seja uma ótima ferramenta para executar operações em muitos servidores simultaneamente, ele também suporta predefinições de configuração definidas por host armazenadas em um arquivo exclusivo, que também é chamado de "pilar". Neste guia, escreveremos uma pequena fórmula SaltStack para instalar o Nginx e automatizar a implantação de hosts virtuais usando pilares.

Exigências

  • Instância Vultr executando o Ubuntu 17.04 (master)
  • Duas instâncias do Vultr executando o Ubuntu 17.04 (minions)

Configurando o mestre

Se você está apenas começando e ainda não configurou o seu mestre do SaltStack, confira este artigo que explica como começar com o SaltStack.

Fórmula

Começamos com a criação da pasta da nossa fórmula, que mantém os arquivos necessários para as operações do SaltStack em nossos minions.

mkdir -p /srv/salt/nginx

Após criar a pasta, podemos continuar escrevendo o init.slsarquivo, que é uma parte essencial de todas as fórmulas:

nginx:
  pkg:
    - installed

/etc/nginx/sites-enabled/virtualhosts.conf:
    file.managed:
        - source: salt://nginx/files/virtualhosts.jinja
        - template: jinja
        - user: root
        - group: root
        - mode: 655

  cmd:
    - run
    - names:
        - service nginx restart

Como você já deve ter notado, o SaltStack usa o mecanismo de modelagem Jinja para gerar arquivos de configuração dinâmicos. Isso fornece uma ampla gama de possibilidades em nossos arquivos de modelo de configuração, como acessar código Python nativo ou definir variáveis ​​e similares. A próxima etapa consiste em criar o modelo para o nosso virtualhosts.confarquivo, enquanto precisamos criar a pasta primeiro:

mkdir -p /srv/salt/nginx/files

Depois que a pasta é criada, podemos continuar escrevendo o virtualhosts.jinjaarquivo:

{% for vhost in pillar['vhosts'] %}
server {
    listen {{ vhost['listenPort'] }};
    server_name {{ vhost['serverName'] }};
    root {{ vhost['documentRoot'] }};
    index {%- for index in vhost['indexFiles'] -%}{{ index }}{%- endfor -%};
    location / {
        try_files $uri $uri/ =404;
    }
}
{% endfor %}

Pilar

Depois de criar a fórmula, podemos prosseguir e configurar nossa base de pilar:

mkdir -p /srv/pillar/

Quaisquer referências para hosts que correspondam a um arquivo de pilar específico são gravadas no top.slsarquivo dentro do diretório que acabamos de criar. Em nosso exemplo, assumimos que existem dois lacaios com o nome do host nginxwww1e nginxwww2que atribuiremos a eles dois arquivos de pilar exclusivos:

base:
  'id:nginxwww1':
    - match: grain
    - nginxwww1
  'id:nginxwww2':
    - match: grain
    - nginxwww2

Em seguida, continuaremos criando um arquivo de pilar, nginxwww1enquanto que criaremos um vhost escutando na porta 81 para o domínio example.com, sendo a raiz do documento /var/www/example_com/e os arquivos de índice index.shtml:

vhosts:
    -
      listenPort: '81'
      serverName: 'example.com'
      documentRoot: '/var/www/example_com'
      indexFiles:
        - index.shtml

Continuaremos criando um arquivo de pilar, nginxwww2enquanto criaremos um vhost escutando na porta 82 para o domínio example2.com, sendo a raiz do documento /var/www/example2_com/e os arquivos de índice index.jse index.css:

vhosts:
    -
      listenPort: '82'
      serverName: 'example2.com'
      documentRoot: '/var/www/example2_com'
      indexFiles:
        - index.js
        - index.css

Nota: Os arquivos do pilar são armazenados no/srv/pillar/

Implantando

Agora podemos concluir nossa primeira tentativa com pilares, atualizando-os em nossos subordinados:

salt '*' saltutil.refresh_pillar

Depois, podemos executar a fórmula do SaltStack:

salt '*' state.sls nginx

Confirmando

Uma vez que a fórmula SaltStack foi executado e concluído sem erros, devemos ser capazes de ver nginxescuta na porta 81em nginxwww1e na porta 82em nginxwww2como confirmação.

Conclusão

Essa fórmula SaltStack bastante leve, mas já poderosa, pode ser estendida ainda mais para adicionar suporte a HTTPS, possivelmente com uma integração do Let's Encrypt, suporte para back-end CGI ou PHP e tudo o que você pode fazer manualmente. Este guia deve fornecer uma idéia básica das fórmulas e pilares do SaltStack usados ​​para a implantação de arquivos de configuração. Feliz automação!



Leave a Comment

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.