summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--README9
-rw-r--r--cuda.yml6
-rw-r--r--desktop.yml6
-rw-r--r--install.yml17
-rw-r--r--inventories/ipe.erb11
-rw-r--r--roles/common/README11
-rw-r--r--roles/common/default/main.yml1
-rw-r--r--roles/common/tasks/main.yml18
-rw-r--r--roles/common/tasks/software.yml30
-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-xroles/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.yml11
-rw-r--r--ssh.yml30
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
diff --git a/README b/README
new file mode 100644
index 0000000..592d5ae
--- /dev/null
+++ b/README
@@ -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)
+
diff --git a/ssh.yml b/ssh.yml
new file mode 100644
index 0000000..43d8d2d
--- /dev/null
+++ b/ssh.yml
@@ -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 }}"