--- # 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