You've already forked rarus_1c_devops
mirror of
https://github.com/agibalovsa/-1C_DevOps.git
synced 2025-10-08 23:22:16 +02:00
Выполнены задачи:
- Исправлены отступы и ссылки в файле документации.
This commit is contained in:
committed by
Agibalov Sergey
parent
991337ea08
commit
05324dfa3c
@@ -6,14 +6,16 @@
|
||||
<p><b>Автор</b>: Агибалов Сергей</p>
|
||||
<p><b>Дата</b>: 08.10.2025</p>
|
||||
</div>
|
||||
<div><a href="https://yoomoney.ru/to/4100119287125731" style="Font-family: segoe script; Font-size: 20px; text-decoration: none; color: #000000; Font-weight: bold"><img src=".\organization_of_work_with_sonarqube\samurai.webp" width="80" height="80">Donate</a></div>
|
||||
<div><a href="https://yoomoney.ru/to/4100119287125731" style="Font-family: segoe script; Font-size: 20px; text-decoration: none; color: #000000; Font-weight: bold"><img src="./organization_of_work_with_sonarqube/samurai.webp" width="80" height="80">Donate</a></div>
|
||||
</div>
|
||||
|
||||
----
|
||||
|
||||
## Подготовка среды исполнения Sonarqube
|
||||
|
||||
Для разворачивания Sonarqube подойдет как виртуальная машина, так и LXC контейнер в рамках которых будет функционировать docker-контейнер. Для создания docker-контейнера необходимо развернуть **Docker engine**.
|
||||
|
||||
> [!NOTE]
|
||||
> См. статью [**Создание LXC контейнера Linux на основе шаблона Turnkey**]() (*будет добавлена позже...*)
|
||||
|
||||
На виртуальной машине или на хостовой машине контейнера **LXC** необходимо проверить следующие параметры:
|
||||
@@ -61,28 +63,28 @@ $> git clone https://github.com/agibalovsa/-1C_DevOps 1c_devops
|
||||
|
||||
## Создание образа контейнера Sonarqube
|
||||
|
||||
В репозитории **dockerfile** для **Sonarqube** можно найти по пути [docker/sonarqube/build](..\\..\\..\\..\docker\sonarqube\build\dockerfile).
|
||||
В репозитории **dockerfile** для **Sonarqube** можно найти по пути [docker/sonarqube/build](..//..//..//../docker/sonarqube/build/dockerfile).
|
||||
|
||||
Для инициализации сборки необходимо запустить файл `docker/init.sh`.
|
||||
|
||||
Шаг.1. Откроется окно ввода названия проекта сборки
|
||||
|
||||

|
||||

|
||||
|
||||
Шаг.2. Необходимо выбрать тип проекта `build`
|
||||
|
||||

|
||||

|
||||
|
||||
Шаг.3. Необходимо выбрать приложение `sonarqube`
|
||||
|
||||

|
||||

|
||||
|
||||
В каталоге репозитория `docker/users/builds/sonarqube` сформируются:
|
||||
|
||||
- `docker-build.sh` - Скрипт для сборки.
|
||||
- `.arg` - Файл с аргументами сборки (Аргументы сборки описаны в [здесь](..\\..\\..\\..\docker\sonarqube\README.md#создание-образа)).
|
||||
- `.arg` - Файл с аргументами сборки (Аргументы сборки описаны в [здесь](..//..//..//../docker/sonarqube/README.md#создание-образа)).
|
||||
|
||||

|
||||

|
||||
|
||||
Для сборки образа необходимо:
|
||||
|
||||
@@ -93,15 +95,16 @@ $> git clone https://github.com/agibalovsa/-1C_DevOps 1c_devops
|
||||
|
||||
### Инициализация compose
|
||||
|
||||
Файлы **compose** для **Sonarqube** можно найти в репозитории по пути [docker/sonarqube/compose](..\\..\\..\\..\docker\sonarqube\compose). Здесь можно увидеть:
|
||||
Файлы **compose** для **Sonarqube** можно найти в репозитории по пути [docker/sonarqube/compose](..//..//..//../docker/sonarqube/compose). Здесь можно увидеть:
|
||||
|
||||
- `common-compose.yml` - файл с параметрами развертывания среды общими для **compose** и для **swarm**.
|
||||
- `docker-compose.yml` - файл с параметрами развертывания среды только для **compose**.
|
||||
- `depends_on_postgres/depends_on_postgres-compose.yml` - файл приоритета запуска, в случае запуска **sonarqube** вместе с **postgres**.>
|
||||
|
||||
> **Информация.** Файлы **compose** созданы согласно [документации **Sonarqube**](https://docs.sonarsource.com/sonarqube-server/latest/server-installation/from-docker-image/starting-sonarqube-container).
|
||||
> [!NOTE]
|
||||
> Файлы **compose** созданы согласно [документации **Sonarqube**](https://docs.sonarsource.com/sonarqube-server/latest/server-installation/from-docker-image/starting-sonarqube-container).
|
||||
|
||||
Файлы **compose** для **Postgres** можно найти в репозитории по пути [docker/postgres/compose](..\\..\\..\\..\docker\postgres\compose).
|
||||
Файлы **compose** для **Postgres** можно найти в репозитории по пути [docker/postgres/compose](..//..//..//../docker/postgres/compose).
|
||||
|
||||
Для формирования скриптов запуска контейнера необходимо снова запустить `docker/init.sh`.
|
||||
|
||||
@@ -109,24 +112,25 @@ $> git clone https://github.com/agibalovsa/-1C_DevOps 1c_devops
|
||||
|
||||
Шаг.2. Необходимо выбрать тип проекта `compose`.
|
||||
|
||||

|
||||

|
||||
|
||||
Шаг.3. Можно выбрать 1 или 2 приложения: `sonarqube` и `postgres`.
|
||||
|
||||

|
||||

|
||||
|
||||
> **Информация.** Приложение **postgres** можно не выбирать, если оно уже установлено, и путь до него известен
|
||||
> [!NOTE]
|
||||
> Приложение **postgres** можно не выбирать, если оно уже установлено, и путь до него известен
|
||||
|
||||
Шаг.4. В случае установки 2х приложений необходимо выбрать дополнительную настройку `depends_on_postgres`
|
||||
|
||||

|
||||

|
||||
|
||||
В каталоге репозитория `docker/users/compose/sonarqube` сформируются:
|
||||
|
||||
- `docker-compose-up.sh` - Скрипт развертывания среды.
|
||||
- `docker-compose-down.sh` - Скрипт свертывания среды.
|
||||
- `docker-compose-logs.sh` - Скрипт просмотра логов среды.
|
||||
- `.env` - Файл с переменными среды (Переменные среды запуска описаны в [здесь](..\\..\\..\\..\docker\sonarqube\README.md#создание-контейнера)).
|
||||
- `.env` - Файл с переменными среды (Переменные среды запуска описаны в [здесь](..//..//..//../docker/sonarqube/README.md#создание-контейнера)).
|
||||
|
||||
### Переменные среды
|
||||
|
||||
@@ -176,7 +180,7 @@ ulimits:
|
||||
- `port` - это порт, который был задан в файле `common-compose.yml`.
|
||||
- `/sonarqube` - если задана переменная среды окружения `SONAR_WEB_CONTEXT`
|
||||
|
||||

|
||||

|
||||
|
||||
Первоначальные учетные данные **admin**/**admin**.
|
||||
|
||||
@@ -186,7 +190,7 @@ ulimits:
|
||||
|
||||
На скриншоте показан бэкап **LXC**-контейнера в **Proxmox**.
|
||||
|
||||

|
||||

|
||||
|
||||
После создания архива необходимо выполнить следующие шаги:
|
||||
|
||||
@@ -196,7 +200,7 @@ ulimits:
|
||||
|
||||
3. Необходимо проверить наименование переменных среды, и исправить **dockerfile**, файлы **compose** в случае необходимости
|
||||
|
||||
> **Например**. При переходе с 8.9 на 9.9 были переименования с `SONARQUBE_JDBC_URL` на `SONAR_JDBC_URL`.
|
||||
> При переходе с 8.9 на 9.9 были переименования с `SONARQUBE_JDBC_URL` на `SONAR_JDBC_URL`.
|
||||
|
||||
4. Изменить `.arg`, в котором указать:
|
||||
|
||||
@@ -318,9 +322,9 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
После проверки доменных имен необходимо указать параметр `Server base URL` в общих настройках **Sonarqube**
|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||
По сути дела, он должен быть таким же, как путь в браузере.
|
||||
|
||||
@@ -335,7 +339,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
Первый токен для авторизации необходимо сделать для приложения **Gitlab**. Для этого необходимо зайти в панель `Admin` в `Applications`.
|
||||
|
||||

|
||||

|
||||
|
||||
Далее необходимо создать новое приложение с помощью кнопки `New application`, задав следующие настройки
|
||||
|
||||
@@ -348,7 +352,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
После генерации токена необходимо скопировать `Application ID` и `Secret`.
|
||||
|
||||

|
||||

|
||||
|
||||
#### Доступ к проектам **Gitlab**
|
||||
|
||||
@@ -356,7 +360,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
Для этого, необходимо авторизоваться под этим системным пользователем и зайти в настройки профайла и далее в раздел `AccessTokens`.
|
||||
|
||||

|
||||

|
||||
|
||||
Далее необходимо создать новый токен с помощью кнопки `Create personal access token`, задав следующие настройки
|
||||
|
||||
@@ -366,7 +370,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
После генерации токена, его необходимо скопировать сразу же, иначе, позже он не будет больше доступен.
|
||||
|
||||

|
||||

|
||||
|
||||
## Настройка интеграции с ALM в Sonarqube
|
||||
|
||||
@@ -374,7 +378,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
1. Настройка конфигурации интеграции.
|
||||
|
||||

|
||||

|
||||
|
||||
1. Необходимо нажать кнопку `Создать конфигурацию`.
|
||||
2. Ввести имя конфигурации, например, *Gitlab*.
|
||||
@@ -384,7 +388,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
2. Аутентификация **GitLab**.
|
||||
|
||||

|
||||

|
||||
|
||||
1. Необходимо задать путь к сервису **Gitlab**, который будет состоять из доменного имени. Например, <https://hostname/gitlab>.
|
||||
2. Необходимо заполнить `Application ID` сгенерированным раннее значением.
|
||||
@@ -424,7 +428,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
2. Выйдет окно ввода токена доступа
|
||||
|
||||

|
||||

|
||||
|
||||
3. В этот раз нужно сгенерировать теперь токен доступа также как в разделе [Доступ к проектам **Gitlab**](#доступ-к-проектам-gitlab), но только для текущего пользователя (а не системного)
|
||||
|
||||
@@ -432,19 +436,20 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
4. После ввода персонального токена выйдет список проектов из **Gitlab**, необходимо выбрать нужный.
|
||||
|
||||
> **Внимание.** Проверьте, что в **Gitlab** необходимые проекты доступны и текущему и системному пользователям.
|
||||
> [!WARNING]
|
||||
> Проверьте, что в **Gitlab** необходимые проекты доступны и текущему и системному пользователям.
|
||||
|
||||

|
||||

|
||||
|
||||
5. При нажатии на кнопку `Импорт`, необходимо указать настройку соответствия чистому коду. Можно спокойно указывать `Использовать глобальную настройку`.
|
||||
|
||||
6. На следующем шаге необходимо указать метод анализа **Gitlab CI**.
|
||||
|
||||

|
||||

|
||||
|
||||
7. После чего откроется окно задания настроек интеграции с **Gitlab**
|
||||
|
||||

|
||||

|
||||
|
||||
1. Сгенерировать токен доступа `SONAR_TOKEN` к **Sonarqube** из **Gitlab-runner**:
|
||||
|
||||
@@ -452,7 +457,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
- Можно сгенерировать общий для нескольких проектов из настроек учетной записи пользователя с администраторскими правами.
|
||||
|
||||

|
||||

|
||||
|
||||
2. Задать переменные в `SONAR_HOST_URL` и `SONAR_TOKEN` в **Gitlab**(см. ниже).
|
||||
|
||||
@@ -485,7 +490,7 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
- В настройках группы
|
||||
- В настройках проекта
|
||||
|
||||

|
||||

|
||||
|
||||
Параметры переменных
|
||||
|
||||
@@ -498,7 +503,8 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
- `Protected` - False
|
||||
- `Masked` - True
|
||||
|
||||
> **Информация.** Если значение для `SONAR_TOKEN`было сгенерировано индивидуально для проекта, то его следует разместить в переменных CICD проекта, иначе значение следует разместить в в общих переменных CICD или в переменных группы.
|
||||
> [!IMPORTANT]
|
||||
> Если значение для `SONAR_TOKEN`было сгенерировано индивидуально для проекта, то его следует разместить в переменных CICD проекта, иначе значение следует разместить в в общих переменных CICD или в переменных группы.
|
||||
|
||||
#### Настройка файла конфигурации проекта `sonar-project.properties`
|
||||
|
||||
@@ -516,22 +522,23 @@ PING sonarqube (192.168.0.2) 56(84) bytes of data.
|
||||
|
||||
- `sonar.login` - (не обязательно) - токен для авторизации в **Sonarqube**.
|
||||
|
||||
> Информация. Параметры `sonar.host.url` и `sonar.login` указываются если на сервере **Sonarqube** включено требование принудительной авторизации и/или запрет анонимного анализа проектов.
|
||||
> [!NOTE]
|
||||
> Параметры `sonar.host.url` и `sonar.login` указываются если на сервере **Sonarqube** включено требование принудительной авторизации и/или запрет анонимного анализа проектов.
|
||||
|
||||
- `sonar.sourceEncoding` - кодировка файлов проекта.
|
||||
|
||||
- `sonar.sources` - пути к файлам проекта.
|
||||
|
||||
> **Обратите внимание**:
|
||||
>
|
||||
> - Все русскоязычные пути должны быть [преобразованы](https://unicode-table.com/ru/tools/decoder/) в юникод формат.
|
||||
> - Для проектов 1С, необходимо указать путь к файлам основной конфигурации, и пути к файлам каждого расширения отдельно.
|
||||
> [!CAUTION]
|
||||
> - Все русскоязычные пути должны быть [преобразованы](https://unicode-table.com/ru/tools/decoder/) в юникод формат.
|
||||
> - Для проектов 1С, необходимо указать путь к файлам основной конфигурации, и пути к файлам каждого расширения отдельно.
|
||||
|
||||
- `sonar.inclusions` - те файлы, которые необходимо анализировать.
|
||||
|
||||
- `sonar.exclusions` - те файлы, которые необходимо пропускать при проверке.
|
||||
|
||||
> **Информация.** Для проектов 1С сюда можно прописать файлы регламентированной отчетности, что сократит время проверки типовых конфигураций в разы.
|
||||
> [!TIP]
|
||||
> Для проектов 1С сюда можно прописать файлы регламентированной отчетности, что сократит время проверки типовых конфигураций в разы.
|
||||
|
||||
- `sonar.lang.patterns.xml` - определяет какие файлы относятся к **xml**.
|
||||
|
||||
@@ -630,7 +637,7 @@ sonarqube-check:
|
||||
|
||||
- Переходим `Admin` - `CI/CD`
|
||||
|
||||

|
||||

|
||||
|
||||
- Создаем новый **runner**
|
||||
|
||||
@@ -640,11 +647,12 @@ sonarqube-check:
|
||||
|
||||
- После создания runner выходит информация о регистрации, запомним ее
|
||||
|
||||

|
||||

|
||||
|
||||
2. Настроить **runner** на машине исполнения
|
||||
|
||||
> **Информация.** Можно настроить на той же машине, где настроен sonarqube.
|
||||
> [!NOTE]
|
||||
> Можно настроить на той же машине, где настроен sonarqube.
|
||||
|
||||
- **Runner** будет настроен через среду **compose**
|
||||
|
||||
@@ -728,7 +736,7 @@ sonarqube-check:
|
||||
|
||||
Также в кабинете **gitlab** настройках ранее зарегистрированного **runner** можно указать какие проекты он обслуживает.
|
||||
|
||||

|
||||

|
||||
|
||||
### Первый запуск проверки Sonarqube
|
||||
|
||||
@@ -747,7 +755,7 @@ sonarqube-check:
|
||||
<p><b>Почта</b>: agibalovsa@gmail.com</p>
|
||||
<p><b>Telegram</b>: @agibse</p>
|
||||
</div>
|
||||
<div><a href="https://yoomoney.ru/to/4100119287125731" style="Font-family: segoe script; Font-size: 20px; text-decoration: none; color: #000000; Font-weight: bold"><img src=".\organization_of_work_with_sonarqube\samurai2.webp" width="80" height="80">Donate</a></div>
|
||||
<div><a href="https://yoomoney.ru/to/4100119287125731" style="Font-family: segoe script; Font-size: 20px; text-decoration: none; color: #000000; Font-weight: bold"><img src="./organization_of_work_with_sonarqube/samurai2.webp" width="80" height="80">Donate</a></div>
|
||||
</div>
|
||||
|
||||
----
|
||||
|
Reference in New Issue
Block a user