Аутоматизација СонарКубе управљања извештајима
Управљање квалитетом кода за више микросервиса може бити застрашујући задатак. Аутоматизација процеса преузимања, складиштења и уписивања СонарКубе извештаја у Гит спремиште може значајно да поједностави овај ток посла.
У овом водичу ћемо вас провести кроз кораке за креирање басх скрипте која преузима СонарКубе извештаје за 30 микросервиса, чува их у одређеном директоријуму на Линук серверу и умеће их у Гит спремиште. На крају ћете такође научити команду за приказивање ових извештаја на вашем серверу.
Цомманд | Опис |
---|---|
mkdir -p | Креира директоријум ако већ не постоји. |
curl -u | Изводи аутентификовани ХТТП захтев за преузимање датотека са сервера. |
os.makedirs | Креира директоријум рекурзивно ако већ не постоји (Питхон). |
subprocess.run | Покреће команду са аргументима и чека да се заврши (Питхон). |
cp | Копира датотеке или директоријуме са једне локације на другу. |
git pull | Дохваћа и спаја промене из удаљеног Гит спремишта у тренутну грану. |
git add | Додаје промене датотека у радни директоријум у област за припрему. |
git commit -m | Записује промене у спремишту са поруком која описује промене. |
git push | Отпрема садржај локалног спремишта у удаљено спремиште. |
requests.get | Шаље ГЕТ захтев на одређену УРЛ адресу (Питхон). |
Аутоматизација СонарКубе управљања извештајима
Достављене скрипте су дизајниране да аутоматизују процес преузимања СонарКубе извештаја за више микросервиса, чувају их у одређеном директоријуму на Линук серверу и предају ове извештаје у Гит спремиште. Тхе почиње дефинисањем потребних променљивих као што су УРЛ адреса сервера СонарКубе, токен, листа микросервиса, директоријум ресурса и путања Гит спремишта. Затим креира директоријум ресурса ако не постоји користећи . Скрипта пролази кроз сваки микросервис, конструише УРЛ адресу извештаја и користи да преузмете извештај и сачувате га као ЈСОН датотеку у директоријуму ресурса.
Након преузимања извештаја, скрипта се мења у Гит директоријум спремишта, врши а како би се осигурало да има најновије измене и копира преузете извештаје у Гит спремиште. Затим поставља промене помоћу , урезује их поруком користећи , и гура промене у удаљено спремиште помоћу git push. Тхе обавља сличан скуп операција, користећи функција за креирање директоријума, за преузимање извештаја и subprocess.run за извршавање Гит команди. Ово подешавање осигурава да се СонарКубе извештаји систематски управљају и чувају.
Преузимање и чување СонарКубе извештаја за микросервисе
Басх скрипта за аутоматизацију управљања извештајима СонарКубе
#!/bin/bash
# Define variables
SONARQUBE_URL="http://your-sonarqube-server"
SONARQUBE_TOKEN="your-sonarqube-token"
MICROSERVICES=("service1" "service2" "service3" ... "service30")
RESOURCE_DIR="/root/resource"
GIT_REPO="/path/to/your/git/repo"
# Create resource directory if not exists
mkdir -p $RESOURCE_DIR
# Loop through microservices and download reports
for SERVICE in "${MICROSERVICES[@]}"; do
REPORT_URL="$SONARQUBE_URL/api/measures/component?component=$SERVICE&metricKeys=coverage"
curl -u $SONARQUBE_TOKEN: $REPORT_URL -o $RESOURCE_DIR/$SERVICE-report.json
done
# Change to git repository
cd $GIT_REPO
git pull
# Copy reports to git repository
cp $RESOURCE_DIR/*.json $GIT_REPO/resource/
# Commit and push reports to git repository
git add resource/*.json
git commit -m "Add SonarQube reports for microservices"
git push
# Command to display report in Linux server
cat $RESOURCE_DIR/service1-report.json
Аутоматизација Гит операција за СонарКубе извештаје
Питхон скрипта за управљање СонарКубе извештајима у Гиту
import os
import subprocess
import requests
# Define variables
sonarqube_url = "http://your-sonarqube-server"
sonarqube_token = "your-sonarqube-token"
microservices = ["service1", "service2", "service3", ..., "service30"]
resource_dir = "/root/resource"
git_repo = "/path/to/your/git/repo"
# Create resource directory if not exists
os.makedirs(resource_dir, exist_ok=True)
# Download reports
for service in microservices:
report_url = f"{sonarqube_url}/api/measures/component?component={service}&metricKeys=coverage"
response = requests.get(report_url, auth=(sonarqube_token, ''))
with open(f"{resource_dir}/{service}-report.json", "w") as f:
f.write(response.text)
# Git operations
subprocess.run(["git", "pull"], cwd=git_repo)
subprocess.run(["cp", f"{resource_dir}/*.json", f"{git_repo}/resource/"], shell=True)
subprocess.run(["git", "add", "resource/*.json"], cwd=git_repo)
subprocess.run(["git", "commit", "-m", "Add SonarQube reports for microservices"], cwd=git_repo)
subprocess.run(["git", "push"], cwd=git_repo)
# Command to display report
print(open(f"{resource_dir}/service1-report.json").read())
Побољшање аутоматизације са Црон пословима
Да бисте додатно аутоматизовали процес преузимања и објављивања СонарКубе извештаја, можете користити црон послове. Црон послови су заказани задаци у оперативним системима сличним Уник-у који се покрећу у одређеним интервалима. Подешавањем црон посла, можете да закажете да се скрипте покрећу аутоматски у редовним интервалима, на пример дневно или недељно, обезбеђујући да ваши СонарКубе извештаји буду увек ажурни без ручне интервенције. Да бисте креирали црон посао, можете користити команду за уређивање црон табеле и додавање уноса који наводи скрипту и њен распоред.
Овај приступ осигурава да је процес потпуно аутоматизован и смањује ризик од изостанка ажурирања извештаја. Поред тога, можете користити датотеке евиденције за праћење успеха или неуспеха извршења црон послова. Додавањем команди за евидентирање вашој скрипти, као нпр , можете креирати свеобухватан дневник свих активности. Ово подешавање обезбеђује ефикасан и поуздан начин за одржавање цевовода континуиране интеграције и континуиране испоруке (ЦИ/ЦД) за ваше микросервисе.
- Како да подесим црон посао за покретање моје скрипте?
- Можете подесити црон посао користећи команду и додавање реда са путањом распореда и скрипте.
- Које дозволе су потребне за покретање ових скрипти?
- Уверите се да корисник који покреће скрипте има дозволе за читање/уписивање у директоријуме и дозволе за извршавање датотека скрипте.
- Како могу да решим грешке у извршавању скрипте?
- Укључите руковање грешкама у своју скрипту користећи изјаве за проверу успешности команди и евиденцију грешака на одговарајући начин.
- Могу ли да користим другу алатку осим цурл за преузимање?
- Да, можете користити алате као што су или у Питхон-у за преузимање датотека.
- Како да осигурам да је моје Гит спремиште увек ажурно?
- Укључи на почетку ваше скрипте да преузмете најновије измене из удаљеног спремишта пре него што направите нова урезивања.
- Да ли је могуће покренути ове скрипте по распореду који није дневни?
- Да, можете да прилагодите распоред црон послова да се покреће сваки сат, недељно или у било ком другом интервалу тако што ћете изменити унос црон посла.
- Који је најбољи начин за безбедно складиштење мог СонарКубе токена?
- Чувајте свој СонарКубе токен у променљивој окружења или конфигурационој датотеци са ограниченим дозволама за приступ.
- Могу ли да погледам дневнике извршења мојих црон послова?
- Да, можете да видите евиденцију црон послова у системској црон лог датотеци или да креирате сопствену датотеку евиденције у оквиру скрипте.
- Како могу да проверим да ли су извештаји исправно преузети?
- Користити команду за приказ садржаја преузетих датотека извештаја и уверавање да су правилно форматирани.
Процес аутоматизације управљања СонарКубе извештајима укључује креирање скрипти за преузимање, складиштење и урезивање извештаја у Гит спремиште. Користећи басх и Питхон, можете поједноставити ове задатке и осигурати да се квалитет кода ваших микросервиса доследно надгледа и документује. Имплементација црон послова додаје додатни слој аутоматизације, смањујући ручне интервенције. Правилно руковање грешкама и евидентирање повећавају робусност система. Овај приступ не само да штеди време, већ се и глатко интегрише у ваш постојећи ЦИ/ЦД цевовод, пружајући поуздано решење за управљање СонарКубе извештајима на Линук серверу.