Se você tem gerenciado servidores do Windows por algum tempo, sem dúvida você tem muitos scripts do PowerShell para executar aquelas tarefas mundanas, mas necessárias, que você faz regularmente, como redefinir senhas, coletar dados de log ou arquivar arquivos de backup. Você sabia que o PowerShell no Jenkins é uma coisa?
Talvez você tenha scripts que você executa regularmente, talvez até tenha configurado um evento no agendador de tarefas na tentativa de automatizar seus scripts do PowerShell.
Existe uma maneira melhor.
Neste artigo, você vai aprender como instalar o Jenkins no Windows e executar um simples script do PowerShell. Você aprenderá como instalar o Jenkins, configurar a segurança básica, habilitar o plugin do PowerShell e executar um trabalho para criar um arquivo de texto simples com parâmetros que iremos inserir.
Este artigo destina-se a ser uma introdução básica ao Jenkins. A configuração que você vai aprender não é necessariamente destinada a ambientes de produção.
Pré-requisitos
A maior parte deste artigo será um passo a passo. Se você pretende acompanhar, certifique-se de ter alguns pré-requisitos em vigor.
Os requisitos para executar o Jenkins são tão mínimos que qualquer computador moderno poderia fazer isso. Os exemplos deste artigo serão todos baseados no Jenkins sendo executado em:
- Windows 10 Enterprise v.1903
- PowerShell Core v6
Embora o Jenkins possa ser executado em quase qualquer plataforma, vou me concentrar no Windows 10 Enterprise para simplificar as coisas.
Para instalar o Jenkins
, com os pré-requisitos cuidados, vamos instalar o Jenkins.
A instalação do Jenkins é simples e direta. Acesse https://www.jenkins.io/download/ e faça o download da versão de suporte a longo prazo (LTS). Existem duas versões disponíveis, a versão LTS e a versão “Semanal”. A versão “Semanal” é atualizada regularmente e pode ser instável. Para este artigo, estamos usando a versão LTS. Esta é a versão mais estável.
Como você pode ver na captura de tela abaixo, existem várias opções para escolher. Selecione a versão do Windows para iniciar o download.

Depois de baixar o instalador, extraia o arquivo zip e execute o instalador aceitando todas as opções padrão. A instalação é simples.
Após a conclusão da instalação, o Jenkins abrirá um navegador com a página Iniciando. Esta página contém a senha do administrador inicial para desbloquear o Jenkins e continuar a configuração. Você pode ver abaixo que o Jenkins está me dizendo para ler um arquivo de texto em C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword.

Acesse o arquivo mostrado, abra-o, copie a senha mostrada e use-a como senha do administrador na página Iniciando.
Instalando Plugins
Assim que você fizer login pela primeira vez, o Jenkins concluirá a configuração final e, em seguida, perguntará quais plugins instalar. Existem algumas opções, como você pode ver abaixo na captura de tela.
Selecionar Instalar plugins sugeridos instalará o conjunto recomendado de plugins com base nos cenários de uso mais comuns. Estes incluem plugins para provedores de autenticação, interações do GitHub e extensões Java. Selecionar plugin para instalar permite que você instale apenas os necessários de uma lista de todos os plugins disponíveis.
Destaque Instalar plugins sugeridos e clique em OK. Este processo levará alguns minutos para instalar os plugins iniciais, então agora é um bom momento para tomar um café.

Criando o Usuário Administrador
Uma vez que os plugins estejam instalados, o próximo passo é criar nosso primeiro usuário. Este primeiro usuário é o administrador do Jenkins e terá permissões globais, muito parecido com o Administrador da Empresa para o Windows Server. Você pode ver abaixo como será a página Criar Primeiro Usuário Administrador.

A partir deste ponto, a interface do Jenkins só é acessível inserindo um nome de usuário e senha válidos.
Configurando a URL do Admin do Jenkins
O último passo é configurar a URL para o serviço Jenkins rodar. Esta URL é a interface para gerenciar o programa Jenkins e, idealmente, deve ser configurada para um Nome de Domínio Totalmente Qualificado (FQDN). Configurá-lo para um FQDN permitirá acesso remoto, como um site. Para este artigo e para simplificar, aceite a URL padrão.

Configurando a Segurança
Com a instalação concluída, vamos configurar a autenticação. Navegue até o painel principal, se ainda não estiver aberto. No painel principal, clique em Gerenciar Jenkins e em seguida, clique em Configurar Segurança Global para abrir as configurações de segurança conforme mostrado abaixo.

Na página Configurar Segurança Global, você verá algumas opções para escolher. Para este artigo, vamos usar o próprio banco de dados de usuários do Jenkins para facilitar as coisas. Também é uma boa ideia desmarcar a opção Permitir que o usuário se inscreva, como mostrado abaixo. Com isso marcado, qualquer usuário pode criar uma conta e ter acesso ao Jenkins. .
Olhando para a captura de tela abaixo, existem outras opções para autenticação.
- Delegar ao contêiner de servlet – Isso é usado se você já tiver contêineres Docker configurados com o Jenkins e permite autenticação através do contêiner.
- LDAP – Essa opção é usada quando você já possui um Active Directory que deseja usar para autenticação.
Em seguida, escolha a opção Usuários conectados podem fazer qualquer coisa. Nesse modo, todo usuário conectado terá controle total do Jenkins. Isso pode não ser uma boa ideia para produção, pois permite que qualquer usuário faça alterações nas configurações.

