blob: 4bb2bca9b30d50304835198145d3720c84e9dd00 [file] [log] [blame]
Zack Williamsecdc89d2018-01-22 17:02:33 -07001---
Matteo Scandolo3896c472017-08-01 13:31:42 -07002# Copyright 2017-present Open Networking Foundation
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
Zack Williams0ab8f512017-06-29 08:41:51 -070016# file: head-prep/tasks/main.yml
Zack Williams8625d042016-02-26 14:32:43 -070017
18- name: Install prerequisites for using PPA repos
19 apt:
Zack Williams5223dd92017-02-28 23:38:02 -070020 name: "{{ item }}"
21 update_cache: yes
22 cache_valid_time: 3600
Zack Williams8625d042016-02-26 14:32:43 -070023 with_items:
24 - python-pycurl
25 - software-properties-common
26
Zack Williams5223dd92017-02-28 23:38:02 -070027- name: Add Ansible PPA
Zack Williams8625d042016-02-26 14:32:43 -070028 apt_repository:
29 repo={{ item }}
30 with_items:
Zack Williams5223dd92017-02-28 23:38:02 -070031 - "{{ ansible_apt_repo | default('ppa:ansible/ansible') }}"
Andy Bavier8cbc1f82017-02-24 16:35:39 -050032 register: result
Zack Williamsf6cc0122018-03-30 16:00:49 -070033 until: result is success
Andy Bavier8cbc1f82017-02-24 16:35:39 -050034 retries: 3
35 delay: 10
Zack Williams8625d042016-02-26 14:32:43 -070036
37- name: Install packages
38 apt:
Zack Williams5223dd92017-02-28 23:38:02 -070039 name: "{{ item }}"
40 update_cache: yes
41 cache_valid_time: 3600
Zack Williams8625d042016-02-26 14:32:43 -070042 with_items:
Zack Williams5223dd92017-02-28 23:38:02 -070043 - bridge-utils
44 - dnsutils
Zack Williams8625d042016-02-26 14:32:43 -070045 - git
Sapan Bhatia96426ec2017-04-13 19:41:04 -070046 - libssl-dev
47 - python-dev
Zack Williamsd7b8ffb2017-09-27 15:13:17 -070048 - python-dnspython
Zack Williams5223dd92017-02-28 23:38:02 -070049 - python-lxml
Zack Williamsd7b8ffb2017-09-27 15:13:17 -070050 - python-netaddr
Zack Williams5223dd92017-02-28 23:38:02 -070051 - python-pip
Sapan Bhatia96426ec2017-04-13 19:41:04 -070052 - sshpass
Zack Williamsecdc89d2018-01-22 17:02:33 -070053
54- name: Install juju and openstack related packages
55 when: use_openstack
56 apt:
57 name: "{{ item }}"
58 update_cache: yes
59 cache_valid_time: 3600
60 with_items:
61 - juju-core
62 - libvirt-bin
63 - python-glanceclient
64 - python-keystoneclient
65 - python-neutronclient
66 - python-novaclient
Zack Williams5223dd92017-02-28 23:38:02 -070067 - virt-top
Zack Williams8625d042016-02-26 14:32:43 -070068
Zack Williams0ab8f512017-06-29 08:41:51 -070069- name: Make sure Ansible is newest version
70 apt:
71 name: "ansible"
72 state: latest
73 update_cache: yes
74 cache_valid_time: 3600
75 tags:
76 - skip_ansible_lint # ansible-lint complains about latest, need this as distro provided 1.5.x version may be used if already installed.
Zack Williams682450e2016-11-19 09:04:41 -070077
Andy Bavier30d27c92016-09-15 15:59:17 -040078- name: Install Python packages
79 pip:
Zack Williams5223dd92017-02-28 23:38:02 -070080 name: "{{ item }}"
Andy Bavier30d27c92016-09-15 15:59:17 -040081 with_items:
Andy Bavier30d27c92016-09-15 15:59:17 -040082 - ndg-httpsclient
Zack Williams5223dd92017-02-28 23:38:02 -070083 - passlib
Andy Bavier30d27c92016-09-15 15:59:17 -040084 - pyasn1
Zack Williams5223dd92017-02-28 23:38:02 -070085 - pyopenssl
86 - urllib3
87 - gitpython
88 - graphviz
Andy Bavier30d27c92016-09-15 15:59:17 -040089
Zack Williams5223dd92017-02-28 23:38:02 -070090- name: Add pod ssh private key to head node user
91 copy:
92 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey"
93 dest: "{{ ansible_user_dir }}/.ssh/id_{{ ssh_keytype }}"
94 owner: "{{ ansible_user_id }}"
95 group: "{{ ansible_user_gid }}"
96 mode: 0600
Zack Williams8625d042016-02-26 14:32:43 -070097
Zack Williams5223dd92017-02-28 23:38:02 -070098- name: Add pod ssh public key to head user
99 copy:
100 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey.pub"
101 dest: "{{ ansible_user_dir }}/.ssh/id_{{ ssh_keytype }}.pub"
102 owner: "{{ ansible_user_id }}"
103 group: "{{ ansible_user_gid }}"
104 mode: 0644
Zack Williams8625d042016-02-26 14:32:43 -0700105
Zack Williams5223dd92017-02-28 23:38:02 -0700106- name: Add pod ssh signed public key to head node user
107 copy:
108 src: "{{ ssh_pki_dir }}/client_certs/{{ pod_sshkey_name }}_sshkey-cert.pub"
109 dest: "{{ ansible_user_dir }}/.ssh/id_{{ ssh_keytype }}-cert.pub"
110 owner: "{{ ansible_user_id }}"
111 group: "{{ ansible_user_gid }}"
112 mode: 0644
Zack Williams8625d042016-02-26 14:32:43 -0700113
Zack Williams2cffa0f2016-05-20 12:18:47 -0700114- name: Disable host key checking in ~/.ssh/config
115 lineinfile:
Zack Williams5223dd92017-02-28 23:38:02 -0700116 dest: "{{ ansible_user_dir }}/.ssh/config"
117 line: "StrictHostKeyChecking no"
118 create: yes
119 owner: "{{ ansible_user_id }}"
120 group: "{{ ansible_user_gid }}"
121 mode: 0600
Zack Williams2cffa0f2016-05-20 12:18:47 -0700122
123- name: Disable host key checking in ~/.ansible.cfg
124 copy:
Zack Williams5223dd92017-02-28 23:38:02 -0700125 src: ansible.cfg
126 dest: "{{ ansible_user_dir }}/.ansible.cfg"
127 owner: "{{ ansible_user_id }}"
128 group: "{{ ansible_user_gid }}"
129 mode: 0644
130