É possível usar trabalhos no SaltStack Config para simplificar e automatizar tarefas e procedimentos comuns de gerenciamento de configuração que você ou sua equipe realizam regularmente.

O que são trabalhos no SaltStack Config?

Trabalhos são usados para executar tarefas de execução remota ou aplicar arquivos de estado aos nós (subordinados) que são gerenciados pelo SaltStack Config. Esses trabalhos geralmente são destinados a operações do sistema que precisam ser automatizadas e executadas muitas vezes. É possível criar trabalhos para automatizar tarefas comuns que você executa regularmente à medida que provisiona, configura, implanta, monitora e gerencia nós no seu sistema. Também é possível configurar trabalhos para execução em um agendamento regular, como trabalhos que verificam regularmente e evitam desvios de configuração.

Você pode salvar trabalhos repetidos com frequência e criar gradualmente uma biblioteca de trabalhos para reutilização futura pela sua equipe. O uso de trabalhos para o gerenciamento de configurações reduz o tempo que sua equipe gasta manualmente instalando, configurando, implantando e mantendo nós do sistema.

Exemplos de trabalhos comuns

Para obter uma introdução prática sobre como os trabalhos funcionam e para ver alguns exemplos práticos de trabalhos típicos, consulte estes tutoriais do Guia de Introdução do SaltStack Config:

Você pode executar milhares de tipos diferentes de trabalhos no SaltStack Config, dependendo das suas metas e objetivos pretendidos. Depois de identificar qual tarefa deseja realizar ou qual problema precisa resolver, você pode pesquisar os módulos Salt disponíveis para encontrar quais deles desempenham a função necessária.

Os trabalhos no SaltStack Config geralmente incorporam um ou mais módulos de execução ou módulos de estado que foram desenvolvidos pela comunidade de código aberto do Salt. Módulos de execução Salt são pequenos programas que contêm código Python e que podem ser executados em um subordinado Salt e realizar uma tarefa específica. Módulos de estado Salt são semelhantes a módulos de execução. Eles são programas que contêm código Python e que podem ser usados dentro de arquivos de estado Salt para gerenciar a aplicação de um estado a um subordinado.

A tabela a seguir mostra alguns dos módulos de execução e estado mais comumente usados:

Módulo Salt Descrição

state.apply

Um módulo que aplica um arquivo de estado a um subordinado. Quando o arquivo de estado é executado, ele verifica se o subordinado está no estado atual desejado. Se o subordinado não estiver no estado desejado atual, ele executará os comandos e módulos para colocar esse subordinado no estado desejado.

Um highstate aplica todos os estados definidos no arquivo “top”. Consulte state.highstate para obter mais informações.

pkg.installed

Um módulo de estado (o que significa que é usado em arquivos de estado) que verifica se a versão correta de um pacote está instalada. Se o pacote não estiver instalado, ele o instalará e garantirá que seja a versão correta desse pacote. Consulte salt.states.pkg para obter mais informações sobre a instalação de pacotes com determinados sistemas operacionais.

file.managed

Um módulo de estado (o que significa que ele é usado em arquivos de estado) que baixa um arquivo do mestre Salt e coloca esse arquivo nos subordinados de destino para uso posterior. Consulte salt.states.file para obter mais informações sobre o gerenciamento de arquivos com o Salt.

service.running

Um módulo de estado (o que significa que é usado em arquivos de estado) que verifica se um serviço está em execução. Se o serviço não estiver em execução, ele o iniciará. Consulte salt.states.service para obter mais informações sobre como iniciar ou reiniciar serviços com o Salt.

Consulte o Índice de módulos Salt para obter uma lista mais abrangente de módulos de estado e execução Salt.

Se o Salt não tiver um módulo necessário, você poderá estendê-lo gravando seus próprios módulos personalizados no Python. Se desejar, você também pode enviar esse módulo ao Salt Project. Oficialmente patrocinada pela VMware, a comunidade do Salt Project inclui mais de 3.000 colaboradores trabalhando em funções de administração de sistemas e TI. A comunidade Salt estende o Salt criando uma variedade de módulos de execução e estado para realizar as tarefas mais comuns ou resolver os problemas mais importantes que os administradores de sistema enfrentam.

Visão geral do fluxo de trabalho de trabalhos

Em geral, um administrador de sistema sênior cria, configura e salva as configurações de trabalho para reutilização posterior. Em seguida, o administrador sênior pode autorizar um administrador junior a executar esse trabalho em quaisquer nós (destinos) que o administrador júnior está autorizado a acessar. Ao criar um trabalho, o administrador sênior define as entradas de trabalho, que se referem às configurações de trabalho específicas ou variáveis que o administrador júnior pode alterar no tempo de execução.

Por exemplo, um administrador de sistema sênior pode criar um trabalho que cria e implanta uma máquina virtual e instala um conjunto base de aplicativos ou serviços nessa máquina. Esse trabalho pode ser executado toda vez que uma nova máquina virtual precisa ser implantada para garantir que o mesmo conjunto de aplicativos e configurações seja aplicado a todas as implantações. Depois de criar esse trabalho básico, o administrador sênior do sistema pode dar acesso a um administrador júnior para executar esse trabalho nos destinos (nós) aos quais ele tem permissão de acesso. Usando os controles de acesso baseados em função (RBAC) no SaltStack Config e orientado pelo princípio do menor privilégio, o administrador sênior pode determinar quais tarefas um administrador júnior pode executar e em quais nós (subordinados).

Criar e executar trabalhos é um processo de várias etapas que requer o uso de algumas ferramentas e espaços de trabalho diferentes no SaltStack Config. O diagrama a seguir fornece uma visão geral do fluxo de trabalhos:

Diagrama explicando o fluxo de trabalhos

Cada etapa é descrita nos seguintes artigos: