forked from Controls/gitea-pages
69 lines
3.4 KiB
Markdown
69 lines
3.4 KiB
Markdown
# Developer Guide
|
|
|
|
**This guide is under heavy development and just drafted, expect frequent changes and check back every now and then**
|
|
|
|
This guide contains information to develop and roll out the configuration management and system deployment of RHEL-8.<br>
|
|
*PSI RHEL-8* heavily relies on the Ansible automation technology for configuration management and automation.
|
|
|
|
Mandatory information is available at
|
|
* https://docs.ansible.com/ansible/latest/index.html
|
|
* https://docs.ansible.com/ansible/latest/user_guide/index.html
|
|
* https://docs.ansible.com/ansible/latest/user_guide/quickstart.html
|
|
|
|
## Main code
|
|
|
|
PSI RHEL-8 configuration management consists of mainly two things
|
|
|
|
* [RHEL-8 PSI Defaults](https://git.psi.ch/linux/engineering/ansible/inventories/rhel-8-psi-defaults) Ansible Inventory
|
|
* [RHEL-8 Ansible Collection](https://git.psi.ch/linux/engineering/ansible/collections/rhel-8)
|
|
|
|
The supplemental PSI Ansible Roles, which are referrenced from the *RHEL-8 Ansible Collection* are developed in
|
|
|
|
* [PSI Ansible Roles](https://git.psi.ch/linux/engineering/ansible/roles)
|
|
|
|
Addition group/section inventories are managed in
|
|
|
|
* [PSI Ansible Inventories](https://git.psi.ch/linux/engineering/ansible/inventories)
|
|
|
|
## Adding my code
|
|
|
|
Depending on where your code changes are happening (see section [Main code](#main-code)) you need to follow the following process:
|
|
|
|
1. Create a branch for what you are doing eg. *feature/my-new-feature* or *fix/problem-xyz-solved*
|
|
2. Do your work and commit and push your branch
|
|
3. Create a merge request and fill in a human understandable description
|
|
4. Motivate other maintainers to approve your changes and get the code merged
|
|
|
|
## Using Vagrant to develop Ansible code
|
|
|
|
[Vagrant](https://vagrantup.com/intro) is a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past.
|
|
|
|
Documentation
|
|
|
|
* https://www.vagrantup.com/docs
|
|
* https://www.vagrantup.com/intro/getting-started
|
|
|
|
[PSI Ansible Vagrant](https://git.psi.ch/linux/engineering/ansible/vagrant) is a preconfigured environment allowing an easy and fast development of PSI related Ansible based configuration mangement.
|
|
|
|
System requirements are either Virtualbox on Linux/Windows or Mac or libvirt on Linux.
|
|
|
|
## Components and Functions
|
|
|
|
The following software or solutions are chosen to provide RHEL-8 in compliance with the PSI Linux support policy
|
|
|
|
| Component | Function | URL |
|
|
| --- | --- | --- |
|
|
| Red Hat Satellite 6 | system deployment, update and oversight | [satint.psi.ch](satint.psi.ch) |
|
|
| Red Hat Ansible | configuration management | [docs.ansible.com](https://docs.ansible.com/ansible/latest/index.html) |
|
|
| Red Hat Ansible Tower (AWX) | configuration management center | [rhel-8-awx.psi.ch](https://rhel-8-awx.psi.ch) |
|
|
| Koji | RPM package building solution | (tbd..) |
|
|
|
|
## Tools and Functions
|
|
|
|
The following tools are chosen for code and collaboration
|
|
|
|
| Tool | Function | URL |
|
|
| --- | --- | --- |
|
|
| GitLab | Git code revision system and code collaboration | [git.psi.ch/linux/engineering/home](https://git.psi.ch/linux/engineering/home) |
|
|
| Slack | instant messaging, ChatOps | [controls-ha.slack.com/rhel-8-maintainers](https://controls-ha.slack.com/archives/G0163S918CB) |
|
|
| Zoom | video conferencing | [psich.zoom.us](https://psich.zoom.us/j/2970303190) |