summaryrefslogtreecommitdiffstats
path: root/xci/infra/bifrost/playbooks/xci-prepare-env.yml
blob: b4ad8c0cf29275863426ecd91fe9336a0ea9600c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
- name: Prepare deployment host
  hosts: deployment_host
  gather_facts: True
  tasks:
    - name: Ensure common private key has correct permissions
      file:
        path: "{{ xci_path }}/xci/scripts/vm/id_rsa_for_dib"
        mode: "0600"

    - name: Remove host from known_hosts file if necessary
      shell:
        ssh-keygen -R {{ hostvars['opnfv'].ip }}
      failed_when: false

- name: Prepare the OPNFV host
  hosts: opnfv
  gather_facts: True
  vars_files:
    - "{{ xci_path }}/xci/var/opnfv.yml"
  tasks:
    - name: Copy bifrost inventory file
      copy:
        src: /tmp/baremetal.json
        dest: /tmp/baremetal.json

    - name: Configure SSH key for devuser
      user:
        name: devuser
        generate_ssh_key: yes
        ssh_key_bits: 2048
        ssh_key_comment: xci
        ssh_key_type: rsa
        state: present

    - name: Determine local user
      become: no
      local_action: command whoami
      changed_when: False
      register: _ansible_user

    - name: Fetch local SSH key
      delegate_to: localhost
      become: no
      slurp:
        src: "/home/{{ _ansible_user.stdout }}/.ssh/id_rsa.pub"
      register: _local_ssh_key

    - name: "Configure {{ inventory_hostname }} authorized_keys file (devuser)"
      authorized_key:
        exclusive: no
        user: devuser
        state: present
        manage_dir: yes
        key: "{{ _local_ssh_key['content'] | b64decode }}"
        comment: "deployer's key"

    - name: "Configure {{ inventory_hostname }} authorized_keys file (root)"
      authorized_key:
        exclusive: no
        user: root
        state: present
        manage_dir: yes
        key: "{{ _local_ssh_key['content'] | b64decode }}"
        comment: "deployer's key"
      become: yes

    - name: Ensure /httpboot directory exists
      file:
        path: /httpboot
        state: directory
      become: yes

    - name: Copy original qcow2 image to OPNFV VM
      synchronize:
        src: "{{ xci_cache }}/{{ item }}"
        dest: /httpboot/
        recursive: yes
        delete: yes
      with_items:
        - "deployment_image.qcow2"
        - "deployment_image.qcow2.sha256.txt"
      become: yes

    - name: Configure DNS on openSUSE
      block:
        - stat:
            path: /etc/resolv.conf.netconfig
          register: _resolv_conf_netconfig
        - shell: |
            mv /etc/resolv.conf.netconfig /etc/resolv.conf
          become: yes
          when: _resolv_conf_netconfig.stat.exists
      when: ansible_pkg_mgr == 'zypper'