master
1---
2- hosts:
3 - controller
4 remote_user: centos
5 tasks:
6 - name: Generate SSH key (centos on controller)
7 user: name=centos generate_ssh_key=yes ssh_key_bits=2048 ssh_key_file=.ssh/id_rsa
8
9 - name: Collect SSH public key (centos on controller)
10 fetch: src=/home/centos/.ssh/id_rsa.pub dest=/tmp/controller_id_rsa.pub flat=yes
11
12 - name: Collect SSH private key (centos on controller)
13 fetch: src=/home/centos/.ssh/id_rsa dest=/tmp/controller_id_rsa flat=yes
14
15 - name: Record public IP
16 shell: curl http://ipecho.net/plain;
17 register: public_ip
18
19 - name: Deploy Horizon Vhost
20 copy: src=files/vhost.conf
21 dest=/etc/httpd/conf.d/15-horizon_vhost.conf
22
23 - name: Deploy Horizon Vhost
24 copy: src=files/ssl_vhost.conf
25 dest=/etc/httpd/conf.d/15-horizon_ssl_vhost.conf
26
27- hosts: openstack-lab
28 remote_user: root
29 tasks:
30 - name: Setup /etc/hosts
31 copy: src=files/hosts dest=/etc/hosts
32
33 - name: Place ssh config file
34 copy: src=files/ssh_config
35 dest={{ item.home }}/.ssh/config
36 owner={{ item.user }}
37 group={{ item.user }}
38 with_items:
39 - { home: '/root', user: 'root' }
40 - { home: '/home/centos', user: 'centos' }
41 - { home: '/home/ceph', user: 'ceph' }
42 ignore_errors: yes
43
44 - name: Place ssh key
45 copy: src=/tmp/controller_id_rsa
46 dest={{ item.home }}/.ssh/id_rsa
47 owner={{ item.user }}
48 group={{ item.user }}
49 mode=0400
50 with_items:
51 - { home: '/root', user: 'root' }
52 - { home: '/home/centos', user: 'centos' }
53 - { home: '/home/ceph', user: 'ceph' }
54 ignore_errors: yes
55
56 - name: Add authorized key
57 authorized_key:
58 user: "{{ item }}"
59 key: "{{ lookup('file', '/tmp/controller_id_rsa.pub') }}"
60 with_items:
61 - ceph
62 - centos
63 - root
64 ignore_errors: yes
65
66 - name: Add bashrc
67 template: src=files/bashrc.j2
68 dest={{ item.home }}/.bashrc
69 owner={{ item.user }}
70 group={{ item.user }}
71 with_items:
72 - { home: '/root', user: 'root' }
73 - { home: '/home/centos', user: 'centos' }
74 - { home: '/home/ceph', user: 'ceph' }
75 ignore_errors: yes
76
77 - name: Place known_hosts
78 copy: src=files/known_hosts
79 dest={{ item.home }}/.ssh/known_hosts
80 owner={{ item.user }}
81 group={{ item.user }}
82 with_items:
83 - { home: '/root', user: 'root' }
84 - { home: '/home/centos', user: 'centos' }
85 - { home: '/home/ceph', user: 'ceph' }
86 ignore_errors: yes
87
88 - name: tools
89 yum: name={{ item }} state=latest
90 update_cache=yes
91 with_items:
92 - vim
93 - nano
94 - htop
95 - screen
96 - git
97 - ansible
98 - yum-plugin-priorities
99 - bash-completion