This tool allows you to mirror RPM repositories in your own private network. Organization (mirroring) credentials are required to mirror SUSE repositories.
End-user documentation can be found in RMT Guide. man pages for rmt-cli can be found here.
- Activate your instance of SLE15 via
SUSEConnect -r <regcode> - Activate Server Applications module
SUSEConnect -p sle-module-server-applications/15/x86_64 - Install RMT with YaST installation wizard
zypper in rmt-server yast2-rmt - Run installation wizard for RMT
yast2 rmtand configure your instance
- Install RMT with YaST installation wizard
zypper in rmt-server yast2-rmt - Run installation wizard for RMT
yast2 rmtand configure your instance
RMT currently gets built for these distributions: SLE_15, SLE_15_SP1, openSUSE_Leap_15.0, openSUSE_Leap_15.1, openSUSE_Tumbleweed.
To add the repository, call: (replace <dist> with your distribution)
zypper ar -f https://download.opensuse.org/repositories/systemsmanagement:/SCC:/RMT/<dist>/systemsmanagement:SCC:RMT.repo
To install RMT, run: zypper in rmt-server
After installation configure your RMT instance:
- Prepare the database:
- Start MySQL/MariaDB by running
systemctl start mysql - Set database
rootuser password by runningmysqladmin -u root password - Make sure you can access to the database console as
rootuser by runningmysql -u root -p - Create a MySQL/MariaDB user with the following command:
mysql -u root -p <<EOFF GRANT ALL PRIVILEGES ON \`rmt\`.* TO rmt@localhost IDENTIFIED BY 'rmt'; FLUSH PRIVILEGES; EOFF - Start MySQL/MariaDB by running
- See RMT Configuration Files
in the official RMT documentation for information about
/etc/rmt.conf. - Start RMT by running
systemctl start rmt-server. This will start the RMT server at http://localhost:4224. - By default, mirrored repositories are saved under
/usr/share/rmt/public, which is a symlink that points to/var/lib/rmt/public. In order to change destination directory, recreate/usr/share/rmt/publicsymlink to point to the desired location.
Supported Ruby versions are 2.5.0 and newer.
-
Install the dependencies:
sudo zypper in libxml2-devel libxslt-devel libmariadb-develbundle install
-
Copy the file
config/rmt.ymltoconfig/rmt.local.ymlto override the default settings:- Add your organization credentials to
sccsection - Add your MySQL credentials
- Add your organization credentials to
-
Setup MySQL/MariaDB:
-
Grant the just configured database user access to your database. The following command will grant access to the default user
rmtwith passwordrmt(run it as root):
mysql -u root <<EOFF
GRANT ALL PRIVILEGES ON \`rmt%\`.* TO rmt@localhost IDENTIFIED BY 'rmt';
FLUSH PRIVILEGES;
EOFF
- Create databases by running
rails db:create db:migrate - Run
rails serverto run the web-server
In order to run the application locally using docker-compose:
- Copy
.env.examplefile to.env; - Add your organization credentials to
.envfile. Mirroring credentials can be obtained from the SUSE Customer Center; - Start the containers by running
docker-compose up. Runningdocker-compose up -dwill start the containers in the background; - Execute commands in the container, e.g.:
Alternatively, running
docker-compose exec rmt rmt-cli repos --helpdocker-compose exec rmt bashwill start the shell inside the container. - The web server will be accessible at http://localhost:8080/, this URL can be used for registering clients.
RMT is replacing some functionality of SMT. Following table outlines differences and similarities between the two tools. Last SLE version where SMT is available is 12. From version 15 onward only RMT is offered.
| Feature/Tech | SMT | RMT |
|---|---|---|
| Available on SLES11 | ✔️ | ❌ |
| Available on SLES12 | ✔️ | ❌ |
| Available on SLES15 | ❌ | ✔️ |
| Sync products data from SCC | ✔️ | ✔️ |
| Mirror RPMs from repositories | ✔️ | ✔️ |
| Selective mirroring(which products to mirror) | ✔️ | ✔️ |
| Serve RPMs via http | ✔️ | ✔️ |
| Registration of SLE 15 systems | ✔️ | ✔️ |
| Registration of SLE 12 systems | ✔️ | ✔️ |
| Registration of SLE 11 systems | ✔️ | ❌ |
| Migration support SLE 12 > 15 | ✔️ | ✔️ |
| Staging repositories | ✔️ | ❌1 |
| Air gap sync/mirroring for secure environments | ✔️ | ✔️ |
| NTLM Proxy support | ✔️ | ✔️ |
| Custom repositories | ✔️ | ✔️ |
| YaST installation wizard | ✔️ | ✔️ |
| YaST management wizard | ✔️ | ❌ |
| Client management | ✔️ | ❌ |
| Red Hat support (Expanded Support) | ✔️ | ❌2 |
| Files deduplication | ✔️ | ✔️ |
| Data transfer from SMT to RMT | - | ✔️ |
| Transfer registration data to SCC | ✔️ | ❌3 |
| Reporting | ✔️ | ❌ |
| Custom TLS certificates for web-server | ✔️ | ✔️ |
| Webserver | Apache2 | Nginx |
| Database | MariaDB | MariaDB |
| Platform | Perl | Ruby |
1: Functionality is offered by SUSE Manager
2: RES support is planned for SLES15 SP1
3: Registration data transfer to SCC is planned for SLES15 SP2
RMT partially implements the SUSE Customer Center API. You can read the details of each endpoint to find out whether they are supported by RMT.
Do you have suggestions for improvement? Let us know!
Go to Issues, create a new issue and describe what you think could be improved.
Feedback is always welcome!
