diff --git a/.gitmodules b/.gitmodules index d842f9f1b..017809930 100644 --- a/.gitmodules +++ b/.gitmodules @@ -19,3 +19,6 @@ [submodule "images/isle-mysql"] path = images/isle-mysql url = https://github.com/Islandora-Collaboration-Group/isle-mysql.git +[submodule "ansible"] + path = ansible + url = https://github.com/Islandora-Collaboration-Group/ISLE-Ansible.git diff --git a/ansible b/ansible new file mode 160000 index 000000000..11b4ec491 --- /dev/null +++ b/ansible @@ -0,0 +1 @@ +Subproject commit 11b4ec491ec94441be8fdc6983966aed2bfb7b42 diff --git a/ansible/docker_install.yml b/ansible/docker_install.yml deleted file mode 100644 index 9b5f9c1b0..000000000 --- a/ansible/docker_install.yml +++ /dev/null @@ -1,12 +0,0 @@ ---- - -- hosts: isle-prod-project.institution # change this to real host name - become: yes - - roles: - - dependencies - - users_groups - - docker - - docker_compose - - git_clone - - docker_images diff --git a/ansible/host_vars/host_local_macos_isle_localdomain.yml b/ansible/host_vars/host_local_macos_isle_localdomain.yml deleted file mode 100644 index 58a2ab5d4..000000000 --- a/ansible/host_vars/host_local_macos_isle_localdomain.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- -### -# -# Ansible Connection & General Configuration Section -# -### - -ansible_connection: ssh -ansible_ssh_host: 10.10.10.130 # edit here for IP address of ISLE Host Server -ansible_ssh_user: vagrant # edit here for deploy user - -user_name: islandora -pub_locale: ~/Users/enduser/.ssh/id_rsa.pub # edit here for local enduser id_rsa.pub path -user_password: islandora -user_shell: /bin/bash -group_id_number: 10000 -user_id_number: 10000 - - -isle_repo: https://github.com/Islandora-Collaboration-Group/ISLE.git -isle_repo_path: /opt/ISLE - -### Docker - -docker_version: 'ce' -docker_package: "docker-{{ docker_version }}" - -docker_user: islandora - -### Docker-Compose - -docker_compose_version: "1.19.0" -docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64" -docker_compose_path: /usr/local/bin/docker-compose - -### ISLE Images - -isle_docker_image_mysql: islandoracollabgroup/isle-mysql:{{ isle_docker_image_tag }} -isle_docker_image_fedora: islandoracollabgroup/isle-fedora:{{ isle_docker_image_tag }} -isle_docker_image_solr: islandoracollabgroup/isle-solr:{{ isle_docker_image_tag }} -isle_docker_image_apache: islandoracollabgroup/isle-apache:{{ isle_docker_image_tag }} -isle_docker_image_proxy: islandoracollabgroup/isle-proxy:{{ isle_docker_image_tag }} - -isle_docker_image_tag: latest - - -### For Debian / Ubuntu Hosts -docker_apt_repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_type }}" -docker_apt_release_type: stable - -### For RHEL / CentOS Hosts - -docker_yum_repo: https://download.docker.com/linux/centos/docker-{{ docker_version }}.repo diff --git a/ansible/host_vars/isle-prod-project.institution.yml b/ansible/host_vars/isle-prod-project.institution.yml deleted file mode 100644 index 1eaf1d063..000000000 --- a/ansible/host_vars/isle-prod-project.institution.yml +++ /dev/null @@ -1,50 +0,0 @@ ---- -### -# -# Ansible Connection & General Configuration Section -# -### - -ansible_connection: ssh -ansible_ssh_host: # edit here for IP address of ISLE Host Server -ansible_ssh_user: # edit here for deploy user - -user_name: islandora -pub_locale: # edit here for local id_rsa.pub path -user_password: islandora -user_shell: /bin/bash - -isle_repo: https://github.com/Islandora-Collaboration-Group/ISLE.git -isle_repo_path: /opt/ISLE - -### Docker - -docker_version: 'ce' -docker_package: "docker-{{ docker_version }}" - -docker_user: islandora - -### Docker-Compose - -docker_compose_version: "1.19.0" -docker_compose_url: "https://github.com/docker/compose/releases/download/{{ docker_compose_version }}/docker-compose-Linux-x86_64" -docker_compose_path: /usr/local/bin/docker-compose - -### ISLE Images - -isle_docker_image_mysql: islandoracollabgroup/isle-mysql:{{ isle_docker_image_tag }} -isle_docker_image_fedora: islandoracollabgroup/isle-fedora:{{ isle_docker_image_tag }} -isle_docker_image_solr: islandoracollabgroup/isle-solr:{{ isle_docker_image_tag }} -isle_docker_image_apache: islandoracollabgroup/isle-apache:{{ isle_docker_image_tag }} -isle_docker_image_proxy: islandoracollabgroup/isle-proxy:{{ isle_docker_image_tag }} - -isle_docker_image_tag: latest - - -### For Debian / Ubuntu Hosts -docker_apt_repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} {{ docker_apt_release_type }}" -docker_apt_release_type: stable - -### For RHEL / CentOS Hosts - -docker_yum_repo: https://download.docker.com/linux/centos/docker-{{ docker_version }}.repo diff --git a/ansible/inventory b/ansible/inventory deleted file mode 100644 index a04ff8e33..000000000 --- a/ansible/inventory +++ /dev/null @@ -1,11 +0,0 @@ -# Please fill in / edit the following -# 1. Change isle-prod-project.institution value below to correct hostname. Please note ansible > host_vars > isle-prod-project.institution.yml will need to match this new name -# 2. Change the bracketed [isle-prod-project.institution] below to the correct hostname as well. -# 4. Add the correct Ansible deploy user account to the end of ansible_ssh_user= -# 5. Add the correct path to the Ansible deploy user's id_rsa.pub file after the ansible_ssh_private_key_file= - -[isle-prod-project.institution] -isle-prod-project.institution ansible_connection=ssh ansible_ssh_user= ansible_ssh_private_key_file= - -[host_local_macos_isle_localdomain] -host_local_macos_isle_localdomain ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_private_key_file= diff --git a/ansible/roles/dependencies/tasks/centos.yml b/ansible/roles/dependencies/tasks/centos.yml deleted file mode 100644 index a18c9cfbe..000000000 --- a/ansible/roles/dependencies/tasks/centos.yml +++ /dev/null @@ -1,54 +0,0 @@ ---- - -- name: Add the epel repo - command: yum -y install epel-release - -- name: Set selinux to permissive - selinux: policy=targeted state=permissive - -- name: systemctl stop firewalld.service - systemd: state=stopped name=firewalld enabled=no - -- name: systemctl stop iptables - systemd: state=stopped name=iptables enabled=yes - -- name: systemctl stop ip6tables - systemd: state=stopped name=ip6tables enabled=yes - -- name: Ensure that all host dependencies are installed - yum: - name: "{{ item }}" - state: latest - with_items: - - libselinux-python - - libsemanage-python - - yum-utils - - ntp - - openssh-clients - - rsync - - curl - - wget - - git - - zip - - unzip - - vim - - nano - - emacs-nox - - htop - - -- name: be sure ntpd is running and enabled - service: name=ntpd state=running enabled=yes - -- name: Add Docker GPG key for CENTOS - rpm_key: - key: https://download.docker.com/linux/centos/gpg - state: present - -- name: Add the Docker repository for RHEL / CENTOS - get_url: - url: "{{ docker_yum_repo }}" - dest: "/etc/yum.repos.d/docker-{{ docker_version }}.repo" - owner: root - group: root - mode: 0644 diff --git a/ansible/roles/dependencies/tasks/main.yml b/ansible/roles/dependencies/tasks/main.yml deleted file mode 100644 index 05f959d0d..000000000 --- a/ansible/roles/dependencies/tasks/main.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- - -- include: ubuntu.yml - when: ansible_os_family == 'Debian' - tags: - - dependencies - -- include: centos.yml - when: ansible_os_family == 'RedHat' - tags: - - dependencies diff --git a/ansible/roles/dependencies/tasks/ubuntu.yml b/ansible/roles/dependencies/tasks/ubuntu.yml deleted file mode 100644 index f736f8e46..000000000 --- a/ansible/roles/dependencies/tasks/ubuntu.yml +++ /dev/null @@ -1,41 +0,0 @@ ---- - -- name: Apt-get update - apt: update_cache=yes - -- name: Ensure that all host dependencies are installed - apt: - name: "{{ item }}" - state: present - with_items: - - software-properties-common - - python-software-properties - - ntp - - openssh-client - - rsync - - curl - - wget - - git - - zip - - unzip - - vim - - nano - - emacs24-nox - - htop - - apt-transport-https - - ca-certificates - -- name: turn off ufw - ufw: state=disabled - -- name: Ensure the ntp service is started and enabled - service: name=ntp enabled=yes - -- name: Add Docker apt/gpg key - shell: "curl -sSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -" - -- name: Add Docker repository for Debian / Ubuntu Systems - apt_repository: - repo: "{{ docker_apt_repo }}" - state: present - update_cache: yes diff --git a/ansible/roles/docker/tasks/install.yml b/ansible/roles/docker/tasks/install.yml deleted file mode 100644 index 98428910b..000000000 --- a/ansible/roles/docker/tasks/install.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- - -- name: Ensure Docker is installed - package: name={{ docker_package }} state=latest - -- name: Ensure Docker is started and enabled at boot. - service: - name: docker - state: started - enabled: yes - -- name: Add the appropriate user to the Docker group to run without sudo - command: sudo usermod -aG docker {{ docker_user }} diff --git a/ansible/roles/docker/tasks/main.yml b/ansible/roles/docker/tasks/main.yml deleted file mode 100644 index 10f89c86c..000000000 --- a/ansible/roles/docker/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - -- include: install.yml - tags: - - docker diff --git a/ansible/roles/docker_compose/tasks/install.yml b/ansible/roles/docker_compose/tasks/install.yml deleted file mode 100644 index 5bc9f7f43..000000000 --- a/ansible/roles/docker_compose/tasks/install.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- - -- name: Ensure that Docker Compose is installed - get_url: - url: "{{ docker_compose_url }}" - dest: "{{ docker_compose_path }}" - mode: 0755 diff --git a/ansible/roles/docker_compose/tasks/main.yml b/ansible/roles/docker_compose/tasks/main.yml deleted file mode 100644 index e66db30fd..000000000 --- a/ansible/roles/docker_compose/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - -- include: install.yml - tags: - - docker_compose diff --git a/ansible/roles/docker_images/tasks/images_pull.yml b/ansible/roles/docker_images/tasks/images_pull.yml deleted file mode 100644 index ad701f078..000000000 --- a/ansible/roles/docker_images/tasks/images_pull.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- - -- name: Pull all four of the ISLE images - shell: docker pull "{{ item }}" - with_items: - - "{{ isle_docker_image_mysql }}" - - "{{ isle_docker_image_fedora }}" - - "{{ isle_docker_image_solr }}" - - "{{ isle_docker_image_apache }}" - - "{{ isle_docker_image_proxy }}" diff --git a/ansible/roles/docker_images/tasks/main.yml b/ansible/roles/docker_images/tasks/main.yml deleted file mode 100644 index dfbc19756..000000000 --- a/ansible/roles/docker_images/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - -- include: images_pull.yml - tags: - - docker_images diff --git a/ansible/roles/git_clone/tasks/git_clone.yml b/ansible/roles/git_clone/tasks/git_clone.yml deleted file mode 100644 index af7d208b9..000000000 --- a/ansible/roles/git_clone/tasks/git_clone.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- - -- name: Clone the git repository to ISLE install path - git: - repo: '{{ isle_repo }}' - dest: "{{ isle_repo_path }}" - version: master - -- name: Change perms to islandora:islandora - file: - path: /opt/ISLE - owner: islandora - group: islandora - mode: 0755 - state: directory - recurse: yes diff --git a/ansible/roles/git_clone/tasks/main.yml b/ansible/roles/git_clone/tasks/main.yml deleted file mode 100644 index 23b267f55..000000000 --- a/ansible/roles/git_clone/tasks/main.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- - -- include: git_clone.yml - tags: - - git_clone diff --git a/ansible/roles/users_groups/files/islandora b/ansible/roles/users_groups/files/islandora deleted file mode 100644 index a43c89b9e..000000000 --- a/ansible/roles/users_groups/files/islandora +++ /dev/null @@ -1 +0,0 @@ -islandora ALL=(ALL:ALL) NOPASSWD:ALL diff --git a/ansible/roles/users_groups/tasks/groups.yml b/ansible/roles/users_groups/tasks/groups.yml deleted file mode 100644 index b2cc556e5..000000000 --- a/ansible/roles/users_groups/tasks/groups.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- - -- name: create group - group: name={{ user_name }} state=present gid={{ group_id_number }} diff --git a/ansible/roles/users_groups/tasks/main.yml b/ansible/roles/users_groups/tasks/main.yml deleted file mode 100644 index 50a674dfe..000000000 --- a/ansible/roles/users_groups/tasks/main.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- - -- include: groups.yml - tags: - - users_groups - -- include: users.yml - tags: - - users_groups - -- include: ssh.yml - tags: - - users_groups - -- include: secure.yml - tags: - - users_groups diff --git a/ansible/roles/users_groups/tasks/secure.yml b/ansible/roles/users_groups/tasks/secure.yml deleted file mode 100644 index 33996100a..000000000 --- a/ansible/roles/users_groups/tasks/secure.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -- name: disallow root SSH access - lineinfile: dest=/etc/ssh/sshd_config regexp="^PermitRootLogin" line="PermitRootLogin no" - -- name: disallow password authentication - lineinfile: dest=/etc/ssh/sshd_config regexp="^PasswordAuthentication" line="PasswordAuthentication no" - -- name: Allow islandora user to sudo without password - copy: src=islandora dest=/etc/sudoers.d/islandora owner=root group=root mode=0440 diff --git a/ansible/roles/users_groups/tasks/ssh.yml b/ansible/roles/users_groups/tasks/ssh.yml deleted file mode 100644 index d201b78fd..000000000 --- a/ansible/roles/users_groups/tasks/ssh.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -- name: create ssh directories - file: path=/home/{{ user_name }}/.ssh owner={{ user_name }} group={{ user_name }} mode=0700 state=directory - -- name: set up authorized_keys ONLY FOR ISLANDORA USER - authorized_key: user={{ user_name }} key="{{ lookup('file', item) }}" - with_fileglob: - - "{{ pub_locale }}" - -- name: increase ssh timeout - lineinfile: dest=/etc/ssh/sshd_config line='ClientAliveInterval 60' diff --git a/ansible/roles/users_groups/tasks/users.yml b/ansible/roles/users_groups/tasks/users.yml deleted file mode 100644 index 9347cff29..000000000 --- a/ansible/roles/users_groups/tasks/users.yml +++ /dev/null @@ -1,10 +0,0 @@ ---- -- name: create user with groups - user: - name="{{ user_name }}" - group="{{ user_name }}" - shell="{{ user_shell }}" - createhome=yes - generate_ssh_key=yes - password="{{ user_password }}" - uid="{{ user_id_number }}"