# [Ansible](https://docs.ansible.com/ansible/index.html) repository for LAS/CS NSQ computer You need to have access to this repository (you need to add your public ssh-key (`ssh-keygen`) to your profile here). Then you can clone the git repository to work on in locally. `git clone git@git.scc.kit.edu:las/ansible.git` 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. Also create a new file which is named 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. These files do not have the `.yml` extension and do not start with `---` 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: ``` dnf install ansible git python2-dnf libselinux-python ``` * 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 playbook_name.yml ``` * 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. ### 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) ^1 * desktop.yml: all desktop computers including laptops (having X11/Wayland) * python.yml: basic python_stack for scientific Python usage (including fitting) ^1 * ipynb.yml: IPython/Jupyter notebook ^1 * MAD-8: MAD 8 inofficial build for Fedora * nfs.yml: * nfs-server: export /las-archiv1 to our network * lasarchiv: client side mount las126/las-archiv1 * opera.yml: Cobham's Opera3d (client) ^2 ^3 * admin.yml: tools for administrators * latex.yml: basic LaTeX installation (Arial not yet) ^1 * kdev.yml: KDevelope (with Python PlugIn) ^1 * 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 * chrome.yml: Google Chrome for Fedora (for Adobe Connect usage) * elegant.yml: elegant (no Pelegant, yet) * inovesa.yml: [Inovesa](https://github.com/Inovesa/Inovesa) ^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 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`. # Develop new roles, extend or modify existing ones and update roles for new software ## Branches 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. For developement and testing you should use development branches like `dev-latex`. 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. If you just want to install one or many packages you can use `jabref.yml` as a basis. # 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 * Run `ansible-playbook -K sites.yml` probably with the option `-l lasXXX.las.kit.edu`