Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marmoroju/windowsserver
Repositório para configuração de ambiente de teste com Vagrant, Jenkins, Git, SonarQube, SonarScanner em Windows Server
https://github.com/marmoroju/windowsserver
git jenkins sonarqube vagrant windows
Last synced: about 1 month ago
JSON representation
Repositório para configuração de ambiente de teste com Vagrant, Jenkins, Git, SonarQube, SonarScanner em Windows Server
- Host: GitHub
- URL: https://github.com/marmoroju/windowsserver
- Owner: Marmoroju
- Created: 2024-08-25T15:10:53.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-09-16T23:57:51.000Z (about 2 months ago)
- Last Synced: 2024-09-30T17:42:39.124Z (about 2 months ago)
- Topics: git, jenkins, sonarqube, vagrant, windows
- Homepage:
- Size: 37.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Links das Documentações
Para provisionar o "Provider" do VirtualBox:
- Link: https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vboxmanage-modifyvm.htmlPara provisionar VM Windows com Vagrantfile:
- Link: https://developer.hashicorp.com/vagrant/docs/vagrantfile/winrm_settingsPara alterar o espaço em disco após a VM ser criada:
- Link: https://docs.oracle.com/en/virtualization/virtualbox/6.0/user/vboxmanage-modifymedium.htmlPara instalação e configuração do Jenkins:
- Link: https://www.jenkins.io/doc/book/installing/windows/Para Download do JDK versão 17 LTS:
- Link: https://adoptium.net/temurin/releases/?os=windows&version=17Para Download do Jenkins versão LTS Windows:
- Link: https://www.jenkins.io/download/Para instalar e configurar IIS:
- Link: https://www.youtube.com/watch?v=gK_bLdu-AzIPara Download do Git:
- Link: https://git-scm.com/downloadsPara Download do SonarQube
- Link: https://www.sonarsource.com/products/sonarqube/downloads/Para Download do SonarScanner
- Link: https://docs.sonarsource.com/sonarqube/9.9/analyzing-source-code/scanners/sonarscanner/Para Documentação do Sonarlint
- Link: https://docs.sonarsource.com/sonarlint/vs-code/Para Instalação do Sonarlint no VCcode
- Link: https://www.youtube.com/watch?v=m8sAdYCIWhY&ab_channel=SonarPara Pipeline com Powershell
- Link: https://www.jenkins.io/blog/2017/07/26/powershell-pipeline/## Criar do zero uma Box do windows
1. Baixar a ISO do Windows
2. Criar VM e instalar a ISO
3. Alterar nome da VM para VagrantPC ou Vagrant
4. Criar usuario e senha vagrant
5. No terminal, navegue até o diretório onde a máquina virtual foi criada.
6. Opcional: Instalar WinRm e Atualizar o PowerShell para futura configuração do Ansible7. Execute o seguinte comando para criar a Box do Vagrant:
- Precisa estar com a VM desligada. Caso contrário o comando irá forçar o desligamento.
- `vagrant package --base nome_da_sua_vm_no_virtualbox`
- Isso criará um arquivo package.box no diretório atual.
- Ex.: `vagrant package --base Vagrant`
- A exportação da VM é um pouco demorada (Depndendo da configuração do PC).
- Logo após exportar, será realizada a compressão do arquivo que levará um tempo também.
- O Arquivo final terá em média 5GB a 6GB mais ou menos.8. Adicione a box à sua biblioteca do Vagrant:
- Execute o seguinte comando para adicionar a “box” à sua biblioteca do Vagrant:
- `vagrant box add windowsserver2019 package.box`
- Isso adicionará a box do Windows 10 à sua biblioteca LOCAL do Vagrant com o nome windowsserver2019.9. Crie um Vagrantfile para iniciar a máquina virtual:
- `vagrant init windowsserver2019`## Etapas de Configuração e Instalação Manual do Jenkins
### Instalação do Java JDK
- Essa instalação não será no padrão windows com "next, next, next"
- Inicie o arquivo JDK
- Siga até "Custom Setup" par alterar o local e variável de ambiente
- Opção "Set or override JAVA_HOME variable"
- "Will be installed on local hard drive"
- clicar em "JDK with Hostspot" e "Brownse"
- Alterar o caminho padrão C:\Program Files\Eclipse Adoptium\jdk-11.0.24.8-hotspot\
- Para C:\tools\jdk-11.0.24.8-hotspot\
- Next até o final- Configuração das Variáveis de Ambiente
- Configurações Avançadas do Sistema
- Avançado > Variáveis de Ambiente
- Localize o JAVA_HOME
- Edite o "valor" para C:\tools\jdk-11.0.24.8-hotspot\
- Ainda em JAVA_HOME
- Altere o "Path"
- C:\tools\jdk-11.0.24.8-hotspot\bin
- %JAVA_HOME%\bin- Copie e cole no terminal para conferir o retorno das variáveis
```bash
java -version
```
```bash
echo %JAVA_VERSION%
``````bash
echo %PATH%
```### Local Security Policy (Necessário para permissões do Jenkins)
- Local Policies
- User Rights Assignment
- Log on as a services
- Add User or Group
- administrator
- Check Names
- Apply
### Instalação do Jenkins
- Será instalado no C:\tools\Jenkins\
- Run service as local or domain user:
- Adicionar usuário e senha
- Porta Padrão 8080
- Conferir o caminho
- C:\tools\jdk-11.0.24.8-hotspot\
- Algumas configurações ainda serão realizadas, por isso o serviço ainda não será iniciado. Para isso:
- Clicar em Start Services
- Entire feature will be unavailable
- Opção 1: Copiar o arquivo jenkins.xml e substituir em C:\tools\Jenkins\- Opção 2: Configuração manual do arquivo jenkins.xml
- Abrir o local onde o Jenkins foi instalado
- 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
- Services
- Start Jenkins- Abra o navegador
- acesse http://localhost:8080/
- Siga as instruções de configuração inicial para alterar senha e instalar os plugins### Habilitar Jenkins para acesso Externo
- Abrir o Gerenciamento do Firewall
- Inbound Rules / Regras de Entrada
- Nova Regra
- Criar regra para porta 8080### Instalação do Git
- Pode ser instalado em C:\tools\Git
- Editor padrão deve ser alterado para Notepad++
- Após alterar o local e editor, basta seguir com "next, next"### Configurar no Jenkins o GIT, JDK e POWERSHELL
- Abra o Jenkins navegador
1. Configuração do Git
- Acesse:
- Gerenciar Jenkins
- Tools
- Git Installations
- Path to Git Executable (Adicione o caminho completo do bin onde foi instalado o git)
- C:\tools\Git\bin\git.exe2. Acesse a pasta do Git
- Dê permissão ao usuário que foi configurado para o Jenkins em sua instalação
- Neste caso, vagrant3. Configuração do JDK
- Acesse:
- Gerenciar Jenkins
- Tools
- JDK instalações
- Nome > JAVA_HOME
- JAVA_HOME > C:\tools\jdk-11.0.24.8-hotspot\ (Local de instalação do JDK)4. Aplicar e Salvar
5. Os arquivos utilizados nas builds dos pipelines serão armazenadas neste diretório:
- C:\data\jenkins_home\workspace\6. Instalar PowerShell
- Gerenciar Jenkins
- Plugins
- Extensões Disponíveis
- Pesquisar por PowerShell## Instalação e Configuração do IIS
1. Acesse o Server Manager
- Add roles and features
- Installation Type > Role-Based...
- Server Selection > ...server pool
- Server Roles > Web Server (IIS) > Add features
- Features > Click Next
- Web Server Role (IIS) > Click Next
- Role Services > Click Next
- Confirmation > Install
- Acesse o IP do servidor para conferir2. Configurar o Local Padrão do Site
- Acesse o Server Manager
- Tools (Menu superior direito)
- Internet Information Services (IIS) Manager
- Start Page > Nome_Local > Sites
- Default Web Site
- Propriedades > Manage Website > Advanced Settings
- Mostra o local padrão em "Physical Path"
- Default Document > Mostra o tipo de arquivo padrão index aceito pelo web-service exposto
- Diretório padrão > C:\inetpub\wwwroot## Instalação e Configuração do SonarQube e SonarScanner
1. Fazer o download do Sonarqube Community
- Extrair, copiar e colar na pasta:
- C:\tools\sonarqube-10.6.0.92116
- Acessar pelo Terminal:
- C:\tools\sonarqube-10.6.0.92116\bin\windows-x86-64
- Executar o arquivo StartSonar.bat
- Acessar no navegdor http://localhost:9000/2. Instalar o SonarService
- Acessar pelo Terminal como Administrador:
- C:\tools\sonarqube-10.6.0.92116\bin\windows-x86-64
- Executar o arquivo SonarService.bat
- SonarService.bat install
- Acesse Gerenciador de Serviços
- Abra os Seriços
- Inicie o Processo do SonarQube2. Fazer o download do SonarScanner
- Extrair, copiar e colar na pasta:
- C:\tools\sonar-scanner3. Instalar SonarScanner no Jenkins
- Abrir o Jenkins no navegador
- Gerenciar Jenkins
- Plugins
- Extensões Disponíveis
- Pesquisar por SonarQube Scanner
- Foi adidionado -Dhudson.model.UpdateCenter.pluginDownloadReadTimeoutSeconds=120 ao arquivo jenkins.xml, em "arguments" para poder instalar o scanner.5. Habilitar Sonarqube para acesso Externo
- Abrir o Gerenciamento do Firewall
- Inbound Rules / Regras de Entrada
- Nova Regra
- Criar regra para porta 9000## Utilização local do SonarScanner e configuração do sonar-scanner.properties
Antes de disparar o sonnar-scanner precisará ser realizada algumas configurações:
1. sonar-scanner.properties:
`C:\Local_da_Instalação\sonar-scanner\conf`Arquivo Original:
```bash
# 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):
```bash
# 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
```2. Permissões no projeto no SonarQube
- Criar e acessar o projeto
- Project Settings
- Permissions3. 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 /.
4. 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:
```bash
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.
```bash
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"
```4. Adicionar em Path nas váriáveis de ambiente, o caminho do bin de onde foi instalado o sonnar-scanner: `C:\Local_de_instalação\sonar-scanner\bin`
### Sonarlint - Extensão VScode
1. Nas extensões, procurar por Sonarlint e instalar2. Adicionar ao Sonarqube e configurar com o QualityGate do projeto
- Na barra lateral aparecerá um ícone com a logo do Sonarlint
- Clique nele e depois em "Add SonarQube Connection"
- irá pedir a URL
- Gerar Token
- Abrirá o navegador solicitando a permissão
- Salve a Conexão.3. Connected Mode
- Crie o projeto no SonarQube
- Crie o QualityGate
- Acesse o ícone do SonarLint
- Faça o bind da pasta do projeto no Sonarqube com a pasta do projeto local.