
# Copyright 2017-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


- name: JQ is present
  apt:
    name: jq
    force: yes
  tags: [common]

- name: Host is present
  lineinfile:
    dest: /etc/hosts
    regexp: "^{{ item.host_ip }}"
    line: "{{ item.host_ip }} {{ item.host_name }}"
  with_items: "{{ hosts }}"
  tags: [common]

- name: Latest apt packages
  apt:
    name: "{{ item }}"
  with_items: "{{ use_latest_for }}"
  tags: [common]

- name: Services are not running
  service:
    name: "{{ item }}"
    state: stopped
  ignore_errors: yes
  with_items: "{{ obsolete_services }}"
  tags: [common]

- name: Ensure known_hosts file is absent
  file:
    path: "/home/vagrant/.ssh/known_hosts"
    state: absent

- name: Create .ssh directory
  file: path={{ ansible_env['PWD'] }}/.ssh state=directory mode=0755

- name: Disable Known Host Checking
  copy:
    src: files/ssh_config
    dest: "/home/vagrant/.ssh/config"
    owner: "{{ ansible_env['SUDO_USER'] }}"
    group: "{{ ansible_env['SUDO_USER'] }}"
    mode: 0600
