forked from TechieZilla/Qwiklabs
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Set Up and Configure a Cloud Environment in Google Cloud: Challenge Lab [GSP321]
123 lines (72 loc) · 4.28 KB
/
Set Up and Configure a Cloud Environment in Google Cloud: Challenge Lab [GSP321]
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
GSP321 : Set Up and Configure a Cloud Environment in Google Cloud: Challenge Lab :-
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 1 : Create development VPC manually :-
gcloud compute networks create griffin-dev-vpc --subnet-mode custom
gcloud compute networks subnets create griffin-dev-wp --network=griffin-dev-vpc --region us-east1 --range=192.168.16.0/20
gcloud compute networks subnets create griffin-dev-mgmt --network=griffin-dev-vpc --region us-east1 --range=192.168.32.0/20
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 2 : Create production VPC manually :-
gsutil cp -r gs://cloud-training/gsp321/dm .
cd dm
sed -i s/SET_REGION/us-east1/g prod-network.yaml
gcloud deployment-manager deployments create prod-network \
--config=prod-network.yaml
cd ..
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 3 : Create bastion host :-
gcloud compute instances create bastion --network-interface=network=griffin-dev-vpc,subnet=griffin-dev-mgmt --network-interface=network=griffin-prod-vpc,subnet=griffin-prod-mgmt --tags=ssh --zone=us-east1-b
gcloud compute firewall-rules create fw-ssh-dev --source-ranges=0.0.0.0/0 --target-tags ssh --allow=tcp:22 --network=griffin-dev-vpc
gcloud compute firewall-rules create fw-ssh-prod --source-ranges=0.0.0.0/0 --target-tags ssh --allow=tcp:22 --network=griffin-prod-vpc
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 4 : Create and configure Cloud SQL Instance :-
gcloud sql instances create griffin-dev-db --root-password password --region=us-east1
gcloud sql connect griffin-dev-db
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO "wp_user"@"%" IDENTIFIED BY "stormwind_rules";
FLUSH PRIVILEGES;
exit
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 5 : Create Kubernetes cluster :-
gcloud container clusters create griffin-dev \
--network griffin-dev-vpc \
--subnetwork griffin-dev-wp \
--machine-type n1-standard-4 \
--num-nodes 2 \
--zone us-east1-b
gcloud container clusters get-credentials griffin-dev --zone us-east1-b
cd ~/
gsutil cp -r gs://cloud-training/gsp321/wp-k8s .
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 6 : Prepare the Kubernetes cluster :-
// Open Editor -> wp-k8s -> wp-env.yaml
Change username and password to :-
username : wp_user
password : stormwind_rules
// Save.
cd wp-k8s
kubectl create -f wp-env.yaml
gcloud iam service-accounts keys create key.json \
--iam-account=cloud-sql-proxy@$GOOGLE_CLOUD_PROJECT.iam.gserviceaccount.com
kubectl create secret generic cloudsql-instance-credentials \
--from-file key.json
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 7 : Create a WordPress deployment :-
// In editor : "wp-deployment.yaml" -> replace YOUR_SQL_INSTANCE with "griffin-dev-db".
// Save.
kubectl create -f wp-deployment.yaml
kubectl create -f wp-service.yaml
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 8 : Enable monitoring :-
// Navigation Menu -> Kubernetes Engine -> Services and Ingress -> Copy Endpoint's address.
// Navigation Menu -> Monitoring -> Uptime Checks -> + CREATE UPTIME CHECK
Title : Wordpress Uptime
// Next -> Target
Hostname : {Endpoint's address} (without http...)
Path : /
// Next -> Next -> Create
----------------------------------------------------------------------------------------------------------------------------------------------
Task - 9 : Provide access for an additional engineer :-
// Navigation Menu -> IAM & Admin -> IAM -> ADD
New Member : {Username 2 from Lab instruction page}
Role : Project -> Editor
// Save.