README.md 4.17 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
julian.gethmann's avatar
julian.gethmann committed
2
You need to have access to this repository (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`

6 7
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
8
Also create a new file which is named
julian.gethmann's avatar
julian.gethmann committed
9
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.
10
These files do not have the `.yml` extension and do not start with `---`
julian.gethmann's avatar
julian.gethmann committed
11 12 13 14 15
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.

Install ansible and some dependencies: 

```
julian.gethmann's avatar
julian.gethmann committed
16 17
dnf install ansible git python2-dnf libselinux-python
```
julian.gethmann's avatar
julian.gethmann committed
18 19 20 21 22 23
Run 

``` bash
git clone  clone git@git.scc.kit.edu:las/ansible.git
cd ansible
ansible-playbook --ask-become-pass --limit $(hostname -f) site.yml
julian.gethmann's avatar
julian.gethmann committed
24
```
julian.gethmann's avatar
julian.gethmann committed
25

julian.gethmann's avatar
julian.gethmann committed
26
  * 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
27 28

### Ask for new software
julian.gethmann's avatar
julian.gethmann committed
29
Open an issue in the GitLab issue tracker and use the template for softwarerequests.
julian.gethmann's avatar
julian.gethmann committed
30 31 32 33 34
## How to get new software on your computer

## Available roles

* common.yml: basic configuration for all LAS/NSQ computers
julian.gethmann's avatar
julian.gethmann committed
35
* clients.yml: all computers not acting as a server (only) ^1
julian.gethmann's avatar
julian.gethmann committed
36
* desktop.yml: all desktop computers including laptops (having X11/Wayland)
37
* graphics.yml: fundamental graphics software (Inkscape, Gimp)
julian.gethmann's avatar
julian.gethmann committed
38 39
* python.yml: basic python_stack for scientific Python usage (including fitting) ^1
* ipynb.yml: IPython/Jupyter notebook ^1
julian.gethmann's avatar
julian.gethmann committed
40
* MAD-8: MAD 8 inofficial build for Fedora
41 42 43
* nfs.yml:
  * nfs-server: export /las-archiv1 to our network
  * lasarchiv: client side mount las126/las-archiv1
julian.gethmann's avatar
julian.gethmann committed
44
* opera.yml: Cobham's Opera3d (client) ^2 ^3
julian.gethmann's avatar
julian.gethmann committed
45
* admin.yml: tools for administrators
46
* latex.yml: basic LaTeX installation (Arial not yet) ^1
julian.gethmann's avatar
julian.gethmann committed
47
* kdev.yml: KDevelope (with Python PlugIn) ^1
julian.gethmann's avatar
julian.gethmann committed
48 49
* jabref.yml: Cross platform BibTeX bibilography software [JabRef](http://www.jabref.org/)
* pycharm.yml: Cross platform Python IDE: [PyCharm](https://www.jetbrains.com/pycharm/) IDE
julian.gethmann's avatar
julian.gethmann committed
50
* chrome.yml: Google Chrome for Fedora (for Adobe Connect usage)
julian.gethmann's avatar
julian.gethmann committed
51
* elegant.yml: elegant (no Pelegant, yet)
julian.gethmann's avatar
julian.gethmann committed
52
* inovesa.yml: [Inovesa](https://github.com/Inovesa/Inovesa)
julian.gethmann's avatar
julian.gethmann committed
53

julian.gethmann's avatar
julian.gethmann committed
54 55 56 57
^1: (also put your FQDN to the \[common\] section in the hosts file as it depends hereon)
^3: (also put your FQDN to the \[lasarchiv\] section in the hosts file as it depends hereon)

### ^2 Opera
julian.gethmann's avatar
julian.gethmann committed
58 59 60

After installing Opera via ansible you must confirm the license agreement at first start and go to "Licensing -> Set License Path" and switch to `Other computer(s)` and fill in `@129.13.108.100`.

julian.gethmann's avatar
julian.gethmann committed
61
# Develop new roles, extend or modify existing ones and update roles for new software
julian.gethmann's avatar
julian.gethmann committed
62 63

## Branches
julian.gethmann's avatar
julian.gethmann committed
64
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
65

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

julian.gethmann's avatar
julian.gethmann committed
68
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
69

julian.gethmann's avatar
julian.gethmann committed
70 71
If you just want to install one or many packages you can use `jabref.yml` as a basis.

72 73
Be aware that the development branches here are not save and the owner might force push to them!

julian.gethmann's avatar
julian.gethmann committed
74 75 76 77
# Run as admin 
## Bootstrap
* Add your SSH-key to the host `ssh-copy-id lasXXX.las.kit.edu`
* Do the steps described for the self-setup
julian.gethmann's avatar
julian.gethmann committed
78
* Run `ansible-playbook -K sites.yml` probably with the option `-l lasXXX.las.kit.edu`