149 lines
3.4 KiB
YAML
149 lines
3.4 KiB
YAML
---
|
|
# This playbook contains plays that will run on all nodes
|
|
|
|
- name: Add docker key
|
|
apt_key:
|
|
url: https://download.docker.com/linux/ubuntu/gpg
|
|
state: present
|
|
|
|
- name: Add docker repo
|
|
apt_repository:
|
|
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
|
|
state: present
|
|
|
|
- name: Update apt
|
|
apt: update_cache=yes
|
|
|
|
#- name: Upgrade APT to the lastest packages
|
|
# apt: upgrade=dist
|
|
|
|
- name: Install standard programs
|
|
apt: name={{ item }} state=present force=yes
|
|
with_items:
|
|
- htop
|
|
- curl
|
|
- openssh-server
|
|
- git
|
|
- rsync
|
|
- zip
|
|
- unzip
|
|
- fail2ban
|
|
- ntp
|
|
- mysql-client
|
|
- wget
|
|
- nfs-common
|
|
- sshpass
|
|
- ack-grep
|
|
- dnsutils
|
|
- nmon
|
|
- build-essential
|
|
- tmux
|
|
|
|
- name: Install docker-ce
|
|
shell: >
|
|
apt-get install -y -qq docker-ce=$(apt-cache madison docker-ce | grep "{{ docker_ce_version_to_install }}" | awk {'print $3'})
|
|
|
|
- name: Remove un-needed programs
|
|
apt: name={{ item }} state=absent force=yes
|
|
with_items:
|
|
- sysstat
|
|
|
|
- name: Replace sudoers file
|
|
template: src=../roles/common/templates/sudoers.j2 dest=/etc/sudoers
|
|
|
|
- name: Create standard user
|
|
user:
|
|
name: "{{ standard_user }}"
|
|
groups:
|
|
- sudo
|
|
- docker
|
|
state: present
|
|
shell: /bin/bash
|
|
|
|
- name: Add standard_user to docker group
|
|
user:
|
|
name: "{{ standard_user }}"
|
|
groups: docker
|
|
append: yes
|
|
|
|
- name: Set authorized key took from url
|
|
become: yes
|
|
become_user: "{{ standard_user }}"
|
|
authorized_key:
|
|
user: "{{ standard_user }}"
|
|
state: present
|
|
key: "{{ home_pub_key }}"
|
|
|
|
- name: Docker compose version
|
|
get_url:
|
|
url: "https://github.com/docker/compose/releases/download/{{docker_compose_version_to_install}}/docker-compose-{{ ansible_system }}-{{ ansible_userspace_architecture }}"
|
|
dest: /usr/local/bin/docker-compose
|
|
validate_certs: false
|
|
mode: 0755
|
|
group: root
|
|
owner: root
|
|
|
|
- name: Set timezone to NewYork
|
|
timezone:
|
|
name: America/New_York
|
|
ignore_errors: true
|
|
|
|
- name: Create /etc/docker
|
|
file:
|
|
path: /etc/docker
|
|
group: root
|
|
owner: root
|
|
mode: 700
|
|
state: directory
|
|
|
|
- name: Replace docker daemon file
|
|
template: src=../roles/common/templates/docker-daemon.json.j2 dest=/etc/docker/daemon.json
|
|
register: dockerdaemon
|
|
|
|
- name: Stop docker if daemon changes
|
|
service:
|
|
name: docker
|
|
state: stopped
|
|
when: dockerdaemon.changed
|
|
|
|
- name: Start docker if daemon changes
|
|
service:
|
|
name: docker
|
|
state: started
|
|
when: dockerdaemon.changed
|
|
|
|
- name: Creates directory
|
|
file: path=/data state=directory
|
|
|
|
- name: Data is mounted
|
|
stat: path=/data/swarm
|
|
register: data_mounted
|
|
|
|
- name: USB lab data in fstab
|
|
when: not data_mounted.stat.exists
|
|
lineinfile: dest=/etc/fstab
|
|
regexp=\/data
|
|
state=present
|
|
line="{{ nfs_location }}:{{ nfs_share }}/raw-files/fileserver/shares/lab-data /data nfs defaults,nolock 0 0"
|
|
|
|
- name: Mount USB lab data directory
|
|
mount:
|
|
path: /data
|
|
src: 10.0.0.150:{{ nfs_share }}/raw-files/fileserver/shares/lab-data
|
|
state: mounted
|
|
fstype: nfs
|
|
ignore_errors: true
|
|
|
|
- name: Set hostname
|
|
hostname:
|
|
name: '{{ inventory_hostname }}'
|
|
|
|
- name: Fix hosts file
|
|
replace:
|
|
path: /etc/hosts
|
|
regexp: '(\s+)ubuntu(\s+.*)?$'
|
|
replace: '\1{{ inventory_hostname }}\2'
|
|
backup: yes
|
|
|
|
- name: swap
|
|
include: swap.yml |