- Создаём 2 VM в yandex cloud со следующими параметрами: 2CPU 4RAM Centos7(остальное по минимальным требованиям)
- Прописываем в inventory playbook'a созданные хосты
- Добавляем в files файл со своим публичным ключом (id_rsa.pub). Если ключ называется иначе - найдите таску в плейбуке, которая использует id_rsa.pub имя и исправьте на своё
- Запускаем playbook, ожидаем успешного завершения
- Проверяем готовность Sonarqube через браузер
- Заходим под admin\admin, меняем пароль на свой
- Проверяем готовность Nexus через бразуер
- Подключаемся под admin\admin123, меняем пароль, сохраняем анонимный доступ
Выполнено с помощью скрипта start.sh (полный stdout в файле):
vagrant@server2:~/REPO/mnt-homeworks/09-ci-03-cicd$ ./start.sh apply
--- Starting Terraform ...
Initializing the backend...
Initializing provider plugins...
- Reusing previous version of terraform-registry.storage.yandexcloud.net/yandex-cloud/yandex from the dependency lock file
- Using previously-installed terraform-registry.storage.yandexcloud.net/yandex-cloud/yandex v0.72.0
Terraform has been successfully initialized!
...
vagrant@server2:~/REPO/mnt-homeworks/09-ci-03-cicd$ ./start.sh play
--- Using IP adresses ...
"51.250.70.242"
"62.84.112.18"
[WARNING]: Unable to parse /home/vagrant/REPO/mnt-homeworks/09-ci-03-cicd/infrastructure/inventory/hosts.yml as an inventory source
[WARNING]: No inventory was parsed, only implicit localhost is available
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: sonarqube
...
PLAY RECAP *********************************************************************************************************************************
nexus-01 : ok=17 changed=15 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
sonar-01 : ok=35 changed=27 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
--- All ok. Check the service!- Создаём новый проект, название произвольное
- Скачиваем пакет sonar-scanner, который нам предлагает скачать сам sonarqube
- Делаем так, чтобы binary был доступен через вызов в shell (или меняем переменную PATH или любой другой удобный вам способ)
- Проверяем
sonar-scanner --version - Запускаем анализатор против кода из директории example с дополнительным ключом
-Dsonar.coverage.exclusions=fail.py - Смотрим результат в интерфейсе
- Исправляем ошибки, которые он выявил(включая warnings)
- Запускаем анализатор повторно - проверяем, что QG пройдены успешно
- Делаем скриншот успешного прохождения анализа, прикладываем к решению ДЗ
Для исключения ошибок warning был дописан файл sonar-project.properties:
sonar.python.version=2.7, 3.7, 3.8
sonar.scm.disabled=true
- В репозиторий
maven-publicзагружаем артефакт с GAV параметрами:- groupId: netology
- artifactId: java
- version: 8_282
- classifier: distrib
- type: tar.gz
- В него же загружаем такой же артефакт, но с version: 8_102
- Проверяем, что все файлы загрузились успешно
- В ответе присылаем файл
maven-metadata.xmlдля этого артефекта
Файл maven-metadata.xml
-
Скачиваем дистрибутив с maven
-
Разархивируем, делаем так, чтобы binary был доступен через вызов в shell (или меняем переменную PATH или любой другой удобный вам способ)
-
Удаляем из
apache-maven-<version>/conf/settings.xmlупоминание о правиле, отвергающем http соединение( раздел mirrors->id: my-repository-http-unblocker) -
Проверяем
mvn --version -
Забираем директорию mvn с pom
-
Меняем в
pom.xmlблок с зависимостями под наш артефакт из первого пункта задания для Nexus (java с версией 8_282) -
Запускаем команду
mvn packageв директории сpom.xml, ожидаем успешного окончания -
Проверяем директорию
~/.m2/repository/, находим наш артефакт -
В ответе присылаем исправленный файл
pom.xml
Артефакт найден в директории ~/.m2/repository/
vagrant@server2:~/.m2/repository/netology/java/8_282$ ll
total 76
drwxrwxr-x 2 vagrant vagrant 4096 Jul 31 19:40 ./
drwxrwxr-x 3 vagrant vagrant 4096 Jul 31 19:40 ../
-rw-rw-r-- 1 vagrant vagrant 54980 Jul 31 19:40 java-8_282-distrib.tar.gz
-rw-rw-r-- 1 vagrant vagrant 40 Jul 31 19:40 java-8_282-distrib.tar.gz.sha1
-rw-rw-r-- 1 vagrant vagrant 388 Jul 31 19:40 java-8_282.pom.lastUpdated
-rw-rw-r-- 1 vagrant vagrant 175 Jul 31 19:40 _remote.repositories
Файл pom.xml