Paper |
Title |
Page |
MOPHA014 |
Building and Packaging EPICS Modules With Conda |
223 |
|
- B. Bertrand, A. Harrisson
ESS, Lund, Sweden
|
|
|
Conda is an open source package, dependency and environment management system. It runs on Windows, macOS and Linux and can package and distribute software for any language (Python, R, Ruby, C/C++…). It allows one to build a software in a clean and repeatable way. EPICS is made of many different modules that need to be compiled together. Conda makes it easy to define and track dependencies between EPICS base and the different modules (and their versions). Anaconda’s new compilers allow conda to build binaries that can run on any modern linux distribution (x8664). Not relying on any specific OS packages removes issues that can arise when upgrading the OS. At ESS, conda packages are built using gitlab-ci and pushed to a local channel on our Artifactory server. Using conda makes it easy for the users to install the EPICS modules they want, where they want (locally on a machine, in a docker container for testing…). All dependencies and requirements are handled by conda. Conda environments make it possible to work on different versions on the same machine without any conflict.
|
|
|
Poster MOPHA014 [0.847 MB]
|
|
DOI • |
reference for this paper
※ https://doi.org/10.18429/JACoW-ICALEPCS2019-MOPHA014
|
|
About • |
paper received ※ 27 September 2019 paper accepted ※ 08 October 2019 issue date ※ 30 August 2020 |
|
Export • |
reference for this paper using
※ BibTeX,
※ LaTeX,
※ Text/Word,
※ RIS,
※ EndNote (xml)
|
|
|
WEAPP04 |
ICS Infrastructure Deployment Overview at ESS |
875 |
|
- B. Bertrand, S. Armanet, J. Christensson, A. Curri, A. Harrisson, R. Mudingay
ESS, Lund, Sweden
|
|
|
The ICS Control Infrastructure group at the European Spallation Source (ESS) is responsible for deploying many different services. We treat Infrastructure as code to deploy everything in a repeatable, reproducible and reliable way. We use three main tools to achieve that: Ansible (an IT automation tool), AWX (a GUI for Ansible) and CSEntry (a custom in-house developed web application used as Configuration Management Database). CSEntry (Control System Entry) is used to register any device with an IP address (network switch, physical machines, virtual machines). It allows us to use it as a dynamic inventory for Ansible. DHCP and DNS are automatically updated as soon as a new host is registered in CSEntry. This is done by triggering a task that calls an Ansible playbook via AWX API. Virtual machines can be created directly from CSEntry with one click, again by calling another Ansible playbook via AWX API. This playbook uses proxmox (our virtualization platform) API for the VM creation. By using Ansible groups, different proxmox clusters can be managed from the same CSEntry web application. Those tools give us an easy and flexible solution to deploy software in a reproducible way.
|
|
|
Slides WEAPP04 [13.604 MB]
|
|
DOI • |
reference for this paper
※ https://doi.org/10.18429/JACoW-ICALEPCS2019-WEAPP04
|
|
About • |
paper received ※ 30 September 2019 paper accepted ※ 10 October 2019 issue date ※ 30 August 2020 |
|
Export • |
reference for this paper using
※ BibTeX,
※ LaTeX,
※ Text/Word,
※ RIS,
※ EndNote (xml)
|
|
|