aboutsummaryrefslogblamecommitdiffhomepage
path: root/Vagrant/bootstrap.yml
blob: fbd17cb1165667af0975234565f31d536e550e25 (plain) (tree)



















































































































































































                                                                                       
---
- hosts: all
  remote_user: vagrant
  become: true
  vars:
    - host_vars_directory: './host_vars'
    - host_vars_file: '{{ host_vars_directory }}/{{ inventory_hostname }}.yml'
    - pri_domain_name: 'vagrant.local'
    - ssh_key_path: '.vagrant/machines/{{ inventory_hostname }}/virtualbox/private_key'
    - update_host_vars: true
  roles:
  tasks:
    - name: updating apt cache (Debian)
      apt:
        update_cache: yes
        cache_valid_time: 3600
      when: ansible_os_family == "Debian"

    - name: installing ansible pre-reqs (Debian)
      apt:
        name: "{{ item }}"
        state: present
      with_items:
        - libffi-dev
        - libssl-dev
        - python-dev
        - python-setuptools
      when: >
            ansible_os_family == "Debian"

    - name: installing epel repo (RedHat)
      yum:
        name: "epel-release"
        state: present
      when: >
            ansible_os_family == "RedHat" and
            ansible_distribution != "Fedora"

    - name: installing ansible pre-reqs (RedHat)
      yum:
        name: "{{ item }}"
        state: present
      with_items:
        - libffi-devel
        - openssl-devel
        - python-crypto
        - python-devel
        - python-setuptools
      when: >
            ansible_os_family == "RedHat" and
            ansible_distribution != "Fedora"

    - name: installing ansible pre-reqs (Fedora)
      dnf:
        name: "{{ item }}"
        state: present
      with_items:
        - gmp-devel
        - libffi-devel
        - openssl-devel
        - python-crypto
        - python-devel
        - python-dnf
        - python-setuptools
        - redhat-rpm-config
      when: >
            ansible_os_family == "RedHat" and
            ansible_distribution == "Fedora"

    - name: installing ansible pre-reqs (openSUSE)
      zypper:
        name: "{{ item }}"
        state: present
      with_items:
        - gmp-devel
        - libffi-devel
        - openssl-devel
        - python-crypto
        - python-devel
        - python-setuptools
      when: >
            ansible_os_family == "openSUSE Leap"

    - name: installing python pip
      easy_install:
        name: "pip"
        state: present

    - name: installing ansible
      pip:
        name: "ansible"
        state: present
        version: 1.9.6

    - name: ensuring host_vars directory exists
      file:
        path: "./host_vars"
        state: directory
      delegate_to: localhost
      run_once: true
      become: false
      when: update_host_vars is defined and update_host_vars

    - name: ensuring host file exists in host_vars
      stat:
        path: "{{ host_vars_file }}"
      delegate_to: localhost
      register: host_var
      become: false
      when: >
            update_host_vars is defined and
            update_host_vars

    - name: creating missing host_vars
      file:
        path: "{{ host_vars_file }}"
        state: touch
      delegate_to: localhost
      become: false
      when: not host_var.stat.exists

    - name: updating ansible_ssh_port
      lineinfile:
        dest: "{{ host_vars_file }}"
        regexp: "^ansible_ssh_port{{ ':' }}"
        line: "ansible_ssh_port{{ ':' }} 22"
      delegate_to: localhost
      become: false
      when: >
            (update_host_vars is defined and
            update_host_vars) and
            (ansible_eth1 is defined or
            ansible_enp0s8 is defined)

    - name: updating ansible_ssh_host
      lineinfile:
        dest: "{{ host_vars_file }}"
        regexp: "^ansible_ssh_host{{ ':' }}"
        line: "ansible_ssh_host{{ ':' }} {{ ansible_eth1.ipv4.address }}"
      delegate_to: localhost
      become: false
      when: >
            (update_host_vars is defined and
            update_host_vars) and
            ansible_eth1 is defined

    - name: updating ansible_ssh_host
      lineinfile:
        dest: "{{ host_vars_file }}"
        regexp: "^ansible_ssh_host{{ ':' }}"
        line: "ansible_ssh_host{{ ':' }} {{ ansible_enp0s8.ipv4.address }}"
      delegate_to: localhost
      become: false
      when: >
            (update_host_vars is defined and
            update_host_vars) and
            ansible_enp0s8 is defined

    - name: updating ansible_ssh_key
      lineinfile:
        dest: "{{ host_vars_file }}"
        regexp: "^ansible_ssh_private_key_file{{ ':' }}"
        line: "ansible_ssh_private_key_file{{ ':' }} {{ ssh_key_path }}"
      delegate_to: localhost
      become: false
      when: >
            update_host_vars is defined and
            update_host_vars

    - name: ensuring host_vars is yaml formatted
      lineinfile:
        dest: "{{ host_vars_file }}"
        regexp: "---"
        line: "---"
        insertbefore: BOF
      delegate_to: localhost
      become: false
      when: >
            update_host_vars is defined and
            update_host_vars