Skip to content
Snippets Groups Projects
Commit 8827322f authored by Daniel Juarez's avatar Daniel Juarez :speech_balloon:
Browse files

First AIMS doc review

parent 0166801b
No related branches found
No related tags found
No related merge requests found
Pipeline #3791675 passed
# Adding a new image to the base pxe boot menu # Adding a new image to the base pxe boot menu
The example described below is adding a new fedora image, as this will happen more frequently than adding a CC image - though the process will remain largely the same The example described below is adding a new Fedora image, as this may happen more frequently than adding a CentOS image - though the process will remain largely the same. As of today we do not do add more images than RHEL/CentOS, but this can help other use cases.
1. Ensure that the distribution (fedora for example) is mirrored. You may need to update /mnt/data2/bin/new-lxsoft-sync-fedora (please refer to [Architecture](../../distributions/architecture)) 1. Ensure that the distribution (fedora for example) is mirrored. You may need to update `/mnt/data2/bin/new-lxsoft-sync-fedora` (please refer to [Architecture](../../distributions/architecture))
2. Ensure that the rsync process for your distribution is complete (check [http://linuxsoft.cern.ch/fedora/linux/releases/](http://linuxsoft.cern.ch/fedora/linux/releases/)) 2. Ensure that the rsync process for your distribution is complete (check [http://linuxsoft.cern.ch/fedora/linux/releases/](http://linuxsoft.cern.ch/fedora/linux/releases/))
3. Download a copy of the vmlinuz and initrd for the new release ```wget http://linuxsoft.cern.ch/fedora/linux/releases/30/Server/x86_64/os/isolinux/vmlinuz && wget http://linuxsoft.cern.ch/fedora/linux/releases/30/Server/x86_64/os/isolinux/initrd.img``` 3. Download a copy of the vmlinuz and initrd for the new release ```wget http://linuxsoft.cern.ch/fedora/linux/releases/30/Server/x86_64/os/isolinux/vmlinuz && wget http://linuxsoft.cern.ch/fedora/linux/releases/30/Server/x86_64/os/isolinux/initrd.img```
4. Add a new image to AIMS2 ```aims2 addimg --name FEDORA30_X86_64 --arch x86_64 --vmlinuz vmlinuz --initrd initrd.img --description '[UNSUPPORTED] FEDORA 30 FOR X86_64 ARCH' --uefi``` 4. Add a new image to AIMS2 ```aims2 addimg --name FEDORA30_X86_64 --arch x86_64 --vmlinuz vmlinuz --initrd initrd.img --description '[UNSUPPORTED] FEDORA 30 FOR X86_64 ARCH' --uefi```
...@@ -25,5 +25,3 @@ If you want to test a new image you can follow this example (adapt when needed): ...@@ -25,5 +25,3 @@ If you want to test a new image you can follow this example (adapt when needed):
aims2client addhost djuarezg-c82-m --kickstart default.ks --kopts "ip=dhcp inst.repo=http://linuxsoft.cern.ch/cern/centos/8.2-testing/BaseOS/x86_64/os inst.addrepo=CERN,http://linuxsoft.cern.ch/cern/centos/8.2-testing/CERN/x86_64/ inst.addrepo=locmap,http://linuxsoft.cern.ch/internal/repos/potd8-stable/x86_64/os/ ks=http://linux.web.cern.ch/linux/centos8/default.ks" --pxe --name C82_X86_64_TEST aims2client addhost djuarezg-c82-m --kickstart default.ks --kopts "ip=dhcp inst.repo=http://linuxsoft.cern.ch/cern/centos/8.2-testing/BaseOS/x86_64/os inst.addrepo=CERN,http://linuxsoft.cern.ch/cern/centos/8.2-testing/CERN/x86_64/ inst.addrepo=locmap,http://linuxsoft.cern.ch/internal/repos/potd8-stable/x86_64/os/ ks=http://linux.web.cern.ch/linux/centos8/default.ks" --pxe --name C82_X86_64_TEST
``` ```
* Wait for the host config to sync, eventually your VM will PXE boot using your KS file and options * Wait for the host config to sync, eventually your VM will PXE boot using your KS file and options
**NOTE: Another option would be to use `aimstest01` for testing new images directly on <https://gitlab.cern.ch/linuxsupport/rpms/aims2-loaders> without having to register your new host**
...@@ -100,7 +100,8 @@ Please check [the account management for Oracle accounts](https://cern.service-n ...@@ -100,7 +100,8 @@ Please check [the account management for Oracle accounts](https://cern.service-n
* As of July 2021, these are the existing nodes for the hostgroup: * As of July 2021, these are the existing nodes for the hostgroup:
* **prod**: `aims01`, `aims02`, `aims03` * **prod**: `aims01`, `aims02`, `aims03`
* **test**: `aimstest01`, `aimstest02`, `aimstest03` * **test**: `aimstest01`, `aimstest02`, `aimstest03`
* AIMS2 applications: <https://gitlab.cern.ch/linuxsupport/aims2> * AIMS2 applications: <https://gitlab.cern.ch/linuxsupport/rpms/aims2>
* Other AIMS2 related components: <https://gitlab.cern.ch/linuxsupport/aims>
## Documentation ## Documentation
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
All AIMS instances are under the control of the [corresponding hostgroup](https://gitlab.cern.ch/ai/it-puppet-hostgroup-aims) which also takes care of putting the corresponding Teigi secrets in place. All AIMS instances are under the control of the [corresponding hostgroup](https://gitlab.cern.ch/ai/it-puppet-hostgroup-aims) which also takes care of putting the corresponding Teigi secrets in place.
Uploaded images are stored on an Oracle database, directly as blobs, as a form of getting delegated backups from the Oracle service. Uploaded images are stored on a CephFS share to be shared across all nodes, backed up by our Storage colleagues. Ref. <https://linuxops.web.cern.ch/aims2/aims2/#storage>
AIMS2 servers have the following main components: AIMS2 servers have the following main components:
...@@ -12,10 +12,9 @@ AIMS2 servers have the following main components: ...@@ -12,10 +12,9 @@ AIMS2 servers have the following main components:
* `dnsmasq` component which serves as differentiation for received requests from the client machines. Depending on its architecture, the server provides a different bootloader. * `dnsmasq` component which serves as differentiation for received requests from the client machines. Depending on its architecture, the server provides a different bootloader.
* For unregistered machines, the differentiation is done on [the DHCP configuration](https://gitlab.cern.ch/network/cfmgr/blob/master/cfmgr_modules/hcp/shcp.pm) due to the clients not sending any DHCP option to AIMS servers. * For unregistered machines, the differentiation is done on [the DHCP configuration](https://gitlab.cern.ch/network/cfmgr/blob/master/cfmgr_modules/hcp/shcp.pm) due to the clients not sending any DHCP option to AIMS servers.
* `httpd` keeps coherence between the database data and the local file system. It acts upon request. * `httpd` keeps coherence between the database data and the local file system. It acts upon request.
* It retrieves image blobs and stores them into the local file system under `/tftpboot/aims/boot/` * It stores image blobs in the mounted CephFS share `/aims_share/tftpboot/aims/boot/`
* It stores the specific `pxelinux` or `grub` configurations for clients under `/tftpboot/aims/config/` * It stores the specific `pxelinux` or `grub` configurations for clients under `/aims_share/tftpboot/aims/config/`
* `aims2client` is the tool used to interact with the system, for new hosts, images or configurations * `aims2client` is the tool used to interact with the system, for new hosts, images or configurations
* `aims2config` is the tool used to interact with the Oracle DB configuration, such as the Authorization Egroups used by the server to validate certain operations. * `aims2config` is the tool used to interact with the Oracle DB configuration, such as the Authorization Egroups used by the server to validate certain operations.
* `aims2restoreimages` is the tool used to interact with the Oracle DB image blobs and help you dump them to disk. This helps to recover from a catastrophic scenario where CephFS content was lost.
All nodes within a hostgroup/LB alias are equally balanced to spread the load. The CephFS share helps keeping all content in sync across all nodes and make it scalable. All nodes within a hostgroup/LB alias are equally balanced to spread the load. The CephFS share helps keeping all content in sync across all nodes and make it scalable.
# AIMS2 PXE-DHCP workflows # AIMS2 PXE-DHCP workflows
As of today (April 2021) we use two specific workflows depending on whether we are dealing with a registered machine (present on LANDB) or an unregistered machine (no LANDB registry). As of today (April 2022) we use two specific workflows depending on whether we are dealing with a registered machine (present on LANDB) or an unregistered machine (no LANDB registry).
## Use case for unregistered machines ## Use case for unregistered machines
...@@ -96,3 +96,9 @@ The workflow implies the following: ...@@ -96,3 +96,9 @@ The workflow implies the following:
## Extra references ## Extra references
* [Nice explanation on how the dnsmasq Proxy-DHCP mode works](https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq) * [Nice explanation on how the dnsmasq Proxy-DHCP mode works](https://wiki.fogproject.org/wiki/index.php?title=ProxyDHCP_with_dnsmasq)
# Future improvements
* [LOS-900: Having a test environment for DHCP](https://its.cern.ch/jira/browse/LOS-900)
* This would be great as it would avoid depending on anyone to test change by change and agreeing on dates and times to do so.
* Otherwise sorry for the next souls that need to test changes on these workflows
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
This section serves as a log of strange things we saw AIMS2 doing, for the record in case it even helps again. This section serves as a log of strange things we saw AIMS2 doing, for the record in case it even helps again.
We welcome any contribution to this page. We welcome any contribution to this page. Ironic and Procurement guys are also contributors to this list.
## UEFI world ## UEFI world
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment