MikroTik-Router über das Terminal aktualisieren

Anfang des letzten Jahres schrieb ich einen Artikel darüber, wie ein MikroTik-Router über das Webinterface aktualisiert werden kann. Neben der Aktualisierung über das Webinterface, kann dieser Prozess auch direkt über das Terminal durchgeführt werden. Dazu muss sich per SSH mit dem Gerät verbunden werden:

ssh admin@192.168.1.1

Nachdem der Prompt erschienen ist, werden im ersten Schritt die Pakete aktualisiert und anschließend das System neu gestartet:

/system package update check-for-updates
/system package update download
/system reboot

Der Neustart des Routers muss hierbei bestätigt werden. Anschließend startet das System neu und installiert die aktuellen Pakete. Nach spätestens einigen Minuten sollte der Router wieder verfügbar sein, sodass sich wieder per SSH mit diesem verbunden werden kann. Im letzten Schritt wird der Bootloader des Routers aktualisiert. Die aktuelle Version kann hierbei über den Befehl:

/system routerboard print

eingesehen werden. Dabei werden eine Reihe von Informationen ausgegeben:

routerboard: yes
board-name: hAP lite
model: RouterBOARD 941-2nD
serial-number: XXXXXXXXXXXX
firmware-type: qca9531L
factory-firmware: 3.33
current-firmware: 3.33
upgrade-firmware: 6.46.1

Interessant ist hier vor allem der Eintrag current-firmware. Das eigentliche Update wird mit dem Befehl:

/system routerboard upgrade

nach einer Sicherheitsabfrage durchgeführt. Anschließend muss das System abermals neu gestartet werden:

/system reboot

Nachdem Neustart ist der Router damit auf die aktuellste Version aktualisiert.

GitHub Package Registry für Maven Packages nutzen

Vor einigen Wochen hat GitHub die GitHub Package Registry vorgestellt. Mit dieser ist es möglich fertige Packages direkt beim Projekt auf GitHub zu hosten. Aktuell unterstützt werden, neben Maven-Packages, unter anderem die Paketsysteme von NPM, Ruby, und NuGet. GitHub selbst definiert den Zweck der Registry wie folgt:

GitHub Package Registry allows you to develop your code and host your packages in one place. You can use packages from GitHub Package Registry as a dependency in your source code on GitHub.

Nach einer Registrierung unter github.com/features/package-registry kann das erste Paket für die Package Registry erstellt werden. Dazu muss im entsprechenden Java-Projekt in der pom.xml folgender Block hinzugefügt werden:

<!-- Definition for uploading artifact to custom repository -->
<distributionManagement>
    <repository>
        <id>github</id>
        <name>GitHub OWNER Apache Maven Packages</name>
        <url>https://maven.pkg.github.com/OWNER/mediawikixml</url>
    </repository>
</distributionManagement>

Das Wort OWNER muss dabei durch den eigenen GitHub-Nutzernamen ausgetauscht werden. Anschließend müssen die Zugangsdaten für GitHub hinterlegt werden. Dazu wird die Maven settings.xml geöffnet:

nano ~/.m2/settings.xml

Zu der Einstellungsdatei wird nun folgender Block hinzugefügt:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <activeProfiles>
    <activeProfile>github</activeProfile>
  </activeProfiles>

  <profiles>
    <profile>
      <id>github</id>
      <repositories>
        <repository>
          <id>central</id>
          <url>https://repo1.maven.org/maven2</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
        <repository>
          <id>github</id>
          <name>GitHub OWNER Apache Maven Packages</name>
          <url>https://maven.pkg.github.com/OWNER</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <servers>
    <server>
      <id>github</id>
      <username>USERNAME</username>
      <password>TOKEN</password>
    </server>
  </servers>
</settings>

Auch hier muss OWNER wieder durch den eigenen Nutzernamen ersetzt werden. Bei der Konfiguration müssen daneben die Felder USERNAME und TOKEN gefüllt werden. Das Token wird in den Einstellungen von GitHub unter Settings – Developer settings – Personal access tokens erzeugt.

Ein Personal Access Token muss für die Package Registry erzeugt werden

Nachdem das Token erzeugt wurde und die Konfiguration für Maven entsprechend hinterlegt wurde, kann das Package mittels:

mvn deploy

deployed werden und erscheint somit in der Package Registry. Angesehen werden kann das Paket nun mittels der URL:

https://github.com/OWNER/REPOSITORY/packages/

Zur Einbindung des neuen Paketes in einem anderes Projekt muss der pom.xml des anderen Projektes folgender Block hinzugefügt werden:

<!-- External non standard repositories -->
<repositories>
    <repository>
        <id>github</id>
        <url>https://maven.pkg.github.com/OWNER/REPOSITORY</url>
    </repository>
</repositories>

Anschließend kann das neue Paket ganz normal als Dependency hinzugefügt werden:

<dependency>
    <groupId>org.example</groupId>
    <artifactId>libtest</artifactId>
    <version>1.0.1</version>
</dependency>

Damit können schnell Pakete über die GitHub Package Registry bereitgestellt werden.