Para provisionar o "Provider" do VirtualBox:
Para provisionar VM Windows com Vagrantfile:
Para alterar o espaço em disco após a VM ser criada:
Para instalação e configuração do Jenkins:
Para Download do JDK versão 17 LTS:
Para Download do Jenkins versão LTS Windows:
Para instalar e configurar IIS:
Para Download do Git:
Para Download do SonarQube
Para Download do SonarScanner
Para Documentação do Sonarlint
Para Instalação do Sonarlint no VCcode
Para Pipeline com Powershell
Baixar a ISO do Windows
Criar VM e instalar a ISO
Alterar nome da VM para VagrantPC ou Vagrant
Criar usuario e senha vagrant
No terminal, navegue até o diretório onde a máquina virtual foi criada.
Opcional: Instalar WinRm e Atualizar o PowerShell para futura configuração do Ansible
Execute o seguinte comando para criar a Box do Vagrant:
vagrant package --base nome_da_sua_vm_no_virtualbox
vagrant package --base Vagrant
vagrant box add windowsserver2019 package.box
vagrant init windowsserver2019
Essa instalação não será no padrão windows com "next, next, next"
Siga até "Custom Setup" par alterar o local e variável de ambiente
Next até o final
Configuração das Variáveis de Ambiente
Localize o JAVA_HOME
Edite o "valor" para C:\tools\jdk-11.0.24.8-hotspot\
Ainda em JAVA_HOME
Copie e cole no terminal para conferir o retorno das variáveis
java -version
echo %JAVA_VERSION%
echo %PATH%
Run service as local or domain user:
Conferir o caminho
Algumas configurações ainda serão realizadas, por isso o serviço ainda não será iniciado. Para isso:
Opção 1: Copiar o arquivo jenkins.xml e substituir em C:\tools\Jenkins\
Opção 2: Configuração manual do arquivo jenkins.xml
C:\tools\Jenkins\
Abrir o arquivo jenkins.xml com algum editor de texto
Substituir na linha 34 (env name)
env name="JENKINS_HOME" value="%LocalAppData%\Jenkins.jenkins"/
env name="JENKINS_HOME" value="C:\data\jenkins_home"/
Substituir na linha 39 (executable)
C:\tools\jdk-11.0.24.8-hotspot\bin\java.exe
%JAVA_HOME%\bin\java.exe
Substituir na linha 40 (arguments)
-Xrs -Xms3g -Xmx3g -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Djava.io.tmpdir=C:\tools\jenkins\tmp\ -Dorg.apache.commons.jelly.tags.fmt.timeZone=America/Sao_Paulo -Duser.timezone=America/Sao_Paulo -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar "C:\tools\jenkins\jenkins.war" --httpPort=8080 --webroot="C:\tools\Jenkins\war" --pluginroot="C:\tools\Jenkins\plugins"
Substituir na linha 58 (pidfile)
C:\tools\Jenkins\jenkins.pid
criar pasta tmp em C:\tools\Jenkins\
Reiniciar a VM / Servidor
Iniciar o serviço do Jenkins
Abra o navegador
acesse http://localhost:8080/
Siga as instruções de configuração inicial para alterar senha e instalar os plugins
Acesse a pasta do Git
Configuração do JDK
Aplicar e Salvar
Os arquivos utilizados nas builds dos pipelines serão armazenadas neste diretório:
Instalar PowerShell
Acesse o Server Manager
Configurar o Local Padrão do Site
Fazer o download do Sonarqube Community
Instalar o SonarService
Fazer o download do SonarScanner
Instalar SonarScanner no Jenkins
Habilitar Sonarqube para acesso Externo
Antes de disparar o sonnar-scanner precisará ser realizada algumas configurações:
C:\Local_da_Instalação\sonar-scanner\conf
Arquivo Original:
# Configure here general information about the environment, such as the server connection details for example
# No information about specific project should appear here
#----- SonarQube server URL (default to SonarCloud)
#sonar.host.url=https://mycompany.com/sonarqube
#sonar.scanner.proxyHost=myproxy.mycompany.com
#sonar.scanner.proxyPort=8002
Adicionar ao final as configurações do servidor (Senha e Login podem ser passadas como variaveis de ambiente):
# Configure here general information about the environment, such as the server connection details for example
# No information about specific project should appear here
#----- SonarQube server URL (default to SonarCloud)
#sonar.host.url=https://mycompany.com/sonarqube
#sonar.scanner.proxyHost=myproxy.mycompany.com
#sonar.scanner.proxyPort=8002
#Default SonarQube server
sonar.host.url=http://localhost:9000/
sonar.login=seu_login
sonar.password=seu_password
Para facilitar, pode ser criado um arquivo .bat na pasta bin do sonar-scanner com o mesmo código gerado no Sonarqube, basta alterar o -D"sonar.sources=."
com o caminho em que o seu código está, neste caso, está apontando para o workspace do Jenkins. Lembrando sempre de alterar a \ para /.
Além do código gerado pelo projeto do SonarQube, deve ser adicionado um parâmetro após o sonar.sources, que é o -D"sonar.projectBaseDir=C:/data/jenkins_home/workspace/jenkins_file/"
, pois o Sonar-Scanner trabalha com outro diretório padrão, por isso deve ser passado o diretório de onde será analisado o código.
Por exemplo, inicialmente no projeto será gerado um código como esse:
sonar-scanner.bat -D"sonar.projectKey=app" -D"sonar.sources=." -D"sonar.host.url=http://localhost:9000" -D"sonar.token=SEU_TOKEN"
Depois ele deverá ser adaptado dessa forma para poder criar o arquivo bat, por exemplo.
sonar-scanner.bat -D"sonar.projectKey=app" -D"sonar.sources=C:/data/jenkins_home/workspace/jenkins_file/" -D"sonar.projectBaseDir=C:/data/jenkins_home/workspace/jenkins_file/" -D"sonar.host.url=http://localhost:9000" -D"sonar.token=SEU_TOKEN"
C:\Local_de_instalação\sonar-scanner\bin
Nas extensões, procurar por Sonarlint e instalar
Adicionar ao Sonarqube e configurar com o QualityGate do projeto