| --- |
| # 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. |
| |
| # file: head-prep/tasks/main.yml |
| |
| - name: Install prerequisites for using PPA repos |
| apt: |
| name: "{{ item }}" |
| update_cache: yes |
| cache_valid_time: 3600 |
| with_items: |
| - python-pycurl |
| - software-properties-common |
| |
| - name: Add Ansible PPA |
| apt_repository: |
| repo={{ item }} |
| with_items: |
| - "{{ ansible_apt_repo | default('ppa:ansible/ansible') }}" |
| register: result |
| until: result is success |
| retries: 3 |
| delay: 10 |
| |
| - name: Install packages |
| apt: |
| name: "{{ item }}" |
| update_cache: yes |
| cache_valid_time: 3600 |
| with_items: |
| - bridge-utils |
| - dnsutils |
| - git |
| - libssl-dev |
| - python-dev |
| - python-dnspython |
| - python-lxml |
| - python-netaddr |
| - python-pip |
| - sshpass |
| |
| - name: Install juju and openstack related packages |
| when: use_openstack |
| apt: |
| name: "{{ item }}" |
| update_cache: yes |
| cache_valid_time: 3600 |
| with_items: |
| - juju-core |
| - libvirt-bin |
| - python-glanceclient |
| - python-keystoneclient |
| - python-neutronclient |
| - python-novaclient |
| - virt-top |
| |
| - name: Make sure Ansible is newest version |
| apt: |
| name: "ansible" |
| state: latest |
| update_cache: yes |
| cache_valid_time: 3600 |
| tags: |
| - skip_ansible_lint # ansible-lint complains about latest, need this as distro provided 1.5.x version may be used if already installed. |
| |
| - name: Install Python packages |
| pip: |
| name: "{{ item }}" |
| with_items: |
| - ndg-httpsclient |
| - passlib |
| - pyasn1 |
| - pyopenssl |
| - urllib3 |
| - gitpython |
| - graphviz |
| |
| - name: Add pod ssh private key to head node user |
| copy: |
| src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey" |
| dest: "{{ ansible_user_dir }}/.ssh/id_{{ ssh_keytype }}" |
| owner: "{{ ansible_user_id }}" |
| group: "{{ ansible_user_gid }}" |
| mode: 0600 |
| |
| - name: Add pod ssh public key to head user |
| copy: |
| src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey.pub" |
| dest: "{{ ansible_user_dir }}/.ssh/id_{{ ssh_keytype }}.pub" |
| owner: "{{ ansible_user_id }}" |
| group: "{{ ansible_user_gid }}" |
| mode: 0644 |
| |
| - name: Add pod ssh signed public key to head node user |
| copy: |
| src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey-cert.pub" |
| dest: "{{ ansible_user_dir }}/.ssh/id_{{ ssh_keytype }}-cert.pub" |
| owner: "{{ ansible_user_id }}" |
| group: "{{ ansible_user_gid }}" |
| mode: 0644 |
| |
| - name: Disable host key checking in ~/.ssh/config |
| lineinfile: |
| dest: "{{ ansible_user_dir }}/.ssh/config" |
| line: "StrictHostKeyChecking no" |
| create: yes |
| owner: "{{ ansible_user_id }}" |
| group: "{{ ansible_user_gid }}" |
| mode: 0600 |
| |
| - name: Disable host key checking in ~/.ansible.cfg |
| copy: |
| src: ansible.cfg |
| dest: "{{ ansible_user_dir }}/.ansible.cfg" |
| owner: "{{ ansible_user_id }}" |
| group: "{{ ansible_user_gid }}" |
| mode: 0644 |
| |