diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | README | 9 | ||||
-rw-r--r-- | cuda.yml | 6 | ||||
-rw-r--r-- | desktop.yml | 6 | ||||
-rw-r--r-- | install.yml | 17 | ||||
-rw-r--r-- | inventories/ipe.erb | 11 | ||||
-rw-r--r-- | roles/common/README | 11 | ||||
-rw-r--r-- | roles/common/default/main.yml | 1 | ||||
-rw-r--r-- | roles/common/tasks/main.yml | 18 | ||||
-rw-r--r-- | roles/common/tasks/software.yml | 30 | ||||
-rw-r--r-- | roles/cuda/.travis.yml (renamed from .travis.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/LICENSE (renamed from LICENSE) | 0 | ||||
-rw-r--r-- | roles/cuda/README.md (renamed from README.md) | 0 | ||||
-rw-r--r-- | roles/cuda/defaults/main.yml (renamed from defaults/main.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/files/nvidia_packaging_key.asc (renamed from files/nvidia_packaging_key.asc) | 0 | ||||
-rw-r--r-- | roles/cuda/handlers/main.yml (renamed from handlers/main.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/meta/main.yml (renamed from meta/main.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/tasks/configure_apt.yml (renamed from tasks/configure_apt.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/tasks/configure_yum.yml (renamed from tasks/configure_yum.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/tasks/cuda_init.yml (renamed from tasks/cuda_init.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/tasks/main.yml (renamed from tasks/main.yml) | 0 | ||||
-rwxr-xr-x | roles/cuda/templates/cuda.sh.j2 (renamed from templates/cuda.sh.j2) | 0 | ||||
-rw-r--r-- | roles/cuda/templates/cuda_init.service.j2 (renamed from templates/cuda_init.service.j2) | 0 | ||||
-rw-r--r-- | roles/cuda/templates/cuda_init.sh.j2 (renamed from templates/cuda_init.sh.j2) | 0 | ||||
-rw-r--r-- | roles/cuda/tests/install.yml (renamed from tests/install.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/tests/inventory (renamed from tests/inventory) | 0 | ||||
-rw-r--r-- | roles/cuda/tests/test.yml (renamed from tests/test.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/centos-6.yml (renamed from vars/centos-6.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/centos-7.yml (renamed from vars/centos-7.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/main.yml (renamed from vars/main.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/redhat-6.yml (renamed from vars/redhat-6.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/redhat-7.yml (renamed from vars/redhat-7.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/ubuntu-14.04.yml (renamed from vars/ubuntu-14.04.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/ubuntu-14.10.yml (renamed from vars/ubuntu-14.10.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/ubuntu-15.yml (renamed from vars/ubuntu-15.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/ubuntu-16.04.yml (renamed from vars/ubuntu-16.04.yml) | 0 | ||||
-rw-r--r-- | roles/cuda/vars/ubuntu-17.04.yml (renamed from vars/ubuntu-17.04.yml) | 0 | ||||
-rw-r--r-- | roles/kernel/tasks/software.yml | 11 | ||||
-rw-r--r-- | ssh.yml | 30 |
39 files changed, 151 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8b42eb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.retry @@ -0,0 +1,9 @@ +IT Management (itm) +============= + - Hackish playbooks to make common administration on IPE netwok. + +Problems +-------- + - Gnome desktop installation (Fedora) on Camera stations prevents system + from properly booting. I guess should be because of headless NVIDIA + cards.... But I am not sure... diff --git a/cuda.yml b/cuda.yml new file mode 100644 index 0000000..636b6f6 --- /dev/null +++ b/cuda.yml @@ -0,0 +1,6 @@ +- name: Common Software + hosts: all + remote_user: root + roles: + - role: cuda + diff --git a/desktop.yml b/desktop.yml new file mode 100644 index 0000000..6f35ab2 --- /dev/null +++ b/desktop.yml @@ -0,0 +1,6 @@ +- name: Common Software + hosts: all + remote_user: root + roles: + - role: desktop + diff --git a/install.yml b/install.yml new file mode 100644 index 0000000..2cd3768 --- /dev/null +++ b/install.yml @@ -0,0 +1,17 @@ +- name: Common Software + hosts: all + remote_user: root + roles: + - role: common + +- name: CUDA + hosts: cuda + remote_user: root + roles: + - role: cuda + +- name: Desktop + hosts: desktop + remote_user: root + roles: + - role: desktop diff --git a/inventories/ipe.erb b/inventories/ipe.erb new file mode 100644 index 0000000..5c33cdb --- /dev/null +++ b/inventories/ipe.erb @@ -0,0 +1,11 @@ +[camera] +192.168.26.[80:89] + +[student] +192.168.26.[60:69] + +[desktop:children] +student + +[cuda:children] +camera diff --git a/roles/common/README b/roles/common/README new file mode 100644 index 0000000..c8bd679 --- /dev/null +++ b/roles/common/README @@ -0,0 +1,11 @@ +Dependencies: + - Executed on all nodes + - No dependencies & no facts + +Parameters: + extra_packages: list of extra packages to install + +Actions: + - Enables standard repositories + - Install a set of common packages on all nodes (mc, etc.) +
\ No newline at end of file diff --git a/roles/common/default/main.yml b/roles/common/default/main.yml new file mode 100644 index 0000000..d355d15 --- /dev/null +++ b/roles/common/default/main.yml @@ -0,0 +1 @@ +os_update: "{{ ands_update | default(false) }}"
\ No newline at end of file diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml new file mode 100644 index 0000000..8070bc6 --- /dev/null +++ b/roles/common/tasks/main.yml @@ -0,0 +1,18 @@ +- name: Ensure all required repositories are configured + package: name={{item}} state=present + register: result + with_items: + - epel-release + when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' + +- name: Add our repository with updates and overrides + yum_repository: name="{{ item.name }}" description= "{{ item.description | default('Ands repository') }}" baseurl="{{ item.url }}" enabled="yes" gpgcheck="no" cost="{{ item.cost | default(1) }}" + with_items: "{{ ands_repositories | default([]) }}" + +# We always update on first install and if requested +- name: Update CentOS + yum: name=* state=latest update_cache=yes + when: (result | changed) or (os_update | default(false)) + +- name: Install additional software + include_tasks: software.yml diff --git a/roles/common/tasks/software.yml b/roles/common/tasks/software.yml new file mode 100644 index 0000000..c621ef3 --- /dev/null +++ b/roles/common/tasks/software.yml @@ -0,0 +1,30 @@ +- name: Install various ansible requirements + package: name={{item}} state=present + with_items: + - yum-plugin-versionlock + - libselinux-python + - libsemanage-python + - yamllint + - pyOpenSSL + - python-passlib + - python2-ruamel-yaml + - python2-jmespath + - python-ipaddress + - iptables-services + - PyYAML + - python-rhsm-certificates + +- name: Install various administrative tools + package: name={{item}} state=present + with_items: + - mc + - telnet + - lsof + - strace + - bzr + - git + - pciutils + +- name: Ensure all extra packages are installed + package: name={{item}} state=present + with_items: "{{ extra_packages | default([]) }}" diff --git a/.travis.yml b/roles/cuda/.travis.yml index 0cdcab4..0cdcab4 100644 --- a/.travis.yml +++ b/roles/cuda/.travis.yml diff --git a/LICENSE b/roles/cuda/LICENSE index 8b0c2e6..8b0c2e6 100644 --- a/LICENSE +++ b/roles/cuda/LICENSE diff --git a/README.md b/roles/cuda/README.md index d28e484..d28e484 100644 --- a/README.md +++ b/roles/cuda/README.md diff --git a/defaults/main.yml b/roles/cuda/defaults/main.yml index 57efd6b..57efd6b 100644 --- a/defaults/main.yml +++ b/roles/cuda/defaults/main.yml diff --git a/files/nvidia_packaging_key.asc b/roles/cuda/files/nvidia_packaging_key.asc index 0c44d5a..0c44d5a 100644 --- a/files/nvidia_packaging_key.asc +++ b/roles/cuda/files/nvidia_packaging_key.asc diff --git a/handlers/main.yml b/roles/cuda/handlers/main.yml index adba3b7..adba3b7 100644 --- a/handlers/main.yml +++ b/roles/cuda/handlers/main.yml diff --git a/meta/main.yml b/roles/cuda/meta/main.yml index f103de5..f103de5 100644 --- a/meta/main.yml +++ b/roles/cuda/meta/main.yml diff --git a/tasks/configure_apt.yml b/roles/cuda/tasks/configure_apt.yml index 53a38a5..53a38a5 100644 --- a/tasks/configure_apt.yml +++ b/roles/cuda/tasks/configure_apt.yml diff --git a/tasks/configure_yum.yml b/roles/cuda/tasks/configure_yum.yml index e888468..e888468 100644 --- a/tasks/configure_yum.yml +++ b/roles/cuda/tasks/configure_yum.yml diff --git a/tasks/cuda_init.yml b/roles/cuda/tasks/cuda_init.yml index 9a10284..9a10284 100644 --- a/tasks/cuda_init.yml +++ b/roles/cuda/tasks/cuda_init.yml diff --git a/tasks/main.yml b/roles/cuda/tasks/main.yml index 6d846f8..6d846f8 100644 --- a/tasks/main.yml +++ b/roles/cuda/tasks/main.yml diff --git a/templates/cuda.sh.j2 b/roles/cuda/templates/cuda.sh.j2 index 78393a1..78393a1 100755 --- a/templates/cuda.sh.j2 +++ b/roles/cuda/templates/cuda.sh.j2 diff --git a/templates/cuda_init.service.j2 b/roles/cuda/templates/cuda_init.service.j2 index c61cbad..c61cbad 100644 --- a/templates/cuda_init.service.j2 +++ b/roles/cuda/templates/cuda_init.service.j2 diff --git a/templates/cuda_init.sh.j2 b/roles/cuda/templates/cuda_init.sh.j2 index 3c85ea2..3c85ea2 100644 --- a/templates/cuda_init.sh.j2 +++ b/roles/cuda/templates/cuda_init.sh.j2 diff --git a/tests/install.yml b/roles/cuda/tests/install.yml index 03b9360..03b9360 100644 --- a/tests/install.yml +++ b/roles/cuda/tests/install.yml diff --git a/tests/inventory b/roles/cuda/tests/inventory index e45e40f..e45e40f 100644 --- a/tests/inventory +++ b/roles/cuda/tests/inventory diff --git a/tests/test.yml b/roles/cuda/tests/test.yml index 5125bda..5125bda 100644 --- a/tests/test.yml +++ b/roles/cuda/tests/test.yml diff --git a/vars/centos-6.yml b/roles/cuda/vars/centos-6.yml index c4322ae..c4322ae 100644 --- a/vars/centos-6.yml +++ b/roles/cuda/vars/centos-6.yml diff --git a/vars/centos-7.yml b/roles/cuda/vars/centos-7.yml index b331a96..b331a96 100644 --- a/vars/centos-7.yml +++ b/roles/cuda/vars/centos-7.yml diff --git a/vars/main.yml b/roles/cuda/vars/main.yml index ded4141..ded4141 100644 --- a/vars/main.yml +++ b/roles/cuda/vars/main.yml diff --git a/vars/redhat-6.yml b/roles/cuda/vars/redhat-6.yml index c4322ae..c4322ae 100644 --- a/vars/redhat-6.yml +++ b/roles/cuda/vars/redhat-6.yml diff --git a/vars/redhat-7.yml b/roles/cuda/vars/redhat-7.yml index b331a96..b331a96 100644 --- a/vars/redhat-7.yml +++ b/roles/cuda/vars/redhat-7.yml diff --git a/vars/ubuntu-14.04.yml b/roles/cuda/vars/ubuntu-14.04.yml index 61d04fd..61d04fd 100644 --- a/vars/ubuntu-14.04.yml +++ b/roles/cuda/vars/ubuntu-14.04.yml diff --git a/vars/ubuntu-14.10.yml b/roles/cuda/vars/ubuntu-14.10.yml index 8c8e53e..8c8e53e 100644 --- a/vars/ubuntu-14.10.yml +++ b/roles/cuda/vars/ubuntu-14.10.yml diff --git a/vars/ubuntu-15.yml b/roles/cuda/vars/ubuntu-15.yml index d1f56ad..d1f56ad 100644 --- a/vars/ubuntu-15.yml +++ b/roles/cuda/vars/ubuntu-15.yml diff --git a/vars/ubuntu-16.04.yml b/roles/cuda/vars/ubuntu-16.04.yml index f948a1a..f948a1a 100644 --- a/vars/ubuntu-16.04.yml +++ b/roles/cuda/vars/ubuntu-16.04.yml diff --git a/vars/ubuntu-17.04.yml b/roles/cuda/vars/ubuntu-17.04.yml index 356467f..356467f 100644 --- a/vars/ubuntu-17.04.yml +++ b/roles/cuda/vars/ubuntu-17.04.yml diff --git a/roles/kernel/tasks/software.yml b/roles/kernel/tasks/software.yml new file mode 100644 index 0000000..92733aa --- /dev/null +++ b/roles/kernel/tasks/software.yml @@ -0,0 +1,11 @@ +- name: Install various administrative tools + package: name={{item}} state=present + register: result + with_items: + - kernel-devel + +# We always update on first install and if requested +- name: Update kernel + package: name=kernel state=latest + when: (result | changed) + @@ -0,0 +1,30 @@ +- name: Store known hosts of 'all' the hosts in the inventory file + hosts: all:localhost + connection: local + tasks: + - delegate_to: "localhost" + set_fact: target_hosts="{{ play_hosts | difference(['localhost']) }}" + + +- name: Store known hosts of 'all' the hosts in the inventory file + hosts: localhost + connection: local + + vars: + ssh_known_hosts_command: "ssh-keyscan -T 10" + ssh_known_hosts_file: "{{ lookup('env','HOME') + '/.ssh/known_hosts' }}" + ssh_known_hosts: "{{ target_hosts }}" + + tasks: + - name: For each host, scan for its ssh public key + shell: "ssh-keyscan {{ item }},`dig +short {{ item }}`" + with_items: "{{ ssh_known_hosts }}" + register: ssh_known_host_results + ignore_errors: yes + + - name: "Add/update the public key of {{ item.item }} in the {{ ssh_known_hosts_file }}" + known_hosts: + name: "{{ item.item }}" + key: "{{ item.stdout }}" + path: "{{ ssh_known_hosts_file }}" + with_items: "{{ ssh_known_host_results.results }}" |