Habilitando o plugin PowerShell no Jenkins
Com a configuração básica de segurança feita, é hora de configurar o plugin PowerShell no Jenkins. Para instalar o plugin PowerShell, navegue até o painel principal, clique em Gerenciar Jenkins, e em seguida, em Gerenciar Plugins, conforme mostrado abaixo.

Existem centenas de plug-ins, então a melhor maneira de encontrar o plug-in do PowerShell é pesquisar por ele. Na barra de filtro, digite “PowerShell” e selecione-o na lista. Marque a caixa, como mostrado abaixo, para ativá-lo. Isso permitirá que o Jenkins escreva comandos e scripts do PowerShell diretamente nas caixas de texto dentro do Jenkins e permitirá que o Jenkins invoque o PowerShell sem precisar iniciar um console do PowerShell separado.
Você pode ver abaixo como isso pode ser.

Com o plug-in ativado, o Jenkins está pronto para executar trabalhos do PowerShell.
Criando um trabalho do PowerShell no Jenkins
A instalação do plug-in do PowerShell no Jenkins está completa. Aqui vem a parte divertida. Vamos criar um trabalho.
No Jenkins, um trabalho é definido como uma série de tarefas a serem concluídas. Um cenário comum é um trabalho que iniciará a compilação de um programa quando um desenvolvedor fizer o check-in do código. Muito parecido com o Gerenciador de Tarefas no servidor Windows.
O trabalho que vamos configurar será verificar o diretório c:\temp e inserir um arquivo de texto nesse diretório com uma mensagem personalizada.
O Jenkins tem diferentes tipos de projetos, às vezes chamados de Pipelines, que se concentram em objetivos específicos. Os diferentes tipos de projetos terão configurações, opções e parâmetros diferentes, dependendo do tipo de projeto escolhido. Você pode encontrar mais informações sobre os tipos de projetos e quando usá-los no site do Jenkins.
Na tela principal, clique em Novo item. Para o nome do projeto, digite criando um arquivo de texto. Isso é arbitrário, mas é uma boa ideia rotulá-lo de forma que faça sentido.
Para este artigo, vamos usar o projeto Freestyle. Isso oferece a maior flexibilidade para criar o nosso projeto. Destaque o projeto Freestyle e role até o final e clique em OK.

Este projeto será um projeto parametrizado. Isso significa que podemos solicitar aos usuários uma entrada e essa entrada será passada para o projeto. Por exemplo, digamos que tenhamos um job PowerShell no Jenkins que copia arquivos de log para um diretório específico. Podemos adicionar uma solicitação ao job que pedirá um nome de arquivo para incluir na compilação quando executarmos o job.
Marque a opção Este projeto é parametrizado na lista suspensa. Clique na lista suspensa Adicionar Parâmetro e escolha Parâmetro de String. O parâmetro de string é onde você insere a mensagem que deseja incluir no arquivo de texto.

Em seguida, adicione um segundo Parâmetro de Escolha. Deverá ficar parecido com a captura de tela abaixo. Essa opção dará ao usuário opções para selecionar um item na lista suspensa.

As configurações do projeto devem ficar parecidas com a captura de tela abaixo.

Role para baixo até a seção Construir. Clique na seta pequena e selecione Windows PowerShell. Isso permite que o Jenkins saiba que estamos executando um script do PowerShell. Aqui também é onde inserimos o script do PowerShell. Este trabalho está agora pronto. Clique em Salvar.

Para um exemplo de script para o nosso trabalho do PowerShell no Jenkins, vamos criar um arquivo no diretório temp e adicionar uma mensagem simples.
Este é um script simples que criará um diretório temp na raiz, caso ainda não exista, e criará um arquivo de texto nesse diretório.
DICA: Escreva seu script em VSCode ou em outro editor primeiro e depois cole-o na caixa.
Executando o Trabalho do PowerShell no Jenkins
Finalmente, você está pronto para executar seu primeiro trabalho. Volte para o painel principal e você verá o trabalho Criar Arquivo de Texto listado no painel principal. Veja abaixo.

Clique no ícone do relógio à direita e abra o formulário do trabalho.

Na caixa de mensagem, insira o texto que deseja inserir no arquivo de texto e clique em construir. Assim que a construção estiver concluída, clique na saída do console. A saída do console mostra o status do trabalho e se a execução do trabalho foi bem-sucedida.

Agora, tudo o que resta fazer é abrir o gerenciador de arquivos e verificar o arquivo. Navegue até o diretório temp e abra o arquivo de texto. Ele terá o mesmo texto que você inseriu na caixa de mensagem da construção.

Resumo
Agora você tem uma compreensão básica do PowerShell no Jenkins. É uma ferramenta poderosa que pode ser usada para gerenciar seus scripts do PowerShell e automatizar todas as coisas!