24 lines
1.8 KiB
Markdown
24 lines
1.8 KiB
Markdown
# Guidelines
|
|
|
|
## Version Control
|
|
|
|
Everything must be in version control before being used on production systems. In particular, scripts and other software, SPEC files for packages, relevant documentation, Puppet code, etc.
|
|
|
|
## Hiera
|
|
The naming of the variables inside Hiera depends on the scope usage of the variables. The variables beeing used only inside one specific class will be named `base_class_name::variable` where `base_class_name` is the last part of class name, without the part before the last `::` separator. Example: the `permit_root_login` variable for the `profile::ssh_server` class will be named `ssh_server::permit_root_login`.
|
|
|
|
# External Code
|
|
Although the installation infrastructure makes large usage of external code the system has to avoid as much as possible dependency from external services availability. A WAN outage or a remote http server failure should not influence the installation system. For this reason, all the external code is mirrored internally in specific git repositories.
|
|
|
|
# Servers and services
|
|
Every server should support exactly one service, e.g. Puppet, or FTP. This makes the services more independent (e.g. for downtimes), simplifies the structure of the corresponding Puppet code, makes it easier to reason about the environment, and prevents conflicts regarding certain configuration settings.
|
|
|
|
|
|
# Naming Convention Nodes / Servers
|
|
|
|
Node/Server names have the form `lx-purpose-[0-9][0-9].psi.ch`, where `purpose` is the purpose of the server or the service provided by it. Example: `lx-boot-01.psi.ch` is the **boot** server
|
|
|
|
The production server always has an DNS alias `purpose.psi.ch` and clients should always use this alias to connect to the server.
|
|
|
|
When putting system names into configuration files, we always use lower case and the fully qualified domain name.
|