https://github.com/uyuni-project/inter-server-sync
https://github.com/uyuni-project/inter-server-sync
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/uyuni-project/inter-server-sync
- Owner: uyuni-project
- Created: 2020-10-13T10:03:16.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2024-08-01T14:39:18.000Z (10 months ago)
- Last Synced: 2024-08-01T15:56:38.752Z (10 months ago)
- Language: Go
- Size: 611 KB
- Stars: 6
- Watchers: 22
- Forks: 13
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSES/Apache-2.0.txt
Awesome Lists containing this project
README
[](https://api.reuse.software/info/git.fsfe.org/reuse/api)
# Inter Server Sync (ISS)
[](https://github.com/uyuni-project/inter-server-sync/actions/workflows/github-actions-tests.yml)
## Usage
run the command for more information:
`inter-server-sync -h`## Known limitations
- Source and target servers need to be on the same version.
- Export and import organization should have the same name.
- Export folder needs to be sync by hand to the target server.### on source server
- **Create export dir**: `mkdir ~/export`
- **Run command**: `inter-server-sync export --serverConfig=/etc/rhn/rhn.conf --outputDir=~/export --channels=channel_label,channel_label`
- **Copy export directory to target server**: `rsync -r ~/export root@:~/`### on target server
- **Run command: `inter-server-sync import --importDir ~/export/`## Database connection configuration
Database connection configuration are loaded by default from `/etc/rhn/rhn.conf`.
File location can be overwritten.
For development environments one can use a sample file in this project.Steps to run in locally in development mode:
1. copy sample file `cp rhn.conf.exaple rhn.conf`
2. fill all properties in `rhn.conf` with the appropriated values
3. use this configuration file by specifying the config parameter: `go run . -config=rhn.conf`## Extra
### Dot graph with schema metadata
`go run . dot --serverConfig=rhn.conf | dot -Tx11`
## Build and release
### 1. Create tag
- Install `uyuni-releng-tools` from [systemsmanagement:Uyuni:Utils](https://build.opensuse.org/project/show/systemsmanagement:Uyuni:Utils)
- Create a tag with the version number using `tito` and push it to github
```
tito tag --use-release=0
git push origin inter-server-sync-x.y.z-1
```### 2. Create a github release (optional)
- On github create a new version release based on the previous tag
### 3. OBS: project preparation
- Projects names:
- Uyuni: `systemsmanagement:Uyuni:Master`
- Head: Devel: `Galaxy:Manager:Head`
- Manager 4.3: `Devel:Galaxy:Manager:4.3`
- Package name: `inter-server-sync`In the checked out git repo:
```
export OSCAPI=https://api.opensuse.org
osc -A https://api.opensuse.org branch systemsmanagement:Uyuni:Master inter-server-sync
export OBS_PROJ=home::branches:systemsmanagement:Uyuni:Master
build-packages-for-obs && push-packages-to-obs
```### 4. OBS: create submit requests
Uyuni: `osc -A https://api.opensuse.org sr --no-cleanup inter-server-sync systemsmanagement:Uyuni:Master`
Manager Head: `osc -A https://api.suse.de sr --no-cleanup openSUSE.org: inter-server-sync Devel:Galaxy:Manager:Head`
For each maintained SUSE Manager version, one SR in the form: `iosc sr --no-cleanup openSUSE.org: inter-server-sync Devel:Galaxy:Manager:X.Y`