README.md 2.92 KB
Newer Older
julian.gethmann's avatar
julian.gethmann committed
1
# [Ansible](https://docs.ansible.com/ansible/index.html) repository for LAS/CS NSQ computer
2
You need to have access to this repository (viz you need to add your public ssh-key (`ssh-keygen`) to your profile here.
julian.gethmann's avatar
julian.gethmann committed
3
Then you can clone the git repository to work on in locally.
julian.gethmann's avatar
julian.gethmann committed
4 5
`git clone git@git.scc.kit.edu:las/ansible.git`

julian.gethmann's avatar
julian.gethmann committed
6
## How to use ansible for software installation/computer *setup*
7 8
Add your computer to the hosts file or if you are just testing add it to the local file.
Add your hostname under each role name (the name in the square brackets) you want to be run on your computer.
julian.gethmann's avatar
julian.gethmann committed
9
Also create a new file with an named
julian.gethmann's avatar
julian.gethmann committed
10
after your [fully-qualified-domain-name](https://de.wikipedia.org/wiki/Domain_(Internet)#Fully_Qualified_Domain_Name_.28FQDN.29}) (FQDN) in the `host_vars` directory including a [yaml](https://docs.ansible.com/ansible/YAMLSyntax.html) list with some host specific configuration variables, e. g. copy another similar host and adjust it.
11
These files do not have the `.yml` extension and do not start with `---`
julian.gethmann's avatar
julian.gethmann committed
12
Then create a file named after your FQDN with the extension ".yml" in the main directory of ansible which contains includes all the roles one want to run. This step needs root priviledges and therefore makes only sense for the first installation of a computer.
julian.gethmann's avatar
julian.gethmann committed
13
* install ansible and some dependencies (`dnf install ansible git python2-dnf libselinux-python`)
julian.gethmann's avatar
julian.gethmann committed
14
* run [ansible-pull](https://docs.ansible.com/ansible/playbooks_intro.html#ansible-pull) (`ansible-pull -K -U git@git.scc.kit.edu:las/ansible.git`)
julian.gethmann's avatar
julian.gethmann committed
15
  * If you only want some parts of the roles to be run, you can use the option `-t TAGNAME` to run only those tasks with the given tag.
julian.gethmann's avatar
julian.gethmann committed
16 17 18 19 20 21 22 23 24 25 26

### Ask for new software
Open an issue in the GitLab issue tracker with the label: softwarerequest
## How to get new software on your computer

## Available roles

* common.yml: basic configuration for all LAS/NSQ computers
* clients.yml: all computers not acting as a server (only)
* desktop.yml: all desktop computers including laptops (having X11/Wayland)
* admin.yml: tools for administrators
27
* latex.yml: basic LaTeX installation (KIT classes not yet)
28 29
* python.yml: basic python_stack for scientific Python usage (including fitting)
* ipynb.yml: IPython/Jupyter notebook
julian.gethmann's avatar
julian.gethmann committed
30
* MAD-8: MAD 8 inofficial build for Fedora
julian.gethmann's avatar
julian.gethmann committed
31 32 33 34

# Develope new roles, extend or modify existing ones and update roles for new software

## Branches
julian.gethmann's avatar
julian.gethmann committed
35
All roles in the master branch should work and should not brake on any of our systems (desktop, server, simulation, notebooks). The `site.yml` should always be runnable and include all roles that are stable and not explicitly for setup purposes only.
julian.gethmann's avatar
julian.gethmann committed
36

julian.gethmann's avatar
julian.gethmann committed
37
For developement and testing you should use development branches like `dev-latex`.
julian.gethmann's avatar
julian.gethmann committed
38

julian.gethmann's avatar
julian.gethmann committed
39 40
You can check the syntax of the files by running `ansible-playbook --check-syntax filename.yml` (or by using the pre-commit-hook from the Snipplets.

julian.gethmann's avatar
julian.gethmann committed
41 42 43 44 45
## TODO
* nfs-server, lasarchiv1
* epics
* elegant (blas: gescheit die key-verwaltung lösen)
* dhcpd