{"id":13468070,"url":"https://github.com/AlmaLinux/almalinux-deploy","last_synced_at":"2025-03-26T03:31:31.397Z","repository":{"id":37268074,"uuid":"338070164","full_name":"AlmaLinux/almalinux-deploy","owner":"AlmaLinux","description":"EL to AlmaLinux migration tool.","archived":false,"fork":false,"pushed_at":"2024-12-10T15:28:33.000Z","size":144,"stargazers_count":550,"open_issues_count":32,"forks_count":75,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-03-20T18:21:43.091Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlmaLinux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"almalinux","open_collective":"almalinux-os-foundation"}},"created_at":"2021-02-11T15:33:41.000Z","updated_at":"2025-02-26T15:40:39.000Z","dependencies_parsed_at":"2024-01-13T18:06:40.734Z","dependency_job_id":"89f12f8a-7d8b-4ec1-9344-a9a5a98a1cf4","html_url":"https://github.com/AlmaLinux/almalinux-deploy","commit_stats":{"total_commits":79,"total_committers":22,"mean_commits":3.590909090909091,"dds":0.810126582278481,"last_synced_commit":"7f39369c56e59a1a13d6c8da15f2dee7857b5d78"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlmaLinux%2Falmalinux-deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlmaLinux%2Falmalinux-deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlmaLinux%2Falmalinux-deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlmaLinux%2Falmalinux-deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlmaLinux","download_url":"https://codeload.github.com/AlmaLinux/almalinux-deploy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245373171,"owners_count":20604629,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T15:01:05.042Z","updated_at":"2025-03-26T03:31:31.371Z","avatar_url":"https://github.com/AlmaLinux.png","language":"Shell","funding_links":["https://github.com/sponsors/almalinux","https://opencollective.com/almalinux-os-foundation"],"categories":["Shell","Install from Source"],"sub_categories":["Operating Systems"],"readme":"# almalinux-deploy\n\nAn EL to AlmaLinux migration tool.\n\n## Usage\n\nIn order to convert your EL8 and EL9 operating systems to AlmaLinux do the following:\n\n1. CentOS 8.4 or 8.5 is required to convert to AlmaLinux.  It is recommended to update to 8.5 prior to moving to\nAlmaLinux but not required if you are on at least CentOS 8.4.  Rebooting after the updates is recommended if your system\nreceived new updates.\n\n    ```shell\n    sudo dnf update -y\n    sudo reboot\n    ```\n\n  - As of January 31, 2022 the CentOS 8 mirrorlists are offline.  In order to successfully perform `dnf update -y`\nyou need to update your `dnf` config files to point to a valid mirror.  You can use the following `sed` commands for\nconvenience to restore `dnf` to a functional state that will let you update to 8.5 and subsequently AlmaLinux.\n    - ```bash\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[baseos\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/BaseOS/$basearch/os' /etc/yum.repos.d/CentOS-Linux-BaseOS.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[appstream\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/AppStream/$basearch/os' /etc/yum.repos.d/CentOS-Linux-AppStream.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[cr\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/ContinuousRelease/$basearch/os' /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[devel\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/Devel/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Devel.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[extras\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/extras/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Extras.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[fasttrack\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/fasttrack/$basearch/os' /etc/yum.repos.d/CentOS-Linux-FastTrack.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[ha\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/HighAvailability/$basearch/os' /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[plus\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/centosplus/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Plus.repo\n      sudo sed -i -e '/mirrorlist=http:\\/\\/mirrorlist.centos.org\\/?release=$releasever\u0026arch=$basearch\u0026repo=/ s/^#*/#/' -e '/baseurl=http:\\/\\/mirror.centos.org\\/$contentdir\\/$releasever\\// s/^#*/#/' -e '/^\\[powertools\\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/PowerTools/$basearch/os' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo\n      ```\n    - You can use the `-f` flag (ie `sudo bash almalinux-deploy.sh -f`) to handle this for you.\n2. Back up of the system. We didn't test all possible scenarios so there\n   is a risk that something goes wrong. In such a situation you will have a\n   restore point.\n\n3. Download the [almalinux-deploy.sh](almalinux-deploy.sh) script:\n\n   ```shell\n   curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh\n   ```\n\n4. Run the script and check its output for errors:\n\n   ```shell\n   $ sudo bash almalinux-deploy.sh\n     ...\n     Migration to AlmaLinux is completed\n   ```\n\n5. Reboot is recommended to boot with AlmaLinux kernel:\n\n    ```shell\n    sudo reboot\n    ```\n\n6. Ensure that your system was successfully converted:\n\n   ```shell\n   # check release file\n   $ cat /etc/redhat-release\n   AlmaLinux release 8.5 (Arctic Sphynx)\n\n   # check that the system boots AlmaLinux kernel by default\n   $ sudo grubby --info DEFAULT | grep AlmaLinux\n   title=\"AlmaLinux (4.18.0-348.el8.x86_64) 8.5 (Arctic Sphynx)\"\n   ```\n\n7. Thank you for choosing AlmaLinux!\n\n## Roadmap\n\n* [x] CentOS 8 support.\n* [x] Write debug information to a log file for failed migration analysis.\n* [x] Oracle Linux 8 support.\n* [x] RHEL 8 support.\n* [x] Rocky Linux 8 support.\n* [x] Virtuozzo Linux (VZLinux) 8 support.\n* [x] DirectAdmin control panel support.\n* [x] cPanel control panel support.\n* [x] Plesk control panel support.\n* [x] CentOS Stream 8 downgrade support with `-d` option.\n* [x] EL9 (RHEL 9, Oracle Linux 9, Rocky Linux 9, Virtuozzo Linux 9) and CentOS Stream 9 support\n* [ ] Cover all common scenarios with tests.\n* [ ] Add OpenNebula support to Molecule test suite.\n\n## Get Involved\n\nAny contribution is welcome:\n\n* Find and [report](https://github.com/AlmaLinux/almalinux-deploy/issues) bugs.\n* Submit pull requests with bug fixes, improvements and new tests.\n* Test it on different configurations and share your thoughts in\n  [discussions](https://github.com/AlmaLinux/almalinux-deploy/discussions).\n\nTechnology stack:\n\n* The migration script is written in [Bash](https://www.gnu.org/software/bash/).\n* We use [Bats](https://github.com/bats-core/bats-core) for unit tests.\n* Functional tests are implemented using\n  [Molecule](https://github.com/ansible-community/molecule),\n  [Ansible](https://github.com/ansible/ansible) and\n  [Testinfra](https://github.com/pytest-dev/pytest-testinfra). Virtual machines\n  are powered by [Vagrant](https://www.vagrantup.com/) and\n  [VirtualBox](https://www.virtualbox.org/).\n * CI/CD: Jenkins and an agent with [Vagrant Libvirt](https://github.com/vagrant-libvirt/vagrant-libvirt).\n\nTo run the functional tests do the following:\n\n1. Install Vagrant and VirtualBox.\n2. Install requirements from the requirements.txt file.\n3. Run `molecule test --all` in the project root.\n\n## License\n\nLicensed under the GPLv3 license, see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlmaLinux%2Falmalinux-deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAlmaLinux%2Falmalinux-deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAlmaLinux%2Falmalinux-deploy/lists"}