-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathredis.yml
136 lines (125 loc) · 3.44 KB
/
redis.yml
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
---
- name: Create Master instances
hosts: localhost
gather_facts: False
vars_files:
- gce_vars/auth
- gce_vars/machines
- gce_vars/zone
tasks:
- name: create a disk mapped for Redis Node - Centos 8
gcp_compute_disk:
name: redis1-disk-instance
size_gb: 50
type: pd-ssd
source_image: "{{ image }}"
zone: "{{ zone.za }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: disk
- name: create a VPC stockcheck network
gcp_compute_network:
name: stockchecker-subnetwork
auto_create_subnetworks: 'true'
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: network
- name: create a firewall rules for redis app
gcp_compute_firewall:
name: redis-fw-ports
network: "{{ network }}"
allowed:
- ip_protocol: icmp
- ip_protocol: tcp
ports:
- '22'
- '6379'
target_tags:
- redis
source_tags:
- management
- greeneagle
- stockcheck
- elasticsearch
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: firewall
- name: create the Redis instance
gcp_compute_instance:
name: redis1-instance1
machine_type: "{{ machine_type.redis }}"
disks:
- index: 0
auto_delete: 'no'
boot: 'true'
source: "{{ disk }}"
labels:
environment: production
network_interfaces:
- network: "{{ network }}"
tags:
items:
- management
metadata:
ssh_user: "{{ ssh_user }}"
ssh_key: "{{ ssh_key }}"
zone: "{{ zone.za }}"
project: "{{ gcp_project }}"
auth_kind: "{{ gcp_cred_kind }}"
service_account_file: "{{ gcp_cred_file }}"
state: present
register: redisinstance1
- name: Show Redis Instance Details
debug:
msg: "The Redis instance is accessible at {{ redisinstance1.networkInterfaces[0].networkIP }}"
- name: Add redis1 to group redis1
add_host:
name: "{{ redisinstance1.networkInterfaces[0].networkIP }}"
groups: redis
post_tasks:
- name: Wait for SSH for instance1
wait_for:
delay: 30
host: "{{ redisinstance1.networkInterfaces[0].networkIP }}"
port: 22
state: started
timeout: 120
- hosts: redis
gather_facts: False
become: true
vars:
ansible_user: belloau
ansible_ssh_private_key_file: ~/.ssh/id_rsa.pub
redis_pass: Xxhbyd5z
pkgs:
- redis
tasks:
- name: installing Redis
dnf:
name: "{{ pkgs }}"
state: present
- name: Redis Configuration
template:
src: templates/redis.j2
dest: /etc/redis.conf
- name: starting Redis services
systemd:
name: redis
state: started
enabled: yes
- name: open Redis ports on firewalld
firewalld:
port: 6379/tcp
permanent: yes
state: enabled
immediate: true
handlers:
- name: restart redis
systemd:
state: restarted