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 rmt
and configure your instance
- Install RMT with YaST installation wizard
zypper in rmt-server yast2-rmt
- Run installation wizard for RMT
yast2 rmt
and 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
root
user password by runningmysqladmin -u root password
- Make sure you can access to the database console as
root
user 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/public
symlink 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-devel
bundle install
-
Copy the file
config/rmt.yml
toconfig/rmt.local.yml
to override the default settings:- Add your organization credentials to
scc
section - 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
rmt
with 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 server
to run the web-server
In order to run the application locally using docker-compose:
- Copy
.env.example
file to.env
; - Add your organization credentials to
.env
file. Mirroring credentials can be obtained from the SUSE Customer Center; - Start the containers by running
docker-compose up
. Runningdocker-compose up -d
will start the containers in the background; - Execute commands in the container, e.g.:
Alternatively, running
docker-compose exec rmt rmt-cli repos --help
docker-compose exec rmt bash
will 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!