blob: d7becf891824d9e71a4c81889fcc58f4f25ca7e1 [file] [log] [blame]
Zack Williams8625d042016-02-26 14:32:43 -07001---
2# file: roles/head-prep/tasks/main.yml
3
4- name: Install prerequisites for using PPA repos
5 apt:
6 name={{ item }}
Zack Williams7ec058b2016-05-02 10:10:39 -07007 update_cache=yes
8 cache_valid_time=3600
Zack Williams8625d042016-02-26 14:32:43 -07009 with_items:
10 - python-pycurl
11 - software-properties-common
12
13- name: Add Ansible/Juju repositories
14 apt_repository:
15 repo={{ item }}
16 with_items:
David K. Bainbridge77a516a2016-10-27 10:57:57 -070017 - "{{ juju_apt_repo | default('ppa:juju/stable') }}"
Sapan Bhatiae471f4b2017-04-17 21:42:30 +020018 # - "{{ ansible_apt_repo | default('ppa:ansible/ansible') }}"
Zack Williams8625d042016-02-26 14:32:43 -070019
20- name: Install packages
21 apt:
22 name={{ item }}
Zack Williamsb6bf2ec2016-08-10 15:38:43 -070023 state=present
Zack Williams8625d042016-02-26 14:32:43 -070024 update_cache=yes
Zack Williams1320e1f2016-05-02 09:54:08 -070025 cache_valid_time=3600
Zack Williams8625d042016-02-26 14:32:43 -070026 with_items:
Zack Williams8625d042016-02-26 14:32:43 -070027 - uvtool
28 - git
29 - bzr
30 - juju-core
Andy Bavier30d27c92016-09-15 15:59:17 -040031 - python-pip
Zack Williams8625d042016-02-26 14:32:43 -070032 - python-novaclient
33 - python-neutronclient
34 - python-keystoneclient
35 - python-glanceclient
Zack Williams2b946292016-08-22 15:32:29 -070036 - python-lxml
Zack Williams709f11b2016-03-17 14:29:51 -070037 - virt-top
Sapan Bhatiae471f4b2017-04-17 21:42:30 +020038 - libssl-dev
39 - python-dev
40 - sshpass
Zack Williams8625d042016-02-26 14:32:43 -070041
Sapan Bhatiae471f4b2017-04-17 21:42:30 +020042- name: Install Ansible via pip
43 pip: name=ansible version=2.2.2.0
44# - name: Make sure Ansible is newest version
45# apt:
46# name: "ansible"
47# state: latest
48# update_cache: yes
49# cache_valid_time: 3600
50# tags:
51# - skip_ansible_lint # ansible-lint complains about latest, need this or old built in 1.5.x version may be used if already installed.
Zack Williams682450e2016-11-19 09:04:41 -070052
Andy Bavier30d27c92016-09-15 15:59:17 -040053- name: Install Python packages
54 pip:
55 name={{ item}}
56 state=present
57 with_items:
58 - urllib3
59 - pyopenssl
60 - ndg-httpsclient
61 - pyasn1
62
Zack Williams709f11b2016-03-17 14:29:51 -070063- name: Prep user account by adding to libvirtd group and generating SSH key
Zack Williams8625d042016-02-26 14:32:43 -070064 user:
Zack Williams9cdf8622016-02-26 22:42:50 -070065 name={{ ansible_user_id }}
Zack Williams8625d042016-02-26 14:32:43 -070066 generate_ssh_key=yes
67 groups="libvirtd" append=yes
68
Zack Williams709f11b2016-03-17 14:29:51 -070069- name: Register public key in variable
Zack Williams9cdf8622016-02-26 22:42:50 -070070 shell: cat {{ ansible_user_dir }}/.ssh/id_rsa.pub
Zack Williams8625d042016-02-26 14:32:43 -070071 register: sshkey
Zack Williams35624562016-08-28 17:12:26 -070072 tags:
73 - skip_ansible_lint # FIXME: this should be done a different way
Zack Williams8625d042016-02-26 14:32:43 -070074
Zack Williams709f11b2016-03-17 14:29:51 -070075- name: Add public key to this user account
Zack Williams8625d042016-02-26 14:32:43 -070076 authorized_key:
Zack Williams9cdf8622016-02-26 22:42:50 -070077 user={{ ansible_user_id }}
Zack Williams8625d042016-02-26 14:32:43 -070078 key="{{ sshkey.stdout }}"
79
Zack Williams2cffa0f2016-05-20 12:18:47 -070080- name: Disable host key checking in ~/.ssh/config
81 lineinfile:
82 dest={{ ansible_user_dir }}/.ssh/config
83 line="StrictHostKeyChecking no"
84 create=yes
85 owner={{ ansible_user_id }} mode=0600
86
87- name: Disable host key checking in ~/.ansible.cfg
88 copy:
89 src=ansible.cfg
90 dest={{ ansible_user_dir }}/.ansible.cfg
91 owner={{ ansible_user_id }} mode=0644
92
Zack Williams35624562016-08-28 17:12:26 -070093- name: Copy node key
94 when: not on_maas
Andy Bavier6274d6a2016-08-12 18:12:01 -040095 copy:
Zack Williams35624562016-08-28 17:12:26 -070096 src={{ ansible_user_dir }}/.ssh/id_rsa
Andy Bavier6274d6a2016-08-12 18:12:01 -040097 dest={{ ansible_user_dir }}/node_key
98 owner={{ ansible_user }}
99 mode=0600
100 remote_src=True
Andy Bavier6274d6a2016-08-12 18:12:01 -0400101
Zack Williams35624562016-08-28 17:12:26 -0700102- name: Copy node key (MaaS)
103 when: on_maas
Andy Bavier6274d6a2016-08-12 18:12:01 -0400104 copy:
Zack Williams35624562016-08-28 17:12:26 -0700105 src={{ maas_node_key }}
Andy Bavier6274d6a2016-08-12 18:12:01 -0400106 dest={{ ansible_user_dir }}/node_key
107 owner={{ ansible_user }}
108 mode=0600
109 remote_src=True
Zack Williams6f5a6e72016-08-10 17:45:27 -0700110