895 Commits

Author SHA1 Message Date
Manuel Romero
1d493c0417 craeting metasttore 2024-06-10 11:07:52 +02:00
Manuel Romero
d1ca5871e1 craeting metasttore 2024-06-10 10:56:43 +02:00
Manuel Romero
0a458bd9e1 craeting metasttore 2024-06-10 10:55:11 +02:00
Manuel Romero
c3dfb0fd5e apply_immediately = true 2024-06-06 15:24:00 +02:00
Manuel Romero
81e83f2d35 fix mysql aurora 2024-06-03 15:58:33 +02:00
Manuel Romero
0495a2c7e7 right location 2024-05-30 15:53:33 +02:00
Manuel Romero
914c01d5b6 full chain 2024-05-30 15:24:52 +02:00
Manuel Romero
18c8d8594a full chain cert 2024-05-30 15:22:34 +02:00
Manuel Romero
dba1462b82 postgres 14.9 2024-05-09 12:18:42 +02:00
Manuel Romero
332c862426 full cert 2024-04-09 16:05:35 +02:00
Manuel Romero
8301ef19c8 New CA 2024-04-04 12:54:04 +02:00
Manuel Romero
3be2b8521b New CA 2024-04-04 12:53:05 +02:00
Manuel Romero
72188c31d9 new certs 2024-04-01 17:08:16 +02:00
Manuel Romero
863c353251 new qmi certs 2024-04-01 16:30:56 +02:00
Madhavan Ananthchari
73ec094ea9 Update of Talend Blr office Ip 2024-03-22 07:35:40 +00:00
Manuel Romero
73a41216f4 no at symbol 2024-03-13 16:06:14 +01:00
Madhavan Ananthchari
603aeb5e88 Talend - IP Update for AWS 2024-03-13 07:35:35 +00:00
Madhavan Ananthchari
779b956d9f Update output.tf 2024-03-06 10:51:55 +00:00
Madhavan Ananthchari
eeb0b1d050 Update output.tf 2024-03-06 09:20:50 +00:00
Manuel Romero
6ba4d99fa6 updated license replicate and compose 2024-01-17 14:30:00 -05:00
Manuel Romero
e67f438bf1 twp security groups 2023-12-18 23:35:15 +01:00
Manuel Romero
86cf3382e4 twp security groups 2023-12-18 23:28:17 +01:00
Manuel Romero
7677ac35d5 twp security groups 2023-12-18 23:27:06 +01:00
Manuel Romero
080d3b06b2 stitch whitelist IPs 2023-12-12 10:04:43 +01:00
Manuel Romero
acbb0d0f02 stitch whitelist IPs 2023-12-12 10:00:09 +01:00
Manuel Romero
cbf29b0c7b db instance id 2023-11-30 10:43:17 +01:00
Manuel Romero
0bdb8098f6 30 minutes timeout 2023-10-30 16:21:22 +01:00
Manuel Romero
285bbfd0ab db to create 2023-10-27 09:45:37 +02:00
Manuel Romero
124758235e storage none encrypted if sqlserver-ex 2023-10-13 10:36:21 +02:00
Manuel Romero
8699ecb8ba fix 2023-10-10 16:02:23 +02:00
Manuel Romero
8d4e5f093c fix 2023-10-10 15:58:14 +02:00
Manuel Romero
a3bb140dd1 fix 2023-10-10 15:51:43 +02:00
Manuel Romero
4f257dfe75 fix 2023-10-10 15:47:46 +02:00
Manuel Romero
0f48c67682 create database 2023-09-22 16:23:13 +02:00
Manuel Romero
3a4b0bd80c autoscaling 2023-09-22 15:05:43 +02:00
Manuel Romero
b3cf48ffe0 postgres and mysql replicate source parameteres 2023-09-22 14:48:24 +02:00
Manuel Romero
ba653b84dc postgres and mysql replicate source parameteres 2023-09-22 14:46:28 +02:00
Manuel Romero
941914fb4b postgres and mysql replicate source parameteres 2023-09-22 14:43:14 +02:00
Manuel Romero
355ff49501 postgres and mysql replicate source parameteres 2023-09-22 14:38:45 +02:00
Manuel Romero
e12470936a postgres and mysql replicate source parameteres 2023-09-22 14:38:31 +02:00
Manuel Romero
2dec335a42 postgres and mysql replicate source parameteres 2023-09-22 14:34:11 +02:00
Manuel Romero
face5690f3 postgres and mysql replicate source parameteres 2023-09-22 14:23:57 +02:00
Manuel Romero
2965316e45 postgres and mysql replicate source parameteres 2023-09-22 14:13:56 +02:00
Manuel Romero
6d5f3836de postgres and mysql replicate source parameteres 2023-09-22 14:12:05 +02:00
Manuel Romero
a2f162108e postgres and mysql replicate source parameteres 2023-09-22 14:07:00 +02:00
Manuel Romero
8729b28232 postgres and mysql replicate source parameteres 2023-09-22 14:01:05 +02:00
Manuel Romero
7673592afc postgres and mysql replicate source parameteres 2023-09-22 13:37:46 +02:00
Manuel Romero
cef090b34e postgres and mysql replicate source parameteres 2023-09-22 13:32:27 +02:00
Manuel Romero
8683c0c571 postgres and mysql replicate source parameteres 2023-09-22 13:16:02 +02:00
Manuel Romero
4fbb10cd88 postgres and mysql replicate source parameteres 2023-09-22 13:10:25 +02:00
Manuel Romero
b972b37c18 postgres and mysql replicate source parameteres 2023-09-22 13:06:00 +02:00
Manuel Romero
3166ad4733 postgres and mysql replicate source parameteres 2023-09-22 12:56:17 +02:00
Manuel Romero
3762e16c46 postgres and mysql replicate source parameteres 2023-09-22 12:53:57 +02:00
Manuel Romero
99561e6db9 remove days policy 2023-08-30 10:57:47 +02:00
Manuel Romero
54e6a2e712 Adding Owner tag 2023-08-29 16:10:07 +02:00
Manuel Romero
8ee4a307a4 fix 2023-08-29 13:09:50 +02:00
Manuel Romero
d2e7d36db8 fix 2023-08-29 12:33:02 +02:00
Manuel Romero
a985fa804c fix 2023-08-29 12:32:25 +02:00
Manuel Romero
75eacd3cbf fix 2023-08-29 12:25:36 +02:00
Manuel Romero
6dd6ea18d8 new iss replicate for 2023.5 2023-08-29 11:35:37 +02:00
Manuel Romero
ce1a3232a8 attr account_replication_type 2023-08-17 11:46:23 +02:00
Manuel Romero
cf4403625d Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2023-08-10 14:15:46 +02:00
Manuel Romero
30043d9f92 enable backups 2023-08-10 14:15:27 +02:00
Leigh Kennedy
a09a64a44c incorrect CDR format 2023-07-25 10:55:12 +10:00
Manuel Romero
a31e962836 added frankfurt and uk ips to qmi 2023-07-19 09:25:13 +02:00
Manuel Romero
52e6a3144e mysql configuration 2023-07-18 16:02:58 +02:00
Manuel Romero
fd00d959af outputs dummy 2023-07-18 15:54:26 +02:00
Manuel Romero
2495d55f68 outputs dummy 2023-07-18 15:50:15 +02:00
Manuel Romero
8296fe803f mysql flex from qcs 2023-07-18 15:34:34 +02:00
Manuel Romero
f39acf0a66 postgres adjusts 2023-07-18 15:19:04 +02:00
Manuel Romero
2f993e3428 postgres 2023-07-18 15:12:32 +02:00
Manuel Romero
a9d1cb3bcf postgres 2023-07-18 14:56:24 +02:00
Manuel Romero
0ea7ad64cf postgres 2023-07-18 14:45:03 +02:00
Manuel Romero
3de68cb7b8 fixes 2023-07-18 14:41:27 +02:00
Manuel Romero
c2757a741a muysql dummy data 2023-07-18 14:21:44 +02:00
Manuel Romero
863ce9a598 mysq 2023-07-18 14:18:08 +02:00
Manuel Romero
afc6f11fa5 location eastus 2023-07-18 12:29:50 +02:00
Manuel Romero
582fa8bcea added infra qmi subnet rule 2023-07-18 12:24:38 +02:00
Manuel Romero
2c9b3d4b5e no at in passwords 2023-07-17 16:03:51 +02:00
Manuel Romero
c20dfbd402 no at in passwords 2023-07-17 15:50:54 +02:00
Manuel Romero
01b8bf0c50 no at in passwords 2023-07-17 15:33:50 +02:00
Manuel Romero
0a6869857d dvdrental 2023-07-17 13:19:00 +02:00
Manuel Romero
f6c39d7472 dvdrental 2023-07-17 13:05:35 +02:00
Manuel Romero
07b5053038 dvdrental 2023-07-17 12:58:35 +02:00
Manuel Romero
eba8fa9e87 dvdrental 2023-07-17 12:49:19 +02:00
Manuel Romero
4d11b3f187 dvdrental 2023-07-17 12:41:40 +02:00
Manuel Romero
dc24b43cd8 ClassicModels sample database mysql 2023-07-17 12:19:41 +02:00
Manuel Romero
61fe528976 dummy outputs 2023-07-17 12:07:15 +02:00
Manuel Romero
a19a607856 remove northwind 2023-07-17 10:54:29 +02:00
Manuel Romero
78d4e8309a Nortwind sample db for mssql 2023-07-17 10:49:26 +02:00
Manuel Romero
783d0151de fix mysql ssl true 2023-07-14 13:59:41 +02:00
Manuel Romero
d30de56058 fix mysql ssl true 2023-07-14 13:53:55 +02:00
Manuel Romero
52a9d5981e fix mysql ssl true 2023-07-14 13:52:37 +02:00
Manuel Romero
66b38d1584 fix mysql ssl true 2023-07-14 13:51:25 +02:00
Manuel Romero
7dbb98d316 fix mysql ssl true 2023-07-14 13:51:10 +02:00
Manuel Romero
bfc4848d3d fix 2023-07-14 13:31:15 +02:00
Manuel Romero
b98a37ea3f fix 2023-07-14 13:20:35 +02:00
Manuel Romero
3bc60d000f postgres 2023-07-14 13:02:48 +02:00
Manuel Romero
24ae1a51b5 fix 2023-07-14 12:56:00 +02:00
Manuel Romero
40a5e25411 flex 2023-07-14 12:41:17 +02:00
Manuel Romero
2e38ef0613 dummy azure mysql and mariadb 2023-07-14 12:27:17 +02:00
Manuel Romero
b579d373fc dummy sqlserver 2023-07-14 12:23:21 +02:00
Manuel Romero
c2e33e1594 fixes 2023-07-14 11:56:30 +02:00
Manuel Romero
5d2a8cb27e mssql dummt 2023-07-14 11:34:07 +02:00
Manuel Romero
153e73b0cf mssql dummt 2023-07-14 11:30:55 +02:00
Manuel Romero
00422d205d mssql dummt 2023-07-14 11:27:32 +02:00
Manuel Romero
4e9bdd67cc mssql dummy 2023-07-14 09:59:40 +02:00
Manuel Romero
c22aa6425b mssql dummy 2023-07-14 09:40:24 +02:00
Manuel Romero
272019806a mssql dummy data 2023-07-13 17:21:52 +02:00
Manuel Romero
adba72a956 mssql scripts 2023-07-13 17:04:26 +02:00
Manuel Romero
8d99cd8f9a no dummy data 2023-07-13 16:10:05 +02:00
Manuel Romero
b5307a8a3a dummydata 2023-07-13 15:58:03 +02:00
Manuel Romero
c6425d1a71 dummydata 2023-07-13 15:44:55 +02:00
Manuel Romero
14af06102d dummydata 2023-07-13 15:41:09 +02:00
Manuel Romero
bc3e8af1d1 dummydata 2023-07-13 15:37:18 +02:00
Manuel Romero
5022a62679 dummydata 2023-07-13 15:21:34 +02:00
Manuel Romero
f4cffe61b1 dummydata 2023-07-13 15:19:49 +02:00
Manuel Romero
0c12ad445d dummydata 2023-07-13 15:15:05 +02:00
Manuel Romero
3e83036494 dummydata 2023-07-13 15:06:24 +02:00
Manuel Romero
1cf0a975e4 dummydata 2023-07-13 14:57:16 +02:00
Manuel Romero
3b04a25f1b dummydata 2023-07-13 14:55:04 +02:00
Manuel Romero
1bb88d6a57 dummydata 2023-07-13 14:52:59 +02:00
Manuel Romero
46b4467fa3 dummydata 2023-07-13 14:52:05 +02:00
Manuel Romero
9f08b34e2f postgres 14.7 2023-07-13 10:52:16 +02:00
Manuel Romero
e33256edb7 postgres 14.7 2023-07-13 10:51:39 +02:00
Manuel Romero
09d36ebfc6 fix 2023-07-03 10:08:03 +02:00
Manuel Romero
ac62da66f7 redshift public 2023-07-03 09:38:36 +02:00
Manuel Romero
ddd5fb70d8 new version 2023-06-28 23:48:44 +02:00
Manuel Romero
3239434774 new version 2023-06-28 23:32:30 +02:00
Manuel Romero
82ef25250e new version 2023-06-28 18:20:18 +02:00
Manuel Romero
f82d4c93e7 new version 2023-06-28 18:18:02 +02:00
Manuel Romero
bfde497467 redshift fix 2023-06-28 18:06:07 +02:00
Manuel Romero
44aa5d4840 fix 2023-06-28 18:01:17 +02:00
Manuel Romero
830d321411 numeric 2023-06-28 17:39:30 +02:00
Manuel Romero
d5f28530b9 fixes emr 2023-06-22 16:04:20 +02:00
Manuel Romero
8f4ea9a5e8 fixes emr 2023-06-22 15:07:21 +02:00
Manuel Romero
872eae5c27 fixes emr 2023-06-22 15:04:01 +02:00
Manuel Romero
76670e32c5 fixes emr 2023-06-22 14:48:50 +02:00
Manuel Romero
a11b617374 fixes emr 2023-06-22 14:43:08 +02:00
Manuel Romero
17ae8ad1c6 fixes emr 2023-06-22 14:40:43 +02:00
Manuel Romero
10c761d7db fixes emr 2023-06-22 13:54:55 +02:00
Manuel Romero
e7b5bdbf56 fixes emr 2023-06-22 13:31:18 +02:00
Manuel Romero
1ff96cf2e7 fixes emr 2023-06-22 13:25:57 +02:00
Manuel Romero
e3d80097de fixes emr 2023-06-22 13:23:26 +02:00
Manuel Romero
edf63f2984 fixes emr 2023-06-22 13:17:32 +02:00
Manuel Romero
fca41d6699 fixes emr 2023-06-22 13:13:50 +02:00
Manuel Romero
1c023f1366 emr 2023-06-22 13:05:17 +02:00
Manuel Romero
134c27de95 all bucket 2023-06-07 11:52:14 +02:00
Manuel Romero
c8446c4572 more allows 2023-06-07 11:24:13 +02:00
Manuel Romero
f7584fc615 bucket name 2023-06-07 11:23:47 +02:00
Manuel Romero
8e08550954 connection complele params 2023-06-06 17:34:38 +02:00
Manuel Romero
26dfef4a69 public key 2023-06-06 16:56:03 +02:00
Manuel Romero
0c41ea5ae4 public key 2023-06-06 16:53:04 +02:00
Manuel Romero
a6c05ae63b public key 2023-06-06 16:48:02 +02:00
Manuel Romero
2eea32f7d2 output public key 2023-06-06 16:27:34 +02:00
Manuel Romero
fe01e6021a connection complele params 2023-06-05 13:11:47 +02:00
Manuel Romero
c366ad375d connection complele params 2023-06-05 12:56:56 +02:00
Manuel Romero
ac9a9b10ce connection complele params 2023-06-05 12:47:18 +02:00
Manuel Romero
a158fe1630 connection complele params 2023-06-05 12:25:03 +02:00
Manuel Romero
b91b55c2f9 connection complele params 2023-06-05 12:22:02 +02:00
Manuel Romero
ba238b4088 ntlm false 2023-06-05 12:11:24 +02:00
Manuel Romero
e5c998b68e ntlm false 2023-06-05 12:09:47 +02:00
Manuel Romero
05b315b1ce fix gw 2023-06-05 10:20:43 +02:00
Manuel Romero
6ee54f1f37 fix gw 2023-06-05 10:03:15 +02:00
Manuel Romero
566ca1a41b fix gw 2023-06-05 09:56:05 +02:00
Manuel Romero
cfdbc04931 back slash 2023-06-02 11:04:20 +02:00
Manuel Romero
78a966b9a3 revert 2023-06-02 10:51:32 +02:00
Manuel Romero
00c3385aa0 prepfiles 2023-06-02 10:42:45 +02:00
Manuel Romero
6a8f980d05 noprofile 2023-06-01 13:28:54 +02:00
Manuel Romero
0ed37bbfdc noprofile 2023-06-01 13:15:13 +02:00
Manuel Romero
38a17a38df noprofile 2023-06-01 12:56:20 +02:00
Manuel Romero
5a47d57d92 noprofile 2023-06-01 12:17:15 +02:00
Manuel Romero
73cbeca7c1 using prep files again 2023-06-01 12:12:22 +02:00
Manuel Romero
01c8bfdcee using prep files again 2023-06-01 12:02:14 +02:00
Manuel Romero
15c03dfd4c using prep files again 2023-06-01 11:56:11 +02:00
Manuel Romero
0c7985c188 using prep files again 2023-06-01 11:52:07 +02:00
Manuel Romero
f99af254dd using prep files again 2023-06-01 11:16:56 +02:00
Manuel Romero
05acfb8673 using prep files again 2023-06-01 11:12:47 +02:00
Manuel Romero
19f8da742d using prep files again 2023-06-01 11:04:46 +02:00
Manuel Romero
0df688e641 using prep files again 2023-06-01 10:59:39 +02:00
Manuel Romero
a86a328b88 using prep files again 2023-06-01 10:40:40 +02:00
Manuel Romero
1387c15194 using prep files again 2023-06-01 10:29:03 +02:00
Manuel Romero
2125c15b4e using prep files again 2023-06-01 10:19:25 +02:00
Manuel Romero
7d35ce588e remove public ip thingy 2023-05-31 16:30:14 +02:00
Manuel Romero
40843fd65c fix aurora postgtes 2023-05-23 10:24:22 +02:00
Manuel Romero
3042b873e1 fix aurora postgtes 2023-05-23 10:23:43 +02:00
Manuel Romero
d2eb231002 fix aurora postgtes 2023-05-23 10:19:02 +02:00
Manuel Romero
1902175e0b fix aurora postgtes 2023-05-23 10:05:34 +02:00
Manuel Romero
750ed46bc1 New versions AWS RDS 2023-05-23 09:58:39 +02:00
Manuel Romero
f18d5129e7 remove old oracle linux 2023-03-28 15:24:31 +02:00
Manuel Romero
d410e5a24f using azurerm_linux_virtual_machine 2023-03-28 15:13:15 +02:00
Manuel Romero
8864aa4b79 fix 2023-03-23 09:34:07 +01:00
Manuel Romero
c74fa8f2bd fix 2023-03-23 09:24:13 +01:00
Manuel Romero
2237232cc8 new config for cluster 2023-03-20 14:01:51 +01:00
Manuel Romero
98b5f4ff9c cluster_size 2023-03-20 13:33:20 +01:00
Manuel Romero
1e306f9efe cluster_size 2023-03-20 13:00:19 +01:00
Manuel Romero
6b2eaa6d19 secret to all 2023-03-20 12:44:41 +01:00
Manuel Romero
cb633dda5e fix 2023-03-20 12:30:24 +01:00
Manuel Romero
8728f8b109 dbricks SQL name 2023-03-20 12:26:17 +01:00
Manuel Romero
c0d76a2b1d fix scope 2023-03-20 12:14:58 +01:00
Manuel Romero
a2c0735f14 new databricks 2023-03-20 12:06:37 +01:00
Manuel Romero
a1f0414512 fix vm-qdc on https 2023-03-15 15:46:41 +01:00
Manuel Romero
2d17f418b0 fix vm-qdc on https 2023-03-15 15:45:56 +01:00
Manuel Romero
e1fb80ff4a fix vm-qdc on https 2023-03-15 15:41:54 +01:00
Manuel Romero
e062728fae new cert 2023-03-15 15:12:54 +01:00
Manuel Romero
3ff07f37b6 new cert 2023-03-15 15:02:14 +01:00
Manuel Romero
2484a5c090 new cert 2023-03-15 15:01:03 +01:00
Manuel Romero
57bfb366c1 new certificate 2023-03-15 14:47:23 +01:00
Manuel Romero
4176f45593 new certificate 2023-03-15 14:26:44 +01:00
Manuel Romero
c4dbff136b new certificate 2023-03-15 14:22:13 +01:00
Manuel Romero
d56290caa4 new certificate 2023-03-15 14:12:40 +01:00
Manuel Romero
1fc4c1b57c new certificate 2023-03-15 13:55:14 +01:00
Manuel Romero
9a2518885d new certificate 2023-03-15 13:50:26 +01:00
Manuel Romero
28c93c8905 new certificate 2023-03-15 13:45:33 +01:00
Manuel Romero
84030db306 update switch 2023-03-15 13:37:11 +01:00
Manuel Romero
1f87ab4ea2 update switch 2023-03-15 13:14:49 +01:00
Manuel Romero
a47a85a528 stuff 2023-03-15 13:07:45 +01:00
Manuel Romero
26e0bbaed0 fix custom_data 2023-03-15 12:49:10 +01:00
Manuel Romero
a2d9fa3134 fix custom_data 2023-03-15 12:47:34 +01:00
Manuel Romero
5f1d8aec59 fix custom_data 2023-03-15 12:41:48 +01:00
Manuel Romero
30f6d1de65 fix custom_data 2023-03-15 12:40:59 +01:00
Manuel Romero
7ff8a4710d fix custom_data 2023-03-15 12:29:05 +01:00
Manuel Romero
b662c7b975 fix custom_data 2023-03-15 12:19:33 +01:00
Manuel Romero
91fd8697b6 fix custom_data 2023-03-15 12:05:45 +01:00
Manuel Romero
6b3d69f50c fix custom_data 2023-03-15 11:57:44 +01:00
Manuel Romero
7112f091a2 fix custom_data 2023-03-15 11:48:48 +01:00
Manuel Romero
13ae7eb9b4 fix custom_data 2023-03-15 11:36:45 +01:00
Manuel Romero
6796c53c93 fix custom_data 2023-03-15 11:16:30 +01:00
Manuel Romero
3716a29365 fix custom_data 2023-03-15 10:58:14 +01:00
Manuel Romero
e1b7a5f5c7 fix custom_data 2023-03-15 10:56:44 +01:00
Manuel Romero
50df71d2ee fix custom_data 2023-03-15 10:53:43 +01:00
Manuel Romero
3c6687a2c6 fix custom_data 2023-03-15 10:42:46 +01:00
Manuel Romero
c6e9e4c102 fix custom_data 2023-03-15 10:41:48 +01:00
Manuel Romero
4f9322c060 shell script 2023-03-15 10:30:23 +01:00
Manuel Romero
0ecfa30952 test vm-centos 2023-03-15 10:12:50 +01:00
Manuel Romero
8a83983993 new cert 2023-03-15 10:10:55 +01:00
Manuel Romero
80577ffdd9 fix 2023-03-14 17:05:40 +01:00
Manuel Romero
cde377b833 test save pem cert 2023-03-14 16:24:59 +01:00
Manuel Romero
a5639963c3 test save pem cert 2023-03-14 16:17:49 +01:00
Manuel Romero
947503e2e5 test save pem cert 2023-03-14 16:13:45 +01:00
Manuel Romero
26f1175499 test save pem cert 2023-03-14 16:12:11 +01:00
Manuel Romero
342e3c87e1 refactor vm-qs 2023-02-24 13:14:04 +01:00
Manuel Romero
125ead99e0 do restart 2023-02-24 12:27:35 +01:00
Manuel Romero
3ac84a4e3b do restart 2023-02-24 11:57:59 +01:00
Manuel Romero
c0373165a5 do restart 2023-02-24 11:49:47 +01:00
Manuel Romero
a7d9bcfeb2 do restart 2023-02-24 11:39:48 +01:00
Manuel Romero
012d88b700 do restart 2023-02-24 11:36:10 +01:00
Manuel Romero
2e19e9852f hdinsight hadoop 2023-02-22 13:08:57 +01:00
Manuel Romero
1eea6a6b1f hdinsight hadoop 2023-02-22 13:06:53 +01:00
Manuel Romero
582fdb35a1 hdinsight hadoop 2023-02-22 13:03:19 +01:00
Manuel Romero
28a1bc9189 hdinsight hadoop 2023-02-22 12:59:45 +01:00
Manuel Romero
7a06b4d018 hdinsight hadoop 2023-02-22 12:48:20 +01:00
Manuel Romero
d26cf488c4 hdinsight hadoop 2023-02-22 12:43:19 +01:00
Manuel Romero
b24ddd6f17 hdinsight hadoop 2023-02-22 12:41:02 +01:00
Manuel Romero
216895356d hdinsight hadoop 2023-02-22 12:37:32 +01:00
Manuel Romero
5758e59956 hdinsight hadoop 2023-02-22 12:34:18 +01:00
Manuel Romero
cb308ee99c hdinsight hadoop 2023-02-22 12:05:08 +01:00
Manuel Romero
1186fd5fdb hdinsight hadoop 2023-02-22 11:51:05 +01:00
Manuel Romero
36a6c55634 hdinsight hadoop 2023-02-22 11:47:26 +01:00
Manuel Romero
72b7a0489e hdinsight hadoop 2023-02-22 11:39:24 +01:00
Manuel Romero
44f59e7c65 hdinsight hadoop 2023-02-22 11:33:38 +01:00
Manuel Romero
f261798ea7 hdinsight hadoop 2023-02-22 11:25:00 +01:00
Manuel Romero
9e1e16f8a4 do start qs services 2023-02-21 14:23:49 +01:00
Manuel Romero
91e69720a0 new webconnector version 2023-02-21 10:02:52 +01:00
Manuel Romero
c690b93c21 more ports 2023-02-20 15:59:14 +01:00
Manuel Romero
aa447d82e7 no loggingservice qs 2023-02-20 14:44:31 +01:00
Manuel Romero
3c2678a4ed Added staging IPs 2023-02-17 11:47:48 +01:00
Manuel Romero
d7053152de private buckets 2023-02-02 12:39:38 +01:00
Manuel Romero
9b437effc8 linux identity 2023-01-17 16:52:12 +01:00
Manuel Romero
0b7aa244f7 re enable resize 2023-01-17 14:58:27 +01:00
Manuel Romero
c65aeb895c re enable resize 2023-01-17 14:36:09 +01:00
Manuel Romero
df5f5ede63 disable other sw 2023-01-17 13:53:39 +01:00
Manuel Romero
9e35559484 centos fro variables 2023-01-17 13:06:12 +01:00
Manuel Romero
9c43fb0365 disable centos resize 2023-01-17 12:10:34 +01:00
Manuel Romero
cb3de5f0b6 centos to redhat 2023-01-17 11:41:41 +01:00
Manuel Romero
aa3e804f05 new replicate license 2023-01-16 17:52:37 +01:00
Manuel Romero
f1a74bbfb9 new replicate license 2023-01-16 16:37:28 +01:00
Manuel Romero
79729e75ff new compose license 2023-01-16 16:34:51 +01:00
Manuel Romero
0f2c045643 new compose license 2023-01-16 15:34:39 +01:00
Manuel Romero
ee8faa93a4 14.5 aurora postgres 2022-12-21 15:44:09 +01:00
Manuel Romero
d38f0fe08d 13.3 aurora postgres 2022-12-21 15:39:38 +01:00
Manuel Romero
46b1ace1b0 fix 2022-12-15 13:50:10 +01:00
Manuel Romero
e94765d9fb fix 2022-12-15 13:21:13 +01:00
Manuel Romero
9aaa01cedf fix 2022-12-15 11:25:23 +01:00
Manuel Romero
66182ef502 fix 2022-12-15 11:20:25 +01:00
Manuel Romero
5e41dead77 fix 2022-12-15 10:31:02 +01:00
Manuel Romero
7dfb8fdc59 fix 2022-12-15 10:17:54 +01:00
Manuel Romero
b2df480402 added cluster id 2022-12-12 13:01:57 +01:00
Manuel Romero
d2578e7120 added cluster id 2022-12-12 12:56:52 +01:00
Manuel Romero
fc7a2a545d added full vpn public ip 2022-11-16 15:43:37 +01:00
Manuel Romero
26fef17a85 added full vpn public ip 2022-11-16 14:57:07 +01:00
Manuel Romero
dec9adb9d9 identity for oraclelinux 2022-11-15 12:49:27 +01:00
Manuel Romero
50e49bb3d1 identity for oraclelinux 2022-11-15 12:25:22 +01:00
Manuel Romero
631af14f36 module adls 2022-11-15 12:14:06 +01:00
Manuel Romero
d3f3b784c0 module adls 2022-11-15 11:54:20 +01:00
Manuel Romero
c405c6148c fix 2022-11-14 15:03:43 +01:00
Manuel Romero
0b1fddaaa0 fix 2022-11-11 09:57:39 +01:00
Manuel Romero
01546f7160 fix -Recurse 2022-11-10 11:46:07 +01:00
Manuel Romero
449d7d20e3 fix falcon ubuntu 2022-11-09 12:26:48 +01:00
Manuel Romero
5758d49d7b fix falcon ubuntu 2022-11-09 12:13:41 +01:00
Manuel Romero
0c3465287e executing 2022-11-09 12:03:17 +01:00
Manuel Romero
1421afec44 falcon sensor download too 2022-11-09 11:34:19 +01:00
Manuel Romero
39156376f7 fix 2022-11-09 10:55:47 +01:00
Manuel Romero
4b952e7933 adding linux-common to oraclelinux81 2022-11-09 10:06:51 +01:00
Manuel Romero
f89ebdc1a5 adding linux-common to oraclelinux81 2022-11-09 09:42:02 +01:00
Manuel Romero
0eb6599293 New Tenable for liunux versions 2022-11-09 09:32:01 +01:00
Manuel Romero
1e35a4b115 New Tenable for liunux versions 2022-11-09 09:22:17 +01:00
Manuel Romero
46578fa00b Tenable agent 10.2.1 2022-11-08 17:22:05 +01:00
Manuel Romero
4525a19abe Tenable agent 10.2.1 2022-11-08 17:15:51 +01:00
Manuel Romero
52a53cf37a Tenable agent 10.2.1 2022-11-08 17:12:08 +01:00
Manuel Romero
c6f54ca313 fix set license 2022-11-08 15:59:44 +01:00
Manuel Romero
681eeac771 remove install dir 2022-11-08 14:43:03 +01:00
Manuel Romero
e2d4a51172 some logs 2022-11-08 13:32:57 +01:00
Manuel Romero
69cfc21c00 compose install no version 2022-11-08 11:29:24 +01:00
Manuel Romero
cb26f07af6 new iss files for compose and replicate install modules 2022-11-08 10:54:34 +01:00
Manuel Romero
37c71a8302 Merge branch 'dev' 2022-11-07 15:33:08 +01:00
Manuel Romero
c26e2319a7 delete old install logs file for replicate 2022-11-07 15:32:32 +01:00
Manuel Romero
86a777ca97 extracted databricks provider 2022-10-28 12:53:46 +02:00
Manuel Romero
f485d7b36d extracted databricks provider 2022-10-28 12:03:50 +02:00
Manuel Romero
323d72de18 extracted databricks provider 2022-10-28 12:01:50 +02:00
Manuel Romero
ed6697b4f4 extracted databricks provider 2022-10-28 11:47:21 +02:00
Manuel Romero
61eab3a2ab extracted databricks provider 2022-10-28 11:46:39 +02:00
Manuel Romero
ecbb6d529f extracted databricks provider 2022-10-28 11:46:11 +02:00
Manuel Romero
67da030660 extracted databricks provider 2022-10-28 11:40:32 +02:00
Manuel Romero
f43765fbc8 admin group 2022-10-27 17:56:17 +02:00
Manuel Romero
aee47a6b7e admin group 2022-10-27 17:53:54 +02:00
Manuel Romero
58c585e55a admin group 2022-10-27 17:49:06 +02:00
Manuel Romero
9e1bfe328b admin group 2022-10-27 17:44:52 +02:00
Manuel Romero
62c57e1459 admin group 2022-10-27 17:42:35 +02:00
Manuel Romero
0840e4c009 admin group 2022-10-27 17:37:20 +02:00
Manuel Romero
67d45cfe58 admin group 2022-10-27 17:35:45 +02:00
Manuel Romero
2e11a9454d admin group 2022-10-27 17:34:17 +02:00
Manuel Romero
0fc85807ae User as contributor of ws 2022-10-27 15:47:36 +02:00
Manuel Romero
cc8a73a4c3 no enabled variable 2022-10-27 13:57:57 +02:00
Manuel Romero
726fbae134 fixes 2022-10-27 13:51:24 +02:00
Manuel Romero
2cbcef3396 fixes 2022-10-27 13:48:23 +02:00
Manuel Romero
7dac9d2c42 back to enabling azureservices 2022-10-27 10:12:23 +02:00
Manuel Romero
2927a01619 element of lis 2022-10-26 10:33:08 +02:00
Manuel Romero
ac4a245401 element of lis 2022-10-26 10:31:14 +02:00
Manuel Romero
ff8907b213 element of lis 2022-10-26 10:24:10 +02:00
Manuel Romero
0714311ae8 element of lis 2022-10-26 10:11:25 +02:00
Manuel Romero
8c6437418e databricks sql endpoint 2022-10-25 15:27:00 +02:00
Manuel Romero
89f16c8410 databricks sql endpoint 2022-10-25 14:55:39 +02:00
Manuel Romero
7ddf8a1df7 databricks sql endpoint 2022-10-25 14:42:39 +02:00
Manuel Romero
e323705007 databricks sql endpoint 2022-10-25 14:41:20 +02:00
Manuel Romero
d84d4b1f4b databricks sql endpoint 2022-10-25 14:35:43 +02:00
Manuel Romero
a6506d4595 dbricks sql endpoint 2022-10-25 14:29:21 +02:00
Manuel Romero
819d0b10a2 Adding more tags 2022-10-25 12:36:17 +02:00
Manuel Romero
4ea88d1cbc Adding more tags 2022-10-25 12:35:02 +02:00
Manuel Romero
654596f6af Adding more tags 2022-10-25 12:33:04 +02:00
Manuel Romero
53ec331153 Adding more tags 2022-10-25 12:30:58 +02:00
Manuel Romero
30bffa482e fix 2022-10-24 16:53:49 +02:00
Manuel Romero
a2b249be6a Merge branch 'master' into dev 2022-10-24 16:52:20 +02:00
Manuel Romero
6c44031813 fix 2022-10-24 15:03:22 +02:00
prabu.selvam
2db1e41016 provider change 2022-10-21 18:58:35 +05:30
prabu.selvam
33662a64bc region update 2022-10-21 17:25:03 +05:30
prabu.selvam
ea8a7db5da s3 bucket with sftp public access 2022-10-21 16:19:28 +05:30
prabu.selvam
11b3ef2c83 new s3 sftp public module v1 2022-10-21 15:43:14 +05:30
Manuel Romero
92f41db6da spark version for databricks 2022-10-21 09:33:34 +02:00
Manuel Romero
fd03d0fb78 fix fw synapse 2022-10-20 16:09:23 +02:00
Manuel Romero
8cdc80da72 fix fw synapse 2022-10-20 16:02:03 +02:00
Manuel Romero
ed07c8ebaf fix fw synapse 2022-10-20 15:50:55 +02:00
Manuel Romero
53850cd0ac fix fw synapse 2022-10-20 15:48:10 +02:00
Manuel Romero
e03e98ef27 fix synapse fw 2022-10-20 15:27:53 +02:00
Manuel Romero
e7afb0d9b5 firewall ips 2022-10-18 17:35:26 +02:00
Manuel Romero
e92e2c3501 firewall ips 2022-10-18 17:21:38 +02:00
Manuel Romero
900ae07307 firewall ips 2022-10-18 17:14:23 +02:00
Manuel Romero
b00e4877e2 firewall ips 2022-10-18 17:06:58 +02:00
Manuel Romero
2ff0cf6dbe extracted firewall rules to tf files 2022-10-18 16:49:56 +02:00
Manuel Romero
6cec04aedc extracted firewall rules to tf files 2022-10-18 16:46:02 +02:00
Manuel Romero
fa0fc77b88 extracted firewall rules to tf files 2022-10-18 16:43:49 +02:00
Manuel Romero
b3386b21f8 extracted firewall rules to tf files 2022-10-18 16:37:44 +02:00
Manuel Romero
c52079c850 extracted firewall rules to tf files 2022-10-18 16:37:03 +02:00
Manuel Romero
a305af55cc extracted firewall rules to tf files 2022-10-18 16:33:52 +02:00
Manuel Romero
fb2c6bbadc extracted firewall rules to tf files 2022-10-18 16:29:07 +02:00
Manuel Romero
0b876830e5 adding mariadb module azure 2022-10-18 16:22:14 +02:00
Manuel Romero
0888a591b5 adding mariadb module azure 2022-10-18 16:19:49 +02:00
Manuel Romero
2123fc40dd fixes 2022-10-18 11:56:15 +02:00
Manuel Romero
45c6dc8ba7 fixes 2022-10-18 11:52:44 +02:00
Manuel Romero
30cd69f22c fixes 2022-10-18 11:46:32 +02:00
Manuel Romero
c42cbc6428 fixes 2022-10-18 11:43:36 +02:00
Manuel Romero
34c23d363f fixes 2022-10-18 11:41:27 +02:00
Manuel Romero
da2f3e0d84 fix output sftp username 2022-10-18 11:21:41 +02:00
Manuel Romero
7bcd7a765d New s3 sftp bucket module 2022-10-18 11:07:26 +02:00
Manuel Romero
5aa0e7dec5 back to before 2022-10-17 21:52:50 +02:00
Manuel Romero
c6c678ae88 fixes appgw 2022-10-17 15:38:03 +02:00
Manuel Romero
aced77efba fixes appgw 2022-10-17 15:29:52 +02:00
Manuel Romero
906569c476 fixes appgw 2022-10-17 15:09:04 +02:00
Manuel Romero
97faefed04 fixes appgw 2022-10-17 15:06:06 +02:00
Manuel Romero
989002cb32 not used anymore 2022-10-07 13:06:57 +02:00
Manuel Romero
d22d992ab8 fort 2022-10-07 13:00:04 +02:00
Manuel Romero
a0dae20911 updated version 2022-10-07 10:01:20 +02:00
Manuel Romero
9e27bb15bd updated version 2022-10-07 09:56:30 +02:00
Manuel Romero
a4b9abb15e fix 2022-10-06 17:10:37 +02:00
Manuel Romero
9f4db8b3ce fix 2022-10-06 16:56:54 +02:00
Manuel Romero
7fcefed82f fix 2022-10-06 16:56:12 +02:00
Manuel Romero
0e51697a81 tanable agent download 2022-10-06 16:39:11 +02:00
Manuel Romero
d92960d513 fix 2022-10-06 11:15:19 +02:00
Manuel Romero
6370ff8b18 fix 2022-10-06 11:11:53 +02:00
Manuel Romero
c96e8a5567 some fixes 2022-10-06 10:26:03 +02:00
Manuel Romero
5f2422165b disallow allazureservices firewall rule for all databases 2022-10-06 10:02:00 +02:00
Manuel Romero
4c3821f84c not allow all azure services for synapse 2022-10-06 09:44:58 +02:00
Manuel Romero
11f9bb336f not allow all azure services for synapse 2022-10-06 09:40:12 +02:00
Manuel Romero
40e3d8ef10 kinesis 2022-10-06 09:32:30 +02:00
Manuel Romero
119f7914af eventhub fix 2022-10-06 09:27:23 +02:00
Manuel Romero
2ac5289b62 Merge branch 'dev' 2022-10-05 17:34:28 +02:00
Manuel Romero
8c7f63aab3 disable wincommon 2022-10-05 17:27:21 +02:00
Manuel Romero
b5b57eb47f no ref=dev2 2022-10-05 17:18:56 +02:00
Manuel Romero
8c5650f334 revert 2022-10-05 16:01:16 +02:00
Manuel Romero
7d957013ba revert 2022-10-05 15:09:47 +02:00
Manuel Romero
30ccc0e79a winrm insecure 2022-10-05 14:55:38 +02:00
Manuel Romero
bfb865cf1d conditional wincommon 2022-10-05 14:43:43 +02:00
Manuel Romero
3507ef2470 conditional wincommon 2022-10-05 14:37:56 +02:00
Manuel Romero
19c009546f conditional wincommon 2022-10-05 14:07:04 +02:00
Manuel Romero
1497221318 install repl comp 2022-10-05 12:36:55 +02:00
Manuel Romero
76d2e6f1da install repl comp 2022-10-05 11:33:45 +02:00
Manuel Romero
9d6748d352 fromsnap 2022-10-05 11:05:49 +02:00
Manuel Romero
40f2344e34 fromsnap 2022-10-05 11:03:37 +02:00
Manuel Romero
9d642599ba fromsnap 2022-10-05 10:59:31 +02:00
Manuel Romero
332eeaf884 alerting 2022-10-05 10:57:04 +02:00
Manuel Romero
fda20a7312 alerting 2022-10-05 10:39:23 +02:00
Manuel Romero
1b02ad1d0d alerting 2022-10-05 10:32:06 +02:00
Manuel Romero
b697607c88 bricks) 2022-10-05 10:14:34 +02:00
Manuel Romero
f4ba3d95c1 redshift 2022-10-05 10:08:25 +02:00
Manuel Romero
9553c7de64 redshoft 2022-10-05 09:58:08 +02:00
Manuel Romero
e88277bc75 synap 2022-10-05 09:51:48 +02:00
Manuel Romero
fbabeb35e0 synap 2022-10-05 09:48:20 +02:00
Manuel Romero
c17c01eda3 awsrds 2022-10-05 09:38:23 +02:00
Manuel Romero
e41f783169 azrds 2022-10-05 09:36:15 +02:00
Manuel Romero
e3272d6568 awsrds 2022-10-05 09:32:50 +02:00
Manuel Romero
c3ae2f11da database 2022-10-05 04:59:51 +02:00
Manuel Romero
6e802d294b dbs 2022-10-05 04:56:20 +02:00
Manuel Romero
ce4bffa4ca qv 2022-10-05 04:52:39 +02:00
Manuel Romero
855575a84f wn-bl 2022-10-05 04:30:59 +02:00
Manuel Romero
87c0e9c5d6 qdc 2022-10-05 04:22:52 +02:00
Manuel Romero
daabb30341 qdc 2022-10-05 04:19:24 +02:00
Manuel Romero
9532239240 qdc 2022-10-05 04:16:17 +02:00
Manuel Romero
1716e2fb29 qdc 2022-10-05 04:12:01 +02:00
Manuel Romero
da1db39acc qdc 2022-10-05 04:09:55 +02:00
Manuel Romero
74154351ee qs 2022-10-05 04:06:12 +02:00
Manuel Romero
837bea5722 qs 2022-10-05 04:05:26 +02:00
Manuel Romero
25c2bdde85 qs 2022-10-05 04:01:44 +02:00
Manuel Romero
e562151517 qs 2022-10-05 03:48:29 +02:00
Manuel Romero
97cb7d71a2 qs 2022-10-05 03:46:01 +02:00
Manuel Romero
e5621a7b5c qs 2022-10-05 03:36:52 +02:00
Manuel Romero
3db03c4ee7 execs out of 2022-10-04 17:39:01 +02:00
Manuel Romero
364e648c4b execs out of 2022-10-04 17:29:01 +02:00
Manuel Romero
fca1cdafd1 execs out of 2022-10-04 17:25:46 +02:00
Manuel Romero
306edce019 execs out of 2022-10-04 17:14:45 +02:00
Manuel Romero
b34555e5bf nonesensitive 2022-10-04 17:06:10 +02:00
Manuel Romero
e9ca65f03f linux-common home folder 2022-10-04 16:55:28 +02:00
Manuel Romero
403231a3c2 linux-common home folder 2022-10-04 16:53:05 +02:00
Manuel Romero
2d55d3e414 linux-common home folder 2022-10-04 16:52:02 +02:00
Manuel Romero
638a5b43d5 sensitive 2022-10-04 16:45:26 +02:00
Manuel Romero
1e024c7993 sensitive 2022-10-04 16:29:41 +02:00
Manuel Romero
007f95a4c3 tags 2022-10-04 14:44:44 +02:00
Manuel Romero
6563cbca2d tags 2022-10-04 14:42:07 +02:00
Manuel Romero
92ea2ee599 redshift tag name 2022-10-04 14:38:05 +02:00
Manuel Romero
43481a04e2 kinessis Project tag 2022-10-04 14:35:36 +02:00
Manuel Romero
320f73f98b kinessis Project tag 2022-10-04 14:25:48 +02:00
Manuel Romero
1cbb97796b fix resize, doing it asjob 2022-10-04 13:51:00 +02:00
Manuel Romero
a47fd5a20e redshift no provider 2022-09-29 12:23:42 +02:00
Manuel Romero
564feba2b5 kinesis no provider 2022-09-29 12:18:24 +02:00
Manuel Romero
7e8237d089 no provider 2022-09-29 12:10:04 +02:00
Manuel Romero
a35bc7a563 remove enabled var 2022-09-29 12:03:37 +02:00
Manuel Romero
4ab2153f19 remove enabled var 2022-09-29 11:58:11 +02:00
Manuel Romero
121dd4ad4f passing provider 2022-09-29 11:34:45 +02:00
Manuel Romero
e3492ccbe1 delete archived 2022-09-26 09:59:10 +02:00
Manuel Romero
c171430424 password 2022-09-23 15:59:57 +02:00
Manuel Romero
f86e14bafa comeon 2022-09-23 13:35:12 +02:00
Manuel Romero
fc8442b156 More basic 2022-09-23 13:23:20 +02:00
Manuel Romero
781c3b7599 More basic 2022-09-23 13:23:04 +02:00
Manuel Romero
d86602aca0 Executions logs 2022-09-23 12:25:39 +02:00
Manuel Romero
c17b27a989 raw qdc 2022-09-23 11:12:42 +02:00
Manuel Romero
fd7055b87e fix 2022-09-22 17:38:25 +02:00
Manuel Romero
33d65569c7 back to normal 2022-09-22 17:28:51 +02:00
Manuel Romero
4832d5ad9b fix 2022-09-22 17:21:19 +02:00
Manuel Romero
20454340ce back to normal 2022-09-22 17:08:42 +02:00
Manuel Romero
28ba162595 fix 2022-09-22 16:58:33 +02:00
Manuel Romero
34d8165feb fix 2022-09-22 16:46:29 +02:00
Manuel Romero
4eb0ce7131 fix 2022-09-22 16:20:37 +02:00
Manuel Romero
ed73767d68 back to normal 2022-09-22 15:55:22 +02:00
Manuel Romero
9a1454a710 dev 2022-09-22 12:32:06 +02:00
Manuel Romero
56889333d3 setenv.sh 2022-09-22 12:24:46 +02:00
Manuel Romero
3dbd31db69 password postgres 2022-09-22 11:09:51 +02:00
Manuel Romero
1530c3a13d Jars and stuff 2022-09-21 16:41:05 +02:00
Manuel Romero
67d9310a5f Fix csv copy 2022-09-21 16:32:24 +02:00
Manuel Romero
e63b320745 Some fixes on libraries 2022-09-21 15:49:36 +02:00
Manuel Romero
82aa02642c Fixes and new jars 2022-09-21 15:42:55 +02:00
Manuel Romero
1a0990ab07 fix 2022-09-21 15:19:08 +02:00
Manuel Romero
7e4cb57570 fix 2022-09-21 15:05:56 +02:00
Manuel Romero
ab13cc61b2 fix 2022-09-21 14:42:14 +02:00
Manuel Romero
121441fbde no logs 2022-09-21 14:28:50 +02:00
Manuel Romero
f9e05f832d fix3 2022-09-21 14:12:00 +02:00
Manuel Romero
06bd553bbe fix2 2022-09-21 14:07:43 +02:00
Manuel Romero
4d45de5a9a fix 2022-09-21 14:04:10 +02:00
Manuel Romero
a116a398bd Connection string for QDC podium dist 2022-09-21 13:28:30 +02:00
Manuel Romero
161c8c250a using postgres password 2022-09-20 17:16:59 +02:00
Manuel Romero
55fa5a3a13 Change postgres password 2022-09-20 17:10:16 +02:00
Manuel Romero
a016fe4069 using just feb2022 2022-09-20 16:51:05 +02:00
Manuel Romero
5d8caa948d back to old passwd 2022-09-20 16:31:02 +02:00
Manuel Romero
0935315dbf back to old passwd 2022-09-20 16:30:42 +02:00
Manuel Romero
0c03e43f34 fix 2022-09-20 16:19:28 +02:00
Manuel Romero
9113836f1f fix datascripts 2022-09-20 16:00:49 +02:00
Manuel Romero
16956d8e22 Using password for mysql 2022-09-20 15:43:57 +02:00
Manuel Romero
07b824df61 fix falcon centos 2022-09-20 12:21:40 +02:00
Manuel Romero
0cf9c11da9 fix falcon centos 2022-09-20 12:21:15 +02:00
Manuel Romero
685085165b centos 8 falcon 2022-09-20 12:12:43 +02:00
Manuel Romero
43ac9058c3 vm centos with versions 2022-09-20 11:44:27 +02:00
Manuel Romero
f5bcc2d34a sa impl contiuation 2022-09-20 11:30:39 +02:00
Manuel Romero
60759b72b1 start service 2022-09-20 11:12:06 +02:00
Manuel Romero
9fb6d6c387 Tenable linuz 2022-09-20 09:53:30 +02:00
Manuel Romero
95bb012dfd enable tenable 2022-09-19 15:15:37 +02:00
Manuel Romero
87062aee0a fix 2022-09-19 15:14:40 +02:00
Manuel Romero
15ddd1f60f Install tenable 2022-09-19 13:32:34 +02:00
Manuel Romero
72fc17210b Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-08-09 09:23:59 +02:00
Manuel Romero
12831518c0 adding nobest to yum 2022-08-09 09:23:47 +02:00
Vincenzo
e2926ea3e9 Added Oracle Linux 81 2022-08-08 20:52:56 +02:00
Vincenzo
0633464e02 Add CentOs 8.4 2022-08-08 17:19:37 +02:00
Vincenzo
525b315de3 Add CentOs 8.4 2022-08-08 17:15:22 +02:00
Vincenzo
6b45debc92 Add CentOs 8.5 2022-08-08 16:51:43 +02:00
Vincenzo
ccaba79395 Added CentoOs8.5 2022-08-08 16:31:32 +02:00
Vincenzo
30ce58ef9b Added CentoOs8.5 2022-08-08 16:30:49 +02:00
Manuel Romero
305ab66625 Added singapore QCS fo synapse 2022-07-26 11:14:49 +02:00
Manuel Romero
917ddaf0ab fix dbricks 2022-06-23 10:20:48 +02:00
Manuel Romero
972a3353cc remove old azuresql 2022-06-21 16:20:08 +02:00
Manuel Romero
dd7768902f conf for postgres cdc 2022-06-21 16:15:58 +02:00
Manuel Romero
68b7d33536 log_statement all 2022-06-21 16:06:14 +02:00
Manuel Romero
ec555d0f5b renamed 2022-06-21 15:48:22 +02:00
Manuel Romero
642b4c980c mssql 2022-06-21 15:40:48 +02:00
Manuel Romero
012984fe82 mssql 2022-06-21 15:35:17 +02:00
Manuel Romero
e46bbbee3f postgres flex 2022-06-21 15:23:45 +02:00
Manuel Romero
6f3ce45da8 postgres flex 2022-06-21 15:19:18 +02:00
Manuel Romero
774f20260a adding min numeric 2022-06-21 13:21:00 +02:00
Manuel Romero
a0f2946d12 adding min numeric 2022-06-21 13:16:24 +02:00
Manuel Romero
c05e4c2bc7 do not install onedrive 2022-06-21 13:06:00 +02:00
Manuel Romero
b44abe8e29 full bin log 2022-06-20 17:07:05 +02:00
Manuel Romero
258a09ad40 full bin log 2022-06-20 16:46:33 +02:00
Manuel Romero
e1acdeaaff postgres fix 2022-06-20 16:37:21 +02:00
Manuel Romero
e1e5b47a5f fix 2022-06-20 16:28:02 +02:00
Manuel Romero
e985eb449b fix 2022-06-20 16:24:31 +02:00
Manuel Romero
fb25b595c3 fix 2022-06-20 15:48:00 +02:00
Manuel Romero
9eff8f08c0 fix 2022-06-20 15:16:34 +02:00
Manuel Romero
90b9dcc23e fix 2022-06-20 15:09:06 +02:00
Manuel Romero
3ef7bd75e5 fix 2022-06-20 15:07:19 +02:00
Manuel Romero
3a3d854cc4 flex az mysql 2022-06-20 14:59:22 +02:00
Manuel Romero
4361d9fc37 webconnectors fix 2022-06-08 13:34:13 +02:00
Manuel Romero
4a491668de fix 2022-06-08 10:26:13 +02:00
Manuel Romero
4112e41617 fix 2022-06-08 10:23:32 +02:00
Manuel Romero
3f712b9b17 fix 2022-06-08 10:22:31 +02:00
Manuel Romero
c401881070 adding try catch 2022-06-08 10:16:40 +02:00
Manuel Romero
fd8cc875fc adding try catch 2022-06-08 10:15:43 +02:00
Manuel Romero
8590c53c2e adding try catch 2022-06-08 10:14:56 +02:00
Manuel Romero
3e72c1c5e4 adding try catch 2022-06-08 10:06:22 +02:00
Manuel Romero
31ef78621c V2 for compose Windows 10 Pro 2022-06-08 09:21:28 +02:00
Manuel Romero
459bf82e15 test 2022-06-07 17:23:27 +02:00
Manuel Romero
e695ef5dc1 V2 2022-06-07 17:03:05 +02:00
Manuel Romero
089db45c15 win2 2022-06-07 16:07:46 +02:00
Manuel Romero
1575c07c97 runWinCommon variables 2022-06-07 12:50:59 +02:00
Manuel Romero
a9c13f3fed runWinCommon variables 2022-06-07 12:33:32 +02:00
Manuel Romero
8b707cdb66 runWinCommon variables 2022-06-07 12:15:03 +02:00
Manuel Romero
efa7ec59d7 fix 2022-05-31 15:32:28 +02:00
Manuel Romero
68f016e00d fix redshift 2022-05-31 10:20:36 +02:00
Manuel Romero
5cb1157069 fortvirtualhost 2022-05-31 10:02:02 +02:00
Manuel Romero
6fe1bbf034 uppercase fort prefix 2022-05-23 13:01:37 +02:00
Manuel Romero
5d0347dc8e fix 2022-05-20 11:26:23 +02:00
Manuel Romero
01d72e3033 remove no needed variables 2022-05-20 11:15:05 +02:00
Manuel Romero
5cebc24cdd kinesis and redshoft using module aws creds 2022-05-20 10:54:13 +02:00
Manuel Romero
de4ad7b679 s3 bucket using module credentials 2022-05-20 10:50:58 +02:00
Manuel Romero
f876098fd5 using module aws creds 2022-05-20 10:45:34 +02:00
Manuel Romero
a2c2a6bb86 using module aws creds 2022-05-20 10:44:23 +02:00
Manuel Romero
7f2485e5c1 using module aws creds 2022-05-20 10:43:34 +02:00
Manuel Romero
0d8c792e9f change name 2022-05-18 12:57:50 +02:00
Manuel Romero
ba78baf7da Ubuntu 20.04 2022-05-18 12:48:38 +02:00
Manuel Romero
d226082c8d ubuntu 20.04 2022-05-18 12:39:37 +02:00
Manuel Romero
3a80543097 lowercase fort prefix 2022-05-13 14:58:14 +02:00
Manuel Romero
112ca59a48 Chrome as default 2022-05-11 12:33:00 +02:00
Manuel Romero
e815fe15c0 install chrome first 2022-05-11 11:50:15 +02:00
Manuel Romero
5a1344fb8e using image 2022-05-11 11:29:08 +02:00
Manuel Romero
b839bae693 google chrome install ignore checksum 2022-05-11 11:24:00 +02:00
Manuel Romero
1dec0dced4 added unattended winrm 2022-05-11 11:15:47 +02:00
Manuel Romero
d8bf486a30 unattended 2022-05-11 11:04:26 +02:00
Manuel Romero
1a034fdd29 vm-win2 2022-05-11 10:41:10 +02:00
Manuel Romero
da261ce43f revert 2022-05-11 10:31:27 +02:00
Manuel Romero
b60a06afb6 disable windows updates 2022-05-11 10:24:51 +02:00
Manuel Romero
87e241bea2 enable ssh for forts 2022-05-03 13:25:02 +02:00
Manuel Romero
9c1a8f4203 fix 2022-05-03 12:46:40 +02:00
Manuel Romero
14e8b134d2 backslash 2022-05-03 12:14:00 +02:00
Manuel Romero
8820405b16 Update Webconnectors 2022-05-03 10:42:45 +02:00
Manuel Romero
4c8eb2d682 removed archived 2022-05-03 10:36:05 +02:00
Manuel Romero
ef72aac27d Fix 2022-05-03 10:34:39 +02:00
Manuel Romero
8be11ee087 Adding secure vms 2022-05-03 10:26:42 +02:00
Manuel Romero
2ee07d8df6 remove old qppgw files 2022-05-03 10:17:57 +02:00
Manuel Romero
4379d54f03 Adding win-commong to win from snapshot 2022-04-28 15:32:51 +02:00
Manuel Romero
1d4cca8d70 Adding win-commong to win from snapshot 2022-04-28 15:29:10 +02:00
Manuel Romero
0a3c94800e install crowdstrike sensor 2022-04-28 15:21:43 +02:00
Manuel Romero
f71f479c6a install crowdstrike sensor 2022-04-28 15:12:08 +02:00
Manuel Romero
2987feb750 uninstall carbon black 2022-04-28 14:48:18 +02:00
Manuel Romero
058122c10e uninstall carbon black 2022-04-28 14:13:07 +02:00
Manuel Romero
7d8676885a disable 920270 920271 manage policies for NP 2022-04-28 12:23:57 +02:00
Manuel Romero
a0f6a81fb4 fix tomcat home 2022-04-28 11:27:22 +02:00
Manuel Romero
8c2a4481ee fix 4.13.0 2022-04-28 11:25:39 +02:00
Manuel Romero
80819e10c0 fix 4.13.0 2022-04-28 11:25:10 +02:00
Manuel Romero
f8fc2b06b5 fix 2022-04-28 11:00:25 +02:00
Manuel Romero
2d09ea84dc fix 2022-04-28 10:59:10 +02:00
Manuel Romero
8221c18302 remove no needed stuff 2022-04-28 10:54:05 +02:00
Manuel Romero
3a07cc55f3 fixes 2022-04-28 10:43:38 +02:00
Manuel Romero
df7877c42c feb22 files 2022-04-28 09:59:05 +02:00
Manuel Romero
d5353404d1 disable policy 2022-04-27 12:54:11 +02:00
Manuel Romero
a718b33d80 print initial_password 2022-04-27 12:48:27 +02:00
Manuel Romero
389ad44fd8 disable policy 2022-04-27 10:24:04 +02:00
Manuel Romero
95a30c81fc fix 2022-04-27 10:18:49 +02:00
Manuel Romero
2c40916b71 output appgw 0 2022-04-27 10:08:04 +02:00
Manuel Romero
901d37562d new cert for QDC Feb21 2022-04-27 09:54:43 +02:00
Manuel Romero
a5c751d370 new cert for QDC Feb21 2022-04-27 09:35:00 +02:00
Manuel Romero
bbc5e6c4bb new cert for QDC Feb21 2022-04-27 09:16:56 +02:00
Manuel Romero
4e0a345dd4 new cert for QDC Feb21 2022-04-26 17:30:02 +02:00
Manuel Romero
c4b7f48a0f new cert for QDC Feb21 2022-04-26 17:22:47 +02:00
Manuel Romero
9bd1424918 added identity 2022-04-26 17:08:58 +02:00
Manuel Romero
911425349f added identity 2022-04-26 17:06:08 +02:00
Manuel Romero
960a75c8e4 new cert 2022-04-26 16:32:34 +02:00
Manuel Romero
ca692fe1e8 new cert 2022-04-26 16:28:59 +02:00
Manuel Romero
71e53779bd new cert 2022-04-26 16:26:56 +02:00
Manuel Romero
5643cdf978 new cert 2022-04-26 16:21:51 +02:00
Manuel Romero
dddbcd22f0 new cert 2022-04-26 16:20:15 +02:00
Manuel Romero
ead10611be revert 2022-04-25 15:32:04 +02:00
Manuel Romero
9e48d68747 revert 2022-04-25 15:29:35 +02:00
Manuel Romero
ca19eed877 revert 2022-04-25 15:26:56 +02:00
Manuel Romero
466d2c716c revert 2022-04-25 15:17:26 +02:00
Manuel Romero
60be43edd1 revert 2022-04-25 15:14:54 +02:00
Manuel Romero
ac87bf7e85 revert 2022-04-25 15:03:09 +02:00
Manuel Romero
02778f9f7c body 2022-04-25 14:58:22 +02:00
Manuel Romero
6097dbbd2d body 2022-04-25 14:55:46 +02:00
Manuel Romero
6131f0b0b2 body 2022-04-25 14:52:09 +02:00
Manuel Romero
2d883e0e4b cert-password in double quotes 2022-04-25 14:40:42 +02:00
Manuel Romero
0c29596f50 Install CUser 2022-04-25 14:15:09 +02:00
Manuel Romero
e898c4c419 Install CUser 2022-04-25 14:05:32 +02:00
Manuel Romero
322e8040a5 fix password value set 2022-04-25 13:33:55 +02:00
Manuel Romero
5110a1c496 fix password value set 2022-04-25 13:31:42 +02:00
Manuel Romero
1fbf62fe34 New qmi_qlik-poc_com certificate 2022-04-25 12:16:50 +02:00
expovin
71b11c1f9f Rollback carbon install 2022-04-20 13:00:41 +02:00
expovin
15a2b05ea1 Removed Carbonblack installation 2022-04-11 14:49:30 +02:00
expovin
8dc4b02d41 Removed Carbonblack installation 2022-04-11 14:15:27 +02:00
expovin
3e8d909ed3 rollback match status 2022-04-08 10:16:17 +02:00
expovin
9604dbc3a2 removed match status 2022-04-08 10:08:33 +02:00
expovin
46b12edbe6 Replaced certificate wildcard_qmi_qlik-poc_com 2022-04-06 10:52:49 +02:00
expovin
32a95369ae New Lineage Connector version 2022-04-06 10:00:42 +02:00
expovin
43681e2ae2 Add carbonblack settings back 2022-03-28 17:36:32 +02:00
expovin
f71d1a5944 Temporary removed Carbonblack 2022-03-24 21:26:24 +01:00
expovin
24742a4090 Restored Carbon Black 2022-03-24 20:56:31 +01:00
expovin
e03f55ecb4 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-03-24 20:41:09 +01:00
expovin
aac1ff01e4 Temporary removed Carbonblack 2022-03-24 20:40:53 +01:00
Manuel Romero
2f1024cebb back to normal 2022-03-13 10:03:32 +01:00
Manuel Romero
3ed11b39db using null-provisioner 2022-03-12 20:19:11 +01:00
Manuel Romero
d9cb1d966c using null-provisioner 2022-03-12 20:16:00 +01:00
Manuel Romero
803f2c6b2f 3 mihutes wait file vm-qdc 2022-03-12 20:05:33 +01:00
Manuel Romero
d75dcd580c 3 mihutes wait file vm-qdc 2022-03-12 19:51:11 +01:00
expovin
78cbe3ee01 Fix back to 2021 2022-03-03 11:45:44 +01:00
expovin
c04dc22750 New QC Version 2022-03-01 17:53:01 +01:00
expovin
5b39c50466 New Qlik Replicate and Compose Version 2022-02-28 10:36:55 +01:00
expovin
8071308381 Imported new public Key to install mysql 2022-02-16 12:11:47 +01:00
expovin
f0dddeabc4 Changed null value with null string 2022-02-11 10:41:45 +01:00
expovin
13f371f418 Changed null value with null string 2022-02-11 10:18:07 +01:00
expovin
a4eadee036 Changed HaschiCorp version for S3 2022-02-11 09:34:41 +01:00
expovin
ecf73556e0 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-10 14:14:18 +01:00
expovin
4ff6833368 added database file 2022-02-10 14:14:04 +01:00
Manuel Romero
d6f2e26992 fixes iaip 2022-02-10 13:41:43 +01:00
Manuel Romero
998cf86fd9 fixes iaip 2022-02-10 13:02:05 +01:00
Manuel Romero
a59f5d962d fixes iaip 2022-02-10 12:29:57 +01:00
Manuel Romero
b55f66e2ea fixes iaip 2022-02-10 12:26:52 +01:00
Manuel Romero
9501ffe76d fixes iaip 2022-02-10 12:26:32 +01:00
Manuel Romero
f5c7f64d54 fixes iaip 2022-02-10 12:22:36 +01:00
Manuel Romero
5e2c06e89e fixes iaip 2022-02-10 12:21:00 +01:00
Manuel Romero
72183a9605 fixes iaip 2022-02-10 11:42:35 +01:00
Manuel Romero
cb16a00a13 fixes iaip 2022-02-10 11:36:55 +01:00
Manuel Romero
80bd9c73e1 fixes iaip 2022-02-10 11:24:45 +01:00
Manuel Romero
659383f72a fixes iaip 2022-02-10 11:07:01 +01:00
Manuel Romero
46ba8615b2 fixes iaip 2022-02-10 11:02:04 +01:00
Manuel Romero
658ee7896c fixes iaip 2022-02-10 10:41:25 +01:00
Manuel Romero
3f2632c685 fixes iaip 2022-02-10 10:35:50 +01:00
Manuel Romero
defcd288a4 fixes iaip 2022-02-10 10:34:15 +01:00
Manuel Romero
a1f3f29469 fixes iaip 2022-02-10 10:31:54 +01:00
Manuel Romero
7985fb47b7 fixes iaip 2022-02-10 10:28:32 +01:00
Manuel Romero
83d3b64519 fixes iaip 2022-02-10 10:26:26 +01:00
Manuel Romero
c8e5e98f03 fixes iaip 2022-02-10 10:24:38 +01:00
Manuel Romero
56a4580317 fixes iaip 2022-02-10 10:08:20 +01:00
Manuel Romero
a30251ded4 fixes iaip 2022-02-10 10:02:21 +01:00
Manuel Romero
c5e764ed5b fixes iaip 2022-02-10 09:55:56 +01:00
Manuel Romero
351b2088d7 fixes iaip 2022-02-10 09:54:28 +01:00
Manuel Romero
edbf87a5be fixes iaip 2022-02-10 09:48:28 +01:00
expovin
2cb0310e83 Move DB provision to TF-Module 2022-02-10 09:34:02 +01:00
expovin
3bf24ea2ab Move DB provision to TF-Module 2022-02-09 18:46:45 +01:00
Manuel Romero
bd1449bef3 fix 2022-02-09 15:53:22 +01:00
Manuel Romero
810e9d9573 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-09 15:49:54 +01:00
Manuel Romero
651b70c834 make aws-rds enabled 2022-02-09 15:49:43 +01:00
expovin
425ee32047 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-09 15:45:35 +01:00
expovin
8a4a2f071f Change Service account to Compose 2022-02-09 15:45:30 +01:00
Manuel Romero
813475834d make aws-rds enabled 2022-02-09 15:38:45 +01:00
Manuel Romero
8e45a20fc6 databricks ip access list 2022-02-09 13:13:47 +01:00
Manuel Romero
7e05a74872 databricks ip access list 2022-02-09 13:03:17 +01:00
Manuel Romero
2c2c909d2e Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-09 12:49:10 +01:00
Manuel Romero
1bc2e4c376 databricks ip access list 2022-02-09 12:48:55 +01:00
expovin
1c0e63276d Change Service account to Compose 2022-02-09 11:40:38 +01:00
expovin
f520c96420 Change Service account to Compose 2022-02-08 11:19:34 +01:00
expovin
fd929f7194 Change Service account to Compose 2022-02-08 10:51:14 +01:00
expovin
d009c551bd Change Compose Service Credentials 2022-02-07 17:55:26 +01:00
expovin
4f2d90ecb2 Change Compose Service Credentials 2022-02-07 16:55:42 +01:00
Manuel Romero
fbdce09018 databases for QDI 2022-02-07 16:06:32 +01:00
expovin
e4bf3dfd82 Change Compose Service Credentials 2022-02-07 15:49:42 +01:00
expovin
bd1d0f6065 Change Compose Service Credentials 2022-02-07 15:47:28 +01:00
expovin
7663ab8154 Change Compose Service Credentials 2022-02-07 15:39:54 +01:00
expovin
aa72322913 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-07 15:15:39 +01:00
expovin
5a2d6cbd92 Change Compose Service Credentials 2022-02-07 15:15:33 +01:00
Manuel Romero
ec9bb447a1 fix 2022-02-07 11:58:42 +01:00
Manuel Romero
82665c4699 Set random password 2022-02-07 11:47:39 +01:00
expovin
db9ce96cde Firewall rules, SaaS tenant whitelist 2022-02-07 11:34:02 +01:00
expovin
f5ca220e42 Firewall rules, SaaS tenant whitelist 2022-02-07 11:32:18 +01:00
expovin
a44f73f952 Firewall rules, SaaS tenant whitelist 2022-02-07 11:24:31 +01:00
expovin
61ccde0daf Firewall rules, SaaS tenant whitelist 2022-02-07 11:19:55 +01:00
expovin
42178709c7 Firewall rules, SaaS tenant whitelist 2022-02-07 10:28:19 +01:00
expovin
53ea09ed05 Firewall rules, SaaS tenant whitelist 2022-02-07 10:25:28 +01:00
expovin
b1da03a65d Firewall rules, SaaS tenant whitelist 2022-02-07 10:16:55 +01:00
expovin
850d71e0a4 Firewall rules, SaaS tenant whitelist 2022-02-07 10:09:42 +01:00
expovin
dd969602d7 import tasks 2022-02-04 15:50:31 +01:00
expovin
a30a52a7cf import tasks 2022-02-04 15:44:32 +01:00
expovin
8efa8bd0f3 import tasks 2022-02-04 15:05:23 +01:00
expovin
f67b3ef689 import tasks 2022-02-04 13:42:10 +01:00
expovin
d1d299e7c5 import tasks 2022-02-04 12:03:50 +01:00
expovin
bbd5a1ad60 import tasks 2022-02-04 11:32:57 +01:00
expovin
44ed495ad0 iaip variable input fixed 2022-02-03 17:45:25 +01:00
expovin
aca68d82ff iaip variable input fixed 2022-02-03 17:12:13 +01:00
expovin
242477e6dd Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-03 15:14:23 +01:00
expovin
bb431488fb iaip variable input fixed 2022-02-03 15:14:13 +01:00
Manuel Romero
420170796f output dbricks cluster name 2022-02-03 14:24:13 +01:00
Manuel Romero
1b04d1269e fix 2022-02-03 13:44:03 +01:00
Manuel Romero
6183ffa7f6 fix 2022-02-03 13:33:04 +01:00
Manuel Romero
fbe63234ff Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-03 13:26:40 +01:00
Manuel Romero
84ca5dd016 missing roole 2022-02-03 13:26:27 +01:00
expovin
05c7bf9373 iaip variable input fixed 2022-02-03 13:03:56 +01:00
expovin
cc0a15dc8f iaip variable input fixed 2022-02-03 12:10:44 +01:00
expovin
7decb7fc16 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-03 12:06:18 +01:00
expovin
c067881354 iaip variable input fixed 2022-02-03 12:06:01 +01:00
Manuel Romero
e9eb3ce341 dbricks conditional cluster creation and more 2022-02-03 12:03:31 +01:00
expovin
b73d1df468 Merge branch 'master' of gitlab.com:qmi/qmi-cloud-tf-modules 2022-02-03 11:52:10 +01:00
expovin
a4b9496491 iaip variable input fixed 2022-02-03 11:51:56 +01:00
Manuel Romero
2480912c08 remove old synapse way 2022-02-03 10:12:16 +01:00
Manuel Romero
54253902d4 Set role Reader for user 2022-02-03 10:09:09 +01:00
expovin
de145652b2 Added Azure RDS Variables 2022-02-02 18:26:16 +01:00
expovin
885638cd2d Fixed running twice Apache.ps1 2022-02-02 15:16:50 +01:00
expovin
75274581ce Added Compose 2022-02-02 14:35:50 +01:00
expovin
ab5c7c0181 Fix scripting escape char 2022-02-02 14:28:57 +01:00
expovin
42562fa4b5 Removed non necessary files 2022-02-02 12:22:58 +01:00
Manuel Romero
dd4cab744d speed up using download of files from box 2022-02-02 12:02:38 +01:00
expovin
851fe5b443 moved PHP settings in Apache 2022-02-02 11:39:04 +01:00
expovin
4da209b4a7 Set scripts 2022-02-02 10:25:26 +01:00
expovin
c18e0d700a DBSetup 2022-02-01 17:58:15 +01:00
expovin
1b9045f910 iaip demo scenario 2022-02-01 17:53:59 +01:00
expovin
784053b700 added IAIP demo module 2022-02-01 13:00:58 +01:00
Manuel Romero
ca83f73b4f vm-win from gitlab 2022-01-31 16:03:02 +01:00
Manuel Romero
5b6724b7eb win-common from gitlab 2022-01-31 15:57:57 +01:00
Manuel Romero
f1025fbf97 compose-install from gitlab 2022-01-31 15:55:13 +01:00
Manuel Romero
995554bcbb replicate-install from gitlab 2022-01-31 15:53:22 +01:00
Manuel Romero
7bfef1c95e vm-qs from gitlab 2022-01-31 15:49:08 +01:00
Manuel Romero
a266590605 synapse 2022-01-31 14:54:04 +01:00
Manuel Romero
3692acf6a6 fix 2022-01-28 16:21:58 +01:00
Manuel Romero
b198d958d9 added QAA public IPs 2022-01-26 10:53:21 +01:00
Manuel Romero
7340df95bd added QAA public IPs 2022-01-26 09:40:58 +01:00
Manuel Romero
6c400cc47f modifications 2022-01-18 11:48:39 +01:00
Manuel Romero
6e604fb5c0 modifications 2022-01-18 11:48:19 +01:00
Manuel Romero
586a19fe6c modifications 2022-01-18 11:41:23 +01:00
Manuel Romero
1546708c8b modifications 2022-01-18 11:10:34 +01:00
Manuel Romero
d603b28f90 fix apps 2022-01-17 13:14:47 +01:00
Manuel Romero
c8fffb1478 fix apps 2022-01-17 12:08:00 +01:00
Manuel Romero
7250dc8f2f fix apps 2022-01-17 12:01:17 +01:00
Manuel Romero
df1a6d7058 fix apps 2022-01-17 11:57:48 +01:00
Manuel Romero
f6b0ed6452 fix apps 2022-01-17 11:38:14 +01:00
Manuel Romero
34d9ea13f6 fix apps 2022-01-17 11:36:15 +01:00
Manuel Romero
c76e6cbf63 Connection and publish 2022-01-17 10:52:24 +01:00
Manuel Romero
a594eb5cca QLC setup 2022-01-14 17:50:47 +01:00
Manuel Romero
78ca0175f7 QLC setup 2022-01-14 17:34:23 +01:00
Manuel Romero
86929762ef QLC demo content 2022-01-14 09:52:12 +01:00
Manuel Romero
4b8cb4c2e9 fix sensitive 2022-01-12 17:10:18 +01:00
Manuel Romero
8d7a157c1e fix sensitive 2022-01-12 17:07:37 +01:00
Manuel Romero
da51add4eb fix sensitive 2022-01-12 17:01:33 +01:00
Manuel Romero
0eb5d30f44 eventhub partition count to 1 2022-01-07 18:02:17 +01:00
Manuel Romero
e6b94e02e4 eventhub partition count to 1 2022-01-07 18:01:57 +01:00
Manuel Romero
d1763235b1 rm lic 2022-01-07 17:34:50 +01:00
Manuel Romero
f912622c1b replicate upgrade 2022-01-07 16:59:47 +01:00
Manuel Romero
0cb630375b synapse just azureservices check 2021-12-17 15:02:06 +01:00
Manuel Romero
ce95c17cc2 fix 2021-12-16 14:23:30 +01:00
Manuel Romero
e178232ded redshift s3 bucket 2021-12-16 14:18:18 +01:00
Manuel Romero
187b0f83e3 fix plan fort2 2021-12-16 09:03:19 +01:00
Manuel Romero
5c1588dbcc fix 2021-12-14 19:04:46 +01:00
Manuel Romero
83aade0d3b fix 2021-12-14 19:04:17 +01:00
Manuel Romero
e696c92463 kinesis 2021-12-14 18:57:37 +01:00
Manuel Romero
341f1043c5 kinesis 2021-12-14 18:48:34 +01:00
Manuel Romero
c0a3101e45 kinesis 2021-12-14 18:44:49 +01:00
Manuel Romero
15c5188f9a kinesis 2021-12-14 18:21:12 +01:00
Manuel Romero
0381fa0315 kinesis 2021-12-14 18:04:09 +01:00
Manuel Romero
dba1a8aa86 kinesis 2021-12-14 18:02:26 +01:00
Manuel Romero
d73e346d38 kinesis 2021-12-14 17:55:51 +01:00
Manuel Romero
4ddc58df00 kinesis 2021-12-14 17:44:25 +01:00
Manuel Romero
44892b3f5d kinesis 2021-12-14 17:42:16 +01:00
Manuel Romero
909b127456 kinesis 2021-12-14 16:47:25 +01:00
Manuel Romero
4ea3b10868 kinesis 2021-12-14 16:43:27 +01:00
Manuel Romero
29bef068fa kinesis 2021-12-14 16:42:28 +01:00
Manuel Romero
74611c92e8 kinesis 2021-12-14 16:30:14 +01:00
Manuel Romero
1d0671528c kinesis 2021-12-14 16:28:19 +01:00
Manuel Romero
bf50096199 kinesis 2021-12-14 16:23:04 +01:00
Manuel Romero
bf726e8042 kinesis 2021-12-14 16:18:28 +01:00
Manuel Romero
a595a452bc kinesis 2021-12-14 16:14:21 +01:00
Manuel Romero
e4178f1861 kinesis 2021-12-14 16:01:56 +01:00
Manuel Romero
7a655ccd84 kinesis 2021-12-14 16:00:30 +01:00
Manuel Romero
3d51f3fdae kinesis 2021-12-14 15:45:53 +01:00
Manuel Romero
309433cbc5 Az event hub 2021-12-14 12:55:08 +01:00
Manuel Romero
250a9ab085 Az event hub 2021-12-14 12:38:04 +01:00
Manuel Romero
f2fb39727d Az event hub 2021-12-14 12:00:18 +01:00
Manuel Romero
092cb6a0b4 no plan if eastis 2021-12-13 13:42:26 +01:00
Manuel Romero
570fd8a8d8 no plan if eastis 2021-12-13 13:41:40 +01:00
Manuel Romero
f3a991f116 no plan if eastis 2021-12-13 13:39:37 +01:00
Manuel Romero
3ce72ba3c1 no plan if eastis 2021-12-13 13:30:43 +01:00
Manuel Romero
cd1c12f965 no plan if eastis 2021-12-13 13:22:53 +01:00
Manuel Romero
f74acbbcbc plan 2021-12-13 11:56:40 +01:00
Manuel Romero
28af27e589 Using public Azure image 2021-12-13 11:46:11 +01:00
expovin
7c936f7618 Fixed MySql fw rule in Postgress database 2021-12-01 10:59:17 +01:00
expovin
24c7d8f9ea Fixed MySql fw rule in Postgress database 2021-12-01 10:51:30 +01:00
expovin
725c6175a0 Fixed Postgres references 2021-12-01 10:37:41 +01:00
expovin
8e9b31ba84 Added QCS ip addresses in whitelist 2021-12-01 10:31:04 +01:00
Manuel Romero
d0c4ada8a0 singgapor region to aws-rds allowed 2021-12-01 10:04:32 +01:00
Manuel Romero
24b88be4ee fixes az mysql 2021-11-22 14:26:16 +01:00
Manuel Romero
61296bcf68 fixes az mysql 2021-11-22 14:13:06 +01:00
Manuel Romero
afcd2b3d16 fixes az mysql 2021-11-22 14:08:30 +01:00
Manuel Romero
4843d2efea fixes az mysql 2021-11-22 14:05:43 +01:00
Manuel Romero
e866a3abfd fixes az mysql 2021-11-22 13:51:11 +01:00
Manuel Romero
a468236d3d fixes az mysql 2021-11-22 13:46:45 +01:00
Manuel Romero
1b59ceb21e fix databricks 2021-11-19 16:46:48 +01:00
Manuel Romero
e1e34d5c72 fix db instance 2021-11-16 15:15:13 +01:00
Manuel Romero
9ee3ccdd57 fix 2021-11-03 11:13:41 +01:00
Manuel Romero
1a3b387986 fix 2021-11-03 09:47:25 +01:00
Manuel Romero
b77e708e48 qcs ips 2021-10-28 09:50:32 +02:00
Manuel Romero
7c60c62063 dc2.large 2021-10-26 17:10:26 +02:00
Manuel Romero
1227e5606a fix firewall 2021-10-26 14:39:50 +02:00
Manuel Romero
3112b773fb fix firewall 2021-10-26 14:37:45 +02:00
Manuel Romero
7b671cf3a6 fix firewall 2021-10-26 14:33:10 +02:00
Manuel Romero
599988d258 fix firewall 2021-10-26 14:31:59 +02:00
Manuel Romero
a9faa42834 fix firewall 2021-10-26 14:26:45 +02:00
Manuel Romero
e50991ecdf new rds postgres module 2021-10-25 11:38:24 +02:00
Manuel Romero
68d23b048c new rds postgres module 2021-10-25 11:18:38 +02:00
Manuel Romero
18b88c3fcd qmi_machine_id 2021-10-19 16:30:26 +02:00
Manuel Romero
01b1f61cb9 fix redshift random password 2021-10-06 10:32:05 +02:00
Manuel Romero
6e1a620316 fix redshift random password 2021-10-06 10:15:03 +02:00
Manuel Romero
10e802d0e9 sleep 120 2021-10-04 13:07:04 +02:00
Manuel Romero
42de589fad sleep 120 2021-10-04 13:01:18 +02:00
Manuel Romero
c549bd21e4 waiting two minutes 2021-10-04 12:53:06 +02:00
Manuel Romero
9216d9a157 license replicate 2021-10-04 10:50:59 +02:00
Manuel Romero
990cd34cc4 fixed cidr for redshift too 2021-10-01 12:35:14 +02:00
Manuel Romero
b18f790d95 fixed cidr for redshift too 2021-10-01 12:32:50 +02:00
mjromper
c9dacaa56e Merge branch 'RDS-IP-Fix' into 'master'
fixed /32 on RDS module IPs

See merge request qmi/qmi-cloud-tf-modules!7
2021-10-01 10:31:03 +00:00
ChrisLopez
b10e2a1a97 fixed /32 on RDS Module IPs 2021-10-01 11:29:36 +01:00
Manuel Romero
a3a6f48c0f Redshift from QCS allow 2021-10-01 12:17:16 +02:00
mjromper
36cebdf9a8 Merge branch 'QCS-IP-Fix' into 'master'
Added QCS IPs

See merge request qmi/qmi-cloud-tf-modules!5
2021-10-01 10:12:28 +00:00
ChrisLopez
3a24782e1a Added QCS IPs 2021-10-01 11:05:35 +01:00
Manuel Romero
56f170a959 fix server name 2021-10-01 11:29:58 +02:00
Manuel Romero
b4b3d0d583 fix errors 2021-10-01 11:14:43 +02:00
Manuel Romero
d0ae500db8 fix typo 2021-10-01 11:09:10 +02:00
Manuel Romero
051101b8a2 azure rds module 2021-10-01 10:47:29 +02:00
Manuel Romero
41c8bc8761 password 2021-09-28 18:46:28 +02:00
Manuel Romero
6f65e1c8ac db aws redshift module 2021-09-21 13:59:26 +02:00
Manuel Romero
39e1591752 db aws redshift module 2021-09-21 13:14:41 +02:00
Manuel Romero
1192f32a71 db aws redshift module 2021-09-21 12:52:50 +02:00
Manuel Romero
56046adcc5 db aws redshift module 2021-09-21 12:38:06 +02:00
Manuel Romero
6bb5c15be1 db aws redshift module 2021-09-21 12:28:12 +02:00
Manuel Romero
b5c76a727a vm-fort-az 2021-09-10 16:13:49 +02:00
Manuel Romero
d031982ca8 vm-fort-az 2021-09-10 15:44:37 +02:00
Manuel Romero
9829af81c4 vm-fort-az 2021-09-10 15:34:15 +02:00
Manuel Romero
fb4658f545 ubuntu 18.04 2021-09-08 13:12:18 +02:00
Manuel Romero
590c2e07ac ubuntu 20.04 2021-09-08 13:04:12 +02:00
Manuel Romero
3a8632116f iss version for compose 2021-09-08 12:26:38 +02:00
Manuel Romero
b2a3f578e9 iss version for compose 2021-09-08 12:20:01 +02:00
Manuel Romero
14cb4bc48b iss version for compose 2021-09-08 12:04:22 +02:00
Manuel Romero
c6bf73af58 iss version for compose 2021-09-08 11:23:03 +02:00
Manuel Romero
b9faff92ad making Forts aws volume_type configurable 2021-09-07 12:42:27 +02:00
Manuel Romero
0965bd6a0f making Forts aws volume_type configurable 2021-09-07 12:23:22 +02:00
Manuel Romero
d7cc357f22 making Forts aws volume_type configurable 2021-09-07 11:49:27 +02:00
Manuel Romero
af3031818e making Forts aws volume_type configurable 2021-09-07 11:40:41 +02:00
Manuel Romero
8e7b27df19 making Forts aws volume_type configurable 2021-09-07 10:51:50 +02:00
Vincenzo
62e85069bf Changed volume type for Forts 2021-08-31 18:31:11 +02:00
Vincenzo
5b98c45241 Changed volume type for Forts 2021-08-31 18:28:40 +02:00
Vincenzo
b3daa2a2c1 Changed volume type for Forts 2021-08-31 18:27:10 +02:00
Vincenzo
70fe163fe9 Compose ver.Aug.2021 2021-08-25 17:48:09 +02:00
Vincenzo
9c11b1fe66 Replicate and Compose Ver. May 2021 2021-08-25 15:59:05 +02:00
Vincenzo
88c6971753 Replicate and Compose Ver. May 2021 2021-08-25 14:18:51 +02:00
mjromper
dfff10e39e Merge branch 'RDS-Fix' into 'master'
Fixed Oracle engine_version

See merge request qmi/qmi-cloud-tf-modules!4
2021-08-09 15:22:53 +00:00
mjromper
88cf6011ce Merge branch 'RDS-Fix' into 'master'
Reverting output to db_instance_endpoint

See merge request qmi/qmi-cloud-tf-modules!3
2021-08-09 14:48:42 +00:00
mjromper
13f32c2b78 Merge branch 'RDS-Fix' into 'master'
Rds fix

See merge request qmi/qmi-cloud-tf-modules!2
2021-08-09 13:53:09 +00:00
328 changed files with 82339 additions and 30766 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.DS_Store

70
adls/main.tf Normal file
View File

@@ -0,0 +1,70 @@
resource "random_id" "randomMachineId" {
keepers = {
# Generate a new ID only when a new resource group is defined
resource_group = var.resource_group_name
}
byte_length = 5
}
resource "azurerm_storage_account" "saccount" {
name = var.storage_account_name != null? var.storage_account_name : "qmiadlsgen2${random_id.randomMachineId.hex}"
resource_group_name = var.resource_group_name
location = var.location
account_kind = "StorageV2"
account_replication_type = var.account_replication_type != null? var.account_replication_type : "RAGRS"
account_tier = "Standard"
access_tier = "Hot"
is_hns_enabled = "true"
tags = var.tags
}
resource "azurerm_storage_container" "scontainer" {
name = var.container_name != null? var.container_name : "qmicontainer"
storage_account_name = azurerm_storage_account.saccount.name
#container_access_type = "container"
}
resource "azurerm_role_assignment" "data-contributor-role" {
scope = azurerm_storage_account.saccount.id
role_definition_name = "Contributor"
principal_id = var.tpm_app_registration_principal_id
}
resource "azurerm_role_assignment" "data-contributor-role2" {
scope = azurerm_storage_account.saccount.id
role_definition_name = "Storage Blob Data Contributor"
principal_id = var.tpm_app_registration_principal_id
}
resource "azurerm_role_assignment" "data-contributor-dbricksapp1" {
scope = azurerm_storage_account.saccount.id
role_definition_name = "Contributor"
principal_id = var.dbricks_app_registration_principal_id
}
resource "azurerm_role_assignment" "data-contributor-dbricksapp2" {
scope = azurerm_storage_account.saccount.id
role_definition_name = "Storage Blob Data Contributor"
principal_id = var.dbricks_app_registration_principal_id
}
###### EXTRA ASSIGN ROLE #######
resource "azurerm_role_assignment" "machine_role_assignment" {
count = var.principal_id_storage_blob_contributor != null? 1 : 0
scope = azurerm_storage_account.saccount.id
role_definition_name = "Storage Blob Data Contributor"
principal_id = var.principal_id_storage_blob_contributor
}

35
adls/outputs.tf Normal file
View File

@@ -0,0 +1,35 @@
output "StorageAccount-Scope" {
value = azurerm_storage_account.saccount.id
}
output "StorageAccount-AccessKey" {
value = nonsensitive(azurerm_storage_account.saccount.primary_access_key)
}
output "StorageAccount-ConnectionString" {
value = nonsensitive(azurerm_storage_account.saccount.primary_connection_string)
}
output "StorageAccount-Name" {
value = azurerm_storage_account.saccount.name
}
output "StorageAccount-ContainerName" {
value = azurerm_storage_container.scontainer.name
}
output "StorageAccount-ContainerId" {
value = azurerm_storage_container.scontainer.id
}
output "Azure_Active_Directory_Tenant_ID" {
value = "c21eeb5f-f5a6-44e8-a997-124f2f7a497c"
}
output "Azure_Application_Registration_Client_ID" {
value = var.dbricks_app_registration_application_id
}
output "Azure_Application_Registration_Secret" {
value = "~qp8Q~utl~YJ3skNM9kAuq25VY~rKxxOWpaVYcnQ"
}

46
adls/variable.tf Normal file
View File

@@ -0,0 +1,46 @@
variable "resource_group_name" {
}
variable "location" {
description = "The Azure Region in which the resources in this example should exist"
default = "East US"
}
variable "storage_account_name" {
default = null
}
variable "container_name" {
default = null
}
variable "tags" {
default = null
}
variable "tpm_app_registration_principal_id" {
description = "tpm"
default = "163a72e3-8ce3-4e33-baae-954383f87e3e"
}
variable "dbricks_app_registration_principal_id" {
description = "databricks-qmi"
default = "efeee17c-d2b3-4e7c-a163-9995b7d281e2"
}
variable "dbricks_app_registration_application_id" {
description = "databricks-qmi"
default = "9ccb0d99-3bba-4695-aa47-df77bf512084"
}
variable "principal_id_storage_blob_contributor" {
default = null
}
variable "sa_config_type" {
default = "1"
}
variable "account_replication_type" {
default = null
}

View File

@@ -0,0 +1,23 @@
resource "azurerm_monitor_diagnostic_setting" "example" {
name = "${local.appgw_name}-${var.provision_id}-diagsettings"
target_resource_id = azurerm_application_gateway.qmi-app-gw.id
log_analytics_workspace_id = var.log_analytics_workspace_id
enabled_log {
category = "ApplicationGatewayAccessLog"
retention_policy {
enabled = true
}
}
enabled_log {
category = "ApplicationGatewayFirewallLog"
retention_policy {
enabled = true
}
}
}

View File

@@ -13,14 +13,8 @@ locals {
redirect_configuration_80 = "${var.appgw_hostname}-80redirect"
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
data "azurerm_key_vault_certificate" "qmi-cert" {
name = "star-qmi-qlikpoc-com-cert"
key_vault_id = var.key_vault_id
}
@@ -36,6 +30,7 @@ resource "azurerm_public_ip" "appgw-ip" {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
@@ -45,10 +40,16 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
resource_group_name = var.app_gw_rg
location = var.location
identity {
type = "UserAssigned"
identity_ids = ["/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/AppGW_RG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/QMIMainIDY"]
}
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
sku {
@@ -87,8 +88,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
key_vault_secret_id = data.azurerm_key_vault_certificate.qmi-cert.secret_id
}
ssl_policy {
@@ -153,6 +153,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_https
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_443
priority = 1
}
@@ -169,6 +170,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
rule_type = "Basic"
http_listener_name = local.listener_name_http
redirect_configuration_name = local.redirect_configuration_80
priority = 2
}
}

View File

@@ -11,5 +11,5 @@ output "appgw_public_ip" {
}
output "appgw_backend_address_pool_0_id" {
value = azurerm_application_gateway.qmi-app-gw.backend_address_pool[0].id
value = tolist(azurerm_application_gateway.qmi-app-gw.backend_address_pool).0.id
}

View File

@@ -38,3 +38,7 @@ variable "user_id" {
variable "probe_path" {
default = "/"
}
variable "log_analytics_workspace_id" {
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/appgw_rg/providers/Microsoft.OperationalInsights/workspaces/qmi-log-analytics"
}

View File

@@ -5,23 +5,19 @@ resource "azurerm_monitor_diagnostic_setting" "example" {
log_analytics_workspace_id = var.log_analytics_workspace_id
log {
enabled_log {
category = "ApplicationGatewayAccessLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
log {
enabled_log {
category = "ApplicationGatewayFirewallLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
}

View File

@@ -45,14 +45,8 @@ locals {
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
data "azurerm_key_vault_certificate" "qmi-cert" {
name = "star-qmi-qlikpoc-com-cert"
key_vault_id = var.key_vault_id
}
@@ -68,6 +62,7 @@ resource "azurerm_public_ip" "appgw-ip" {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
@@ -77,10 +72,16 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
resource_group_name = var.app_gw_rg
location = var.location
identity {
type = "UserAssigned"
identity_ids = ["/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/AppGW_RG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/QMIMainIDY"]
}
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
sku {
@@ -205,8 +206,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
key_vault_secret_id = data.azurerm_key_vault_certificate.qmi-cert.secret_id
}
ssl_policy {
@@ -418,6 +418,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_https
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_443
priority = 1
}
@@ -428,6 +429,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_8443
backend_address_pool_name = local.backend_address_pool_qdc
backend_http_settings_name = local.http_setting_name_8443
priority = 2
}
# NPrinting routing rules
@@ -437,6 +439,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4993
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4993
priority = 3
}
request_routing_rule {
name = local.request_routing_rule_4994
@@ -444,6 +447,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4994
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4994
priority = 4
}
@@ -453,6 +457,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4552
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4552
priority = 5
}
@@ -463,6 +468,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4435
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4435
priority = 6
}
@@ -479,6 +485,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
rule_type = "Basic"
http_listener_name = local.listener_name_http
redirect_configuration_name = local.redirect_configuration_80
priority = 7
}
# Redirect QDC 8080 to 8443
@@ -494,6 +501,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
rule_type = "Basic"
http_listener_name = local.listener_name_8080
redirect_configuration_name = local.redirect_configuration_8080
priority = 8
}
}

View File

@@ -24,7 +24,7 @@ variable "app_gw_subnet" {
}
variable "log_analytics_workspace_id" {
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourcegroups/appgw_rg/providers/microsoft.operationalinsights/workspaces/qmi-log-analytics"
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/appgw_rg/providers/Microsoft.OperationalInsights/workspaces/qmi-log-analytics"
}
variable "cert_name" {

View File

@@ -5,23 +5,19 @@ resource "azurerm_monitor_diagnostic_setting" "example" {
log_analytics_workspace_id = var.log_analytics_workspace_id
log {
enabled_log {
category = "ApplicationGatewayAccessLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
log {
enabled_log {
category = "ApplicationGatewayFirewallLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
}

View File

@@ -37,14 +37,8 @@ locals {
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
data "azurerm_key_vault_certificate" "qmi-cert" {
name = "star-qmi-qlikpoc-com-cert"
key_vault_id = var.key_vault_id
}
@@ -60,6 +54,7 @@ resource "azurerm_public_ip" "appgw-ip" {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
@@ -70,10 +65,16 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
resource_group_name = var.app_gw_rg
location = var.location
identity {
type = "UserAssigned"
identity_ids = ["/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/AppGW_RG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/QMIMainIDY"]
}
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
sku {
@@ -189,8 +190,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
key_vault_secret_id = data.azurerm_key_vault_certificate.qmi-cert.secret_id
}
ssl_policy {
@@ -359,6 +359,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_https
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_443
priority = 1
}
@@ -369,6 +370,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_8443
backend_address_pool_name = local.backend_address_pool_qdc
backend_http_settings_name = local.http_setting_name_8443
priority = 2
}
# NPrinting routing rules
@@ -378,6 +380,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4993
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4993
priority = 3
}
request_routing_rule {
name = local.request_routing_rule_4994
@@ -385,6 +388,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4994
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4994
priority = 4
}
# QIB routing rule
@@ -394,6 +398,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4435
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4435
priority = 5
}
@@ -410,6 +415,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
rule_type = "Basic"
http_listener_name = local.listener_name_http
redirect_configuration_name = local.redirect_configuration_80
priority = 6
}
}

View File

@@ -1,444 +0,0 @@
locals {
appgw_hostname = "${var.appgw_hostname}.${var.domain}"
appgw_name = "qmi-appgw-qdc-qs"
# Qlik Sense
backend_address_pool_qs = "${var.appgw_hostname}-qs-bp"
http_setting_name_443 = "${var.appgw_hostname}-http-setting"
listener_name_http = "${var.appgw_hostname}-http"
listener_name_https = "${var.appgw_hostname}-https"
qs_probe_name = "${var.appgw_hostname}-probe"
request_routing_rule_https = "${var.appgw_hostname}-https-rule"
request_routing_rule_http = "${var.appgw_hostname}-http-rule"
redirect_configuration_80 = "${var.appgw_hostname}-80redirect"
# NPrinting
http_setting_name_4993 = "${var.appgw_hostname}-4993-setting"
http_setting_name_4994 = "${var.appgw_hostname}-4994-setting"
listener_name_4993 = "${var.appgw_hostname}-4993"
listener_name_4994 = "${var.appgw_hostname}-4994"
request_routing_rule_4993 = "${var.appgw_hostname}-4993-rule"
request_routing_rule_4994 = "${var.appgw_hostname}-4994-rule"
# QIB
http_setting_name_4435 = "${var.appgw_hostname}-4435-setting"
qs_probe_name_4435 = "${var.appgw_hostname}-probe-4435"
listener_name_4435 = "${var.appgw_hostname}-4435"
request_routing_rule_4435 = "${var.appgw_hostname}-4435-rule"
# QDC
backend_address_pool_qdc = "${var.appgw_hostname}-qdc-bp"
http_setting_name_8443 = "${var.appgw_hostname}-8443-setting"
qdc_probe_name = "${var.appgw_hostname}-qdcprobe"
listener_name_8080 = "${var.appgw_hostname}-8080"
listener_name_8443 = "${var.appgw_hostname}-8443"
request_routing_rule_8443 = "${var.appgw_hostname}-8443-rule"
request_routing_rule_8080 = "${var.appgw_hostname}-8080-rule"
redirect_configuration_8080 = "${var.appgw_hostname}-8080redirect"
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
key_vault_id = var.key_vault_id
}
resource "azurerm_public_ip" "appgw-ip" {
name = "${local.appgw_name}-ip-${var.provision_id}"
resource_group_name = var.app_gw_rg
sku = "Standard"
location = var.location
allocation_method = "Static"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
}
}
resource "azurerm_application_gateway" "qmi-app-gw" {
name = "${local.appgw_name}-${var.provision_id}"
resource_group_name = var.app_gw_rg
location = var.location
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
}
sku {
name = "WAF_v2"
tier = "WAF_v2"
capacity = 1
}
gateway_ip_configuration {
name = "app-gw-subnet"
subnet_id = var.app_gw_subnet
}
waf_configuration {
enabled = true
firewall_mode = "Prevention"
rule_set_type = "OWASP"
rule_set_version = "3.0"
file_upload_limit_mb = "500"
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Equals"
selector = "qvla_invite"
}
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Contains"
selector = "parsely"
}
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Contains"
selector = "mixpanel"
}
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Contains"
selector = "optimizely"
}
exclusion {
match_variable = "RequestArgNames"
selector_match_operator = "Equals"
selector = "reloadUri"
}
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Contains"
selector = "NPWEBCONSOLE"
}
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Contains"
selector = "NPNEWSSTAND"
}
exclusion {
match_variable = "RequestCookieNames"
selector_match_operator = "Contains"
selector = "Vizlib"
}
# This is needed for NPrinting
/*disabled_rule_group {
rule_group_name = "REQUEST-920-PROTOCOL-ENFORCEMENT"
rules = ["920270", "920271"]
}*/
}
# Qlik Sense fe ports
frontend_port {
name = "443"
port = 443
}
frontend_port {
name = "80"
port = 80
}
# NPrinting fe ports
frontend_port {
name = "4993"
port = 4993
}
frontend_port {
name = "4994"
port = 4994
}
# QIB fe ports
frontend_port {
name = "4435"
port = 4435
}
# QDC fe ports
frontend_port {
name = "8443"
port = 8443
}
frontend_port {
name = "8080"
port = 8080
}
frontend_ip_configuration {
name = "app-gw-front-end-ip-config"
public_ip_address_id = azurerm_public_ip.appgw-ip.id
}
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
}
ssl_policy {
policy_type = "Predefined"
policy_name = "AppGwSslPolicy20170401"
}
# Backend pool for QS, QIB and NP
backend_address_pool {
name = local.backend_address_pool_qs
}
# Backend pool for QDC
backend_address_pool {
name = local.backend_address_pool_qdc
}
# Qlik Sense
backend_http_settings {
name = local.http_setting_name_443
cookie_based_affinity = "Disabled"
port = 443
protocol = "Https"
request_timeout = 7600
probe_name = local.qs_probe_name
}
# NPrinting
backend_http_settings {
name = local.http_setting_name_4993
cookie_based_affinity = "Disabled"
port = 4993
protocol = "Https"
request_timeout = 7600
probe_name = local.qs_probe_name
}
backend_http_settings {
name = local.http_setting_name_4994
cookie_based_affinity = "Disabled"
port = 4994
protocol = "Https"
request_timeout = 7600
probe_name = local.qs_probe_name
}
# QIB
backend_http_settings {
name = local.http_setting_name_4435
cookie_based_affinity = "Disabled"
port = 4435
protocol = "Https"
request_timeout = 7600
probe_name = local.qs_probe_name_4435
}
# QDC
backend_http_settings {
name = local.http_setting_name_8443
cookie_based_affinity = "Disabled"
port = 8080
protocol = "Http"
request_timeout = 7600
probe_name = local.qdc_probe_name
}
# QS Prob
probe {
name = local.qs_probe_name
protocol = "Https"
host = local.appgw_hostname
interval = 30
path = "/"
timeout = 30
unhealthy_threshold = 3
}
# QDC Prob
probe {
name = local.qdc_probe_name
protocol = "Http"
host = local.appgw_hostname
interval = 30
path = "/qdc"
timeout = 30
unhealthy_threshold = 3
}
# QIB Probe
probe {
name = local.qs_probe_name_4435
protocol = "Https"
host = local.appgw_hostname
interval = 30
path = "/"
timeout = 30
unhealthy_threshold = 3
match {
status_code = ["200-401"]
}
}
# Qlik Sense listener
http_listener {
name = local.listener_name_https
host_name = local.appgw_hostname
ssl_certificate_name = var.cert_name
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "443"
protocol = "Https"
}
http_listener {
name = local.listener_name_http
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "80"
protocol = "Http"
}
# NPrinting listeners
http_listener {
name = local.listener_name_4993
ssl_certificate_name = var.cert_name
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "4993"
protocol = "Https"
}
http_listener {
name = local.listener_name_4994
ssl_certificate_name = var.cert_name
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "4994"
protocol = "Https"
}
# QIB listener
http_listener {
name = local.listener_name_4435
ssl_certificate_name = var.cert_name
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "4435"
protocol = "Https"
}
# QDC listeners
http_listener {
name = local.listener_name_8443
ssl_certificate_name = var.cert_name
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "8443"
protocol = "Https"
}
http_listener {
name = local.listener_name_8080
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "8080"
protocol = "Http"
}
# Qlik Sense routing rules
request_routing_rule {
name = local.request_routing_rule_https
rule_type = "Basic"
http_listener_name = local.listener_name_https
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_443
}
# QDC routing rules
request_routing_rule {
name = local.request_routing_rule_8443
rule_type = "Basic"
http_listener_name = local.listener_name_8443
backend_address_pool_name = local.backend_address_pool_qdc
backend_http_settings_name = local.http_setting_name_8443
}
# NPrinting routing rules
request_routing_rule {
name = local.request_routing_rule_4993
rule_type = "Basic"
http_listener_name = local.listener_name_4993
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4993
}
request_routing_rule {
name = local.request_routing_rule_4994
rule_type = "Basic"
http_listener_name = local.listener_name_4994
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4994
}
# QIB routing rule
request_routing_rule {
name = local.request_routing_rule_4435
rule_type = "Basic"
http_listener_name = local.listener_name_4435
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4435
}
# Redirect QS 80 to 443
redirect_configuration {
name = local.redirect_configuration_80
target_listener_name = local.listener_name_https
redirect_type = "Permanent"
include_path = true
include_query_string = true
}
request_routing_rule {
name = local.request_routing_rule_http
rule_type = "Basic"
http_listener_name = local.listener_name_http
redirect_configuration_name = local.redirect_configuration_80
}
# Redirect QDC 8080 to 8443
redirect_configuration {
name = local.redirect_configuration_8080
target_listener_name = local.listener_name_8443
redirect_type = "Permanent"
include_path = true
include_query_string = true
}
request_routing_rule {
name = local.request_routing_rule_8080
rule_type = "Basic"
http_listener_name = local.listener_name_8080
redirect_configuration_name = local.redirect_configuration_8080
}
}

View File

@@ -10,10 +10,14 @@ output "appgw_public_ip" {
value = azurerm_public_ip.appgw-ip.ip_address
}
locals {
backend_pools = tolist(azurerm_application_gateway.qmi-app-gw.backend_address_pool)
}
output "appgw_backend_address_pool_0_id" {
value = azurerm_application_gateway.qmi-app-gw.backend_address_pool[0].id
value = local.backend_pools[index(local.backend_pools.*.name, "${var.appgw_hostname}-qs-bp")].id
}
output "appgw_backend_address_pool_1_id" {
value = azurerm_application_gateway.qmi-app-gw.backend_address_pool[1].id
value = local.backend_pools[index(local.backend_pools.*.name, "${var.appgw_hostname}-qdc-bp")].id
}

View File

@@ -24,7 +24,7 @@ variable "app_gw_subnet" {
}
variable "log_analytics_workspace_id" {
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourcegroups/appgw_rg/providers/microsoft.operationalinsights/workspaces/qmi-log-analytics"
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/appgw_rg/providers/Microsoft.OperationalInsights/workspaces/qmi-log-analytics"
}
variable "cert_name" {

View File

@@ -5,23 +5,19 @@ resource "azurerm_monitor_diagnostic_setting" "example" {
log_analytics_workspace_id = var.log_analytics_workspace_id
log {
enabled_log {
category = "ApplicationGatewayAccessLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
log {
enabled_log {
category = "ApplicationGatewayFirewallLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
}

View File

@@ -11,14 +11,8 @@ locals {
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
data "azurerm_key_vault_certificate" "qmi-cert" {
name = "star-qmi-qlikpoc-com-cert"
key_vault_id = var.key_vault_id
}
@@ -34,6 +28,7 @@ resource "azurerm_public_ip" "appgw-ip" {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
@@ -43,10 +38,16 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
resource_group_name = var.app_gw_rg
location = var.location
identity {
type = "UserAssigned"
identity_ids = ["/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/AppGW_RG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/QMIMainIDY"]
}
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
sku {
@@ -80,8 +81,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
key_vault_secret_id = data.azurerm_key_vault_certificate.qmi-cert.secret_id
}
ssl_policy {
@@ -129,6 +129,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_8443
backend_address_pool_name = local.backend_address_pool_qdc
backend_http_settings_name = local.http_setting_name_8443
priority = 1
}
}

View File

@@ -1,167 +0,0 @@
locals {
appgw_hostname = "${var.appgw_hostname}.${var.domain}"
appgw_name = "qmi-appgw-qdc"
backend_address_pool_qdc = "${var.appgw_hostname}-qdc-bp"
http_setting_name_8443 = "${var.appgw_hostname}-8443-setting"
qdc_probe_name = "${var.appgw_hostname}-qdcprobe"
listener_name_8080 = "${var.appgw_hostname}-8080"
listener_name_8443 = "${var.appgw_hostname}-8443"
request_routing_rule_https = "${var.appgw_hostname}-https-rule"
request_routing_rule_8443 = "${var.appgw_hostname}-8443-rule"
redirect_configuration_8080 = "${var.appgw_hostname}-8080redirect"
request_routing_rule_8080 = "${var.appgw_hostname}-8080-rule"
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
key_vault_id = var.key_vault_id
}
resource "azurerm_public_ip" "appgw-ip" {
name = "${local.appgw_name}-ip-${var.provision_id}"
resource_group_name = var.app_gw_rg
sku = "Standard"
location = var.location
allocation_method = "Static"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
}
}
resource "azurerm_application_gateway" "qmi-app-gw" {
name = "${local.appgw_name}-${var.provision_id}"
resource_group_name = var.app_gw_rg
location = var.location
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
}
sku {
name = "WAF_v2"
tier = "WAF_v2"
capacity = 1
}
waf_configuration {
enabled = true
firewall_mode = "Prevention"
rule_set_type = "OWASP"
rule_set_version = "3.0"
}
gateway_ip_configuration {
name = "app-gw-subnet"
subnet_id = var.app_gw_subnet
}
frontend_port {
name = "8443"
port = 8443
}
frontend_port {
name = "8080"
port = 8080
}
frontend_ip_configuration {
name = "app-gw-front-end-ip-config"
public_ip_address_id = azurerm_public_ip.appgw-ip.id
}
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
}
ssl_policy {
policy_type = "Predefined"
policy_name = "AppGwSslPolicy20170401"
}
backend_address_pool {
name = local.backend_address_pool_qdc
}
backend_http_settings {
name = local.http_setting_name_8443
cookie_based_affinity = "Disabled"
port = 8080
protocol = "Http"
request_timeout = 7600
probe_name = local.qdc_probe_name
}
probe {
name = local.qdc_probe_name
protocol = "Http"
host = local.appgw_hostname
interval = 30
path = "/qdc"
timeout = 30
unhealthy_threshold = 3
}
http_listener {
name = local.listener_name_8443
ssl_certificate_name = var.cert_name
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "8443"
protocol = "Https"
}
http_listener {
name = local.listener_name_8080
host_name = local.appgw_hostname
frontend_ip_configuration_name = "app-gw-front-end-ip-config"
frontend_port_name = "8080"
protocol = "Http"
}
request_routing_rule {
name = local.request_routing_rule_8443
rule_type = "Basic"
http_listener_name = local.listener_name_8443
backend_address_pool_name = local.backend_address_pool_qdc
backend_http_settings_name = local.http_setting_name_8443
}
redirect_configuration {
name = local.redirect_configuration_8080
target_listener_name = local.listener_name_8443
redirect_type = "Permanent"
include_path = true
include_query_string = true
}
request_routing_rule {
name = local.request_routing_rule_8080
rule_type = "Basic"
http_listener_name = local.listener_name_8080
redirect_configuration_name = local.redirect_configuration_8080
}
}

View File

@@ -11,6 +11,6 @@ output "appgw_public_ip" {
}
output "appgw_backend_address_pool_0_id" {
value = azurerm_application_gateway.qmi-app-gw.backend_address_pool[0].id
value = tolist(azurerm_application_gateway.qmi-app-gw.backend_address_pool).0.id
}

View File

@@ -24,7 +24,7 @@ variable "app_gw_subnet" {
}
variable "log_analytics_workspace_id" {
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourcegroups/appgw_rg/providers/microsoft.operationalinsights/workspaces/qmi-log-analytics"
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/appgw_rg/providers/Microsoft.OperationalInsights/workspaces/qmi-log-analytics"
}
variable "cert_name" {

View File

@@ -5,23 +5,19 @@ resource "azurerm_monitor_diagnostic_setting" "example" {
log_analytics_workspace_id = var.log_analytics_workspace_id
log {
enabled_log {
category = "ApplicationGatewayAccessLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
log {
enabled_log {
category = "ApplicationGatewayFirewallLog"
enabled = true
retention_policy {
enabled = true
days = 7
}
}
}

View File

@@ -35,14 +35,8 @@ locals {
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-data" {
name = "star-qmi-qlikpoc-com-data"
data "azurerm_key_vault_certificate" "qmi-cert" {
name = "star-qmi-qlikpoc-com-cert"
key_vault_id = var.key_vault_id
}
@@ -58,6 +52,7 @@ resource "azurerm_public_ip" "appgw-ip" {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
@@ -67,10 +62,16 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
resource_group_name = var.app_gw_rg
location = var.location
identity {
type = "UserAssigned"
identity_ids = ["/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/AppGW_RG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/QMIMainIDY"]
}
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
sku {
@@ -186,8 +187,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
ssl_certificate {
name = var.cert_name
password = data.azurerm_key_vault_secret.cert-password.value
data = data.azurerm_key_vault_secret.cert-data.value
key_vault_secret_id = data.azurerm_key_vault_certificate.qmi-cert.secret_id
}
ssl_policy {
@@ -272,6 +272,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
unhealthy_threshold = 3
match {
body = null
status_code = ["200-401"]
}
}
@@ -339,6 +340,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_https
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_443
priority = 1
}
@@ -349,6 +351,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4993
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4993
priority = 2
}
request_routing_rule {
name = local.request_routing_rule_4994
@@ -356,6 +359,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4994
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4994
priority = 3
}
# QIB routing rule (needs QIB using qmi.qlik-poc.com certs)
@@ -365,6 +369,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4435
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4435
priority = 4
}
# Qlik Alerting routing rule (needs Qlik Alerting using qmi.qlik-poc.com certs)
@@ -374,6 +379,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
http_listener_name = local.listener_name_4552
backend_address_pool_name = local.backend_address_pool_qs
backend_http_settings_name = local.http_setting_name_4552
priority = 5
}
@@ -390,6 +396,7 @@ resource "azurerm_application_gateway" "qmi-app-gw" {
rule_type = "Basic"
http_listener_name = local.listener_name_http
redirect_configuration_name = local.redirect_configuration_80
priority = 6
}
}

View File

@@ -11,5 +11,5 @@ output "appgw_public_ip" {
}
output "appgw_backend_address_pool_0_id" {
value = azurerm_application_gateway.qmi-app-gw.backend_address_pool[0].id
value = tolist(azurerm_application_gateway.qmi-app-gw.backend_address_pool).0.id
}

View File

@@ -24,7 +24,7 @@ variable "app_gw_subnet" {
}
variable "log_analytics_workspace_id" {
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourcegroups/appgw_rg/providers/microsoft.operationalinsights/workspaces/qmi-log-analytics"
default = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/appgw_rg/providers/Microsoft.OperationalInsights/workspaces/qmi-log-analytics"
}
variable "cert_name" {

View File

@@ -1,169 +0,0 @@
resource "random_id" "randomMachineId" {
keepers = {
# Generate a new ID only when a new resource group is defined
resource_group = var.resource_group_name
}
byte_length = 2
}
resource "random_password" "password" {
length = 16
special = true
override_special = "_!@"
upper = true
lower = true
min_lower = 2
min_upper = 2
min_special = 2
}
locals {
virtual_machine_name = (var.virtual_machine_name != null)? var.virtual_machine_name : "${var.prefix}-${random_id.randomMachineId.hex}"
admin_username = var.admin_username
admin_password = random_password.password.result
notrename = (var.notrename != null)? "-NotApply" : ""
storage_account_id = var.location == "westeurope"? "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Storage/storageAccounts/machinesnapshotsweu" : "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-Machines/providers/Microsoft.Storage/storageAccounts/machinesnapshots"
}
resource "azurerm_managed_disk" "copy" {
name = "Disk-${var.prefix}-${random_id.randomMachineId.hex}"
location = var.location
resource_group_name = var.resource_group_name
storage_account_type = "Premium_LRS"
create_option = "Import"
storage_account_id = local.storage_account_id
source_uri = var.snapshot_id
disk_size_gb = var.disk_size_gb
tags = {
"Deployment" = "QMI PoC"
"Cost Center" = "3100"
"QMI_user" = var.user_id != null? var.user_id : null
}
}
module "qmi-nic" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//qmi-nic"
prefix = local.virtual_machine_name
location = var.location
subnet_id = var.subnet_id
resource_group_name = var.resource_group_name
user_id = var.user_id
}
resource "azurerm_virtual_machine" "vm" {
name = local.virtual_machine_name
location = var.location
resource_group_name = var.resource_group_name
network_interface_ids = [ module.qmi-nic.id ]
vm_size = var.vm_type
storage_os_disk {
name = azurerm_managed_disk.copy.name
os_type = "Windows"
managed_disk_id = azurerm_managed_disk.copy.id
managed_disk_type = "Premium_LRS"
create_option = "Attach"
}
os_profile_windows_config {
provision_vm_agent = true
enable_automatic_upgrades = false
winrm {
protocol = "http"
}
}
identity {
type = "SystemAssigned"
}
/*os_profile {
computer_name = local.virtual_machine_name
admin_username = local.admin_username
}*/
tags = {
"Deployment" = "QMI PoC"
"Cost Center" = "3100"
"ProvId" = var.provId != null? var.provId : null
"QMI_user" = var.user_id != null? var.user_id : null
"24x7" = var.is_24x7 == true? "" : null
"ShutdownTime": var.is_24x7 == false? var.shutdownTime : null
"StartupTime": var.is_24x7 == false? var.startupTime : null
}
}
resource "null_resource" "post-vm-fromsnapshot-win" {
count = var.initial_password != null? 1 : 0
depends_on = [
azurerm_virtual_machine.vm
]
provisioner "file" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = var.initial_password
port = 5985
https = false
timeout = "10m"
}
source = "${path.module}/scripts"
destination = "C:/tmp/provision"
}
provisioner "remote-exec" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = var.initial_password
port = 5985
https = false
timeout = "10m"
}
inline = [
"powershell.exe -File C:/tmp/provision/bootstrap.ps1",
"powershell.exe -File C:/tmp/provision/password.ps1 -Username ${local.admin_username} -Pass ${local.admin_password}"
]
}
# Rename Computer
provisioner "remote-exec" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = local.admin_password
port = 5985
https = false
timeout = "10m"
}
inline = [
"powershell.exe -File C:/tmp/provision/RenameComputer.ps1 -NewName ${local.virtual_machine_name} ${local.notrename}"
]
on_failure = continue
}
provisioner "local-exec" {
command = "sleep 30"
}
}

View File

@@ -1,14 +0,0 @@
Param(
[string] $NewName,
[switch] $NotApply = $False
)
if ($NotApply){
Write-Host "Not renaming machine"
} else {
Write-Host "Machine is going to be renamed as $NewName"
Rename-Computer -NewName $NewName -PassThru -Force -Restart
}

View File

@@ -1,12 +0,0 @@
Param(
[string] $Username,
[string] $Pass
)
Import-Module "Carbon"
$secpasswd = ConvertTo-SecureString $Pass -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($Username, $secpasswd)
Install-User -Credential $cred
Write-Log "Done! Setting new password to user $Username"

View File

@@ -1,29 +0,0 @@
Write-Log "Starting q-user-setup.ps1"
Trap {
Write-Log -Message $_.Exception.Message -Severity "Error"
Break
}
### Install Carbon PowerShell Module
Write-Log -Message "Installing carbon"
choco install carbon -y | Out-Null
Import-Module "Carbon"
### create Qlik User
Write-Log -Message "Creating Qlik account"
$cred = New-MyCredential -user "Qlik" -pass "Qlik1234"
Install-User -Credential $cred
### Grant Remote Admin Rights to Qlik User
Write-Log -Message "Granting Qlik account Remote Interactive Logon Right"
Grant-Privilege -Identity $env:COMPUTERNAME\qlik -Privilege SeRemoteInteractiveLogonRight
Write-Log -Message "Adding Qlik user to Remote Desktop Users"
Add-GroupMember -Name 'Remote Desktop Users' -Member $env:COMPUTERNAME\qlik
Write-Log -Message "Adding Qlik user to local Administrators"
Add-GroupMember -Name 'Administrators' -Member $env:COMPUTERNAME\qlik
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control"
Set-ItemProperty $regPath -Name "ServicesPipeTimeout" -Type DWord -Value 180000

View File

@@ -1,150 +0,0 @@
Param(
[string] $QDC_HOST = "QMI-QDC-SN",
[string] $QDC_PUBLIC_HOST
)
function New-Credential($u,$p) {
$secpasswd = ConvertTo-SecureString $p -AsPlainText -Force
return New-Object System.Management.Automation.PSCredential ($u, $secpasswd)
}
Write-Log -Message "Setting up QDC pre-requisites in Qlik Sense"
Import-Module Qlik-Cli
### Connect to the Qlik Sense Repository Service with Qlik-Cli
do {write-log -Message "Connecting to Qlik Sense Repository..."; start-sleep 15}
While( (Connect-Qlik $($env:COMPUTERNAME) -TrustAllCerts -UseDefaultCredentials -ErrorAction SilentlyContinue).length -eq 0 )
#-----------
# Load variables
. $PSScriptRoot\qdc-scenario-config.ps1
Write-Log -Message "Creating QDC virtual proxy"
$jwtcert = Get-Content -raw 'C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\.Local Certificates\server.pem'
New-QlikVirtualProxy -description "Qlik Data Catalyst" -sessionCookieHeaderName "X-Qlik-QDC-Session" -authenticationMethod JWT `
-prefix qdc -loadBalancingServerNodes $(Get-QlikNode -filter "name eq 'Central'").id `
-jwtAttributeUserDirectory "[QLIK-EXTERNAL-SERVICE]" -jwtAttributeUserId "name" -jwtPublicKeyCertificate $jwtcert -websocketCrossOriginWhiteList $QDC_PUBLIC_HOST | Out-Null
Add-QlikProxy -ProxyId $(Get-QlikProxy -filter "serverNodeConfiguration.hostName eq '$($env:COMPUTERNAME)'").id -VirtualProxyId $(Get-QlikVirtualProxy -filter "description eq 'Qlik Data Catalyst'").id | Out-Null
Start-Sleep -s 10
Write-Log -Message "Downloading qdc_proxy_artifacts - This will create 'qlik-data-catalyst' qliksense user"
Write-Log -Message "PROXY_ARTIFACTS = $PROXY_ARTIFACTS"
$ENV:PATH += ";C:\Program Files\Qlik\Sense\ServiceDispatcher\Node"
cd $env:TEMP
(New-Object System.Net.WebClient).DownloadFile($PROXY_ARTIFACTS, "$env:TEMP\qdc_proxy_artifacts.zip")
#Invoke-WebRequest -UseBasicParsing -OutFile qdc_proxy_artifacts.zip -Uri $PROXY_ARTIFACTS
Expand-Archive .\qdc_proxy_artifacts.zip .
cd qs-virtual-proxy
(Get-Content .\check-proxy.js).replace("ducks-sense1.ad.podiumdata.net", "$($env:COMPUTERNAME)") | Set-Content .\check-proxy.js
Copy-Item "C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\.Local Certificates\qdc.jwt" .
ls
Get-QlikUser
node .\check-proxy.js
Get-QlikUser -filter "name eq 'qlik-data-catalyst'"
Write-Log -Message "Waiting 20 secs"
Start-Sleep -s 20
Write-Log -Message "Set 'qlik-data-catalyst' as AuditAdmin"
Update-QlikUser -id $(Get-QlikUser -filter "name eq 'qlik-data-catalyst'").id -roles AuditAdmin | Out-Null
Write-Log -Message "Creating security rule for access by QLIK-EXTERNAL-SERVICE"
New-QlikRule -Name "Security rule for access by QLIK-EXTERNAL-SERVICE" -resourceFilter "DataConnection_*,App_*" `
-actions 2 -rule '((user.userDirectory="QLIK-EXTERNAL-SERVICE"))' -rulecontext both -category Security | Out-Null
Write-Log -Message "Adding qvd-mock to service dispatcher"
$dir = pwd
cd "C:\Program Files\Qlik\Sense"
Expand-Archive $dir\qvd-mock.zip .
Copy-Item $dir\qvd-mock.json "C:\Program Files\Qlik\Sense\BrokerService\service-configs\"
$mock=@"
[qvd-mock]
Identity=Qlik.qvd-mock
DisplayName=QVD Mock
ExePath=Node\node.exe
Script=..\qvd-mock\server.js
"@
Add-Content "C:\Program Files\Qlik\Sense\ServiceDispatcher\services.conf" $mock
Restart-Service QlikSenseServiceDispatcher
Write-Log -Message "Creating 'QVD Catalog' tag"
New-QlikTag -name "QVD Catalog" | Out-Null
Write-Log -Message "Creating 'c:\QVDs' folder and set SMB"
New-Item "C:\QVDs" -type directory | Out-Null
New-SMBShare -Name "qvds" -Path "C:\QVDs" | Out-Null
Grant-SmbShareAccess -Name qvds -AccountName Everyone -AccessRight Change -Force | Out-Null
Write-Log -Message "Creating Qlik Sense data connection for C:\QVDs"
# ---- Workaround qlik-cli QS April 2020
# Qlik CLI New-QlikDataConnection fails with only 1 tag, that's why I create and use FakeTag too.
New-QlikTag -name "FakeTag" | Out-Null
$qvdsDC = New-QlikDataConnection -connectionstring "\\$($env:COMPUTERNAME)\qvds" -name "QVDs" -tags "QVD Catalog","FakeTag" -type "folder"
# ----
Write-Log -Message "Grant access to all user to this connection"
New-QlikRule -name "QVDs allow to all" -comment "Allow QVDs Connection to all users" -category "Security" -resourceFilter "DataConnection_$($qvdsDC.id)" -actions 23 -rule '((user.name like "*"))' | Out-Null
Write-Log -Message "Setting firewall rules for QDC"
New-NetFirewallRule -DisplayName "QDC QVD Metadata" -Action allow -LocalPort 7007 -Protocol TCP | Out-Null
New-NetFirewallRule -DisplayName "pub2qlik" -Action allow -LocalPort 4243,4747 -Protocol TCP | Out-Null
# certs needed for qdc
Write-Log -Message "SMB Qlik Sense certificates folder"
New-SMBShare -Name "certs" -Path "C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\.Local Certificates" | Out-Null
Grant-SmbShareAccess -Name certs -AccountName Everyone -AccessRight Read -Force | Out-Null
# create podium user
Import-Module "Carbon"
Write-Log -Message "Adding 'podium' user to Windows system"
$cred = New-Credential "podium" "Qlik1234"
Install-User -Credential $cred | Out-Null
#gci cert:\CurrentUser\My | where {$_.issuer -eq $cert} | Connect-Qlik -Username $env:COMPUTERNAME\podium -Computername $env:COMPUTERNAME
#gci cert:\CurrentUser\My | where {$_.issuer -eq $cert} | Connect-Qlik -Computername $env:COMPUTERNAME
#Update-QlikUser -id $(Get-QlikUser -filter "name eq 'podium'").id -roles RootAdmin
#gci cert:\CurrentUser\My | where {$_.issuer -eq $cert} | Connect-Qlik -Username $env:COMPUTERNAME\podium -Computername $env:COMPUTERNAME
Write-Log -Message "Creating 'podium_dist' postgres connection"
$cred = New-Credential "postgres" "postgres"
$podiumDistDC = New-QlikDataConnection -connectionstring "'CUSTOM CONNECT TO `"provider=QvOdbcConnectorPackage.exe;driver=postgres;host=$QDC_HOST;port=5432;db=podium_dist;SSLMode=prefer;UseSystemTrustStore=false;ByteaAsLongVarBinary=0;TextAsLongVarchar=0;UseUnicode=1;FetchTSWTZasTimestamp=1;MaxVarcharSize=262144;UseDeclareFetch=1;Fetch=200;EnableTableTypes=1;MoneyAsDecimal=1;QueryTimeout=30;`"" `
-name podium_dist -type 'QvOdbcConnectorPackage.exe' -Credential $cred
Write-Log -Message "Grant access to all user to this connection"
New-QlikRule -name "Podium_Dist allow to all" -comment "Allow Podium_Dist Connection to all users" -category "Security" -resourceFilter "DataConnection_$($podiumDistDC.id)" -actions 23 -rule '((user.name like "*"))' | Out-Null
Write-Log "Copy Sample QVDs into C:/QVDs folder"
Copy-Item $PSScriptRoot\*.qvd C:\QVDs
$x=1
$files = Get-ChildItem C:\QVDs\*.qvd|sort LastWriteTime
foreach ($file in $files) #{ echo $file }
{
if ($x -lt 3) {
Set-ItemProperty -Path $file -Name LastWriteTime -Value (get-date)
sleep 2
}
$x= $x +1
}
Write-Log "QDC Config Completed."

View File

@@ -1,131 +0,0 @@
Param(
[string] $ModuleName = "vm-qs"
)
Write-Log "Resize Partition C to max size"
$size = Get-PartitionSupportedSize -DriveLetter C
Resize-Partition -DriveLetter C -Size $size.SizeMax | Out-Null
# Helper Functions
# ----------------
function New-Credential($u,$p) {
$secpasswd = ConvertTo-SecureString $p -AsPlainText -Force
return New-Object System.Management.Automation.PSCredential ($u, $secpasswd)
}
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
#Write-Log "Deleting old certificates files..."
#Get-ChildItem "$($env:ProgramData)\Qlik\Sense\Repository\Exported Certificates\" | Remove-Item -Recurse
Set-Service -Name "QlikLoggingService" -StartupType Automatic
Set-Service -Name "QlikSenseServiceDispatcher" -StartupType Automatic
Set-Service -Name "QlikSenseProxyService" -StartupType Automatic
Set-Service -Name "QlikSenseEngineService" -StartupType Automatic
Set-Service -Name "QlikSensePrintingService" -StartupType Automatic
Set-Service -Name "QlikSenseSchedulerService" -StartupType Automatic
Set-Service -Name "QlikSenseRepositoryService" -StartupType Automatic
Set-Service -Name "QlikSenseRepositoryDatabase" -StartupType Automatic
Write-Log "Starting QlikSenseRepositoryDatabase and QlikSenseServiceDispatcher..."
Start-Service QlikSenseRepositoryDatabase
Start-Service QlikSenseServiceDispatcher
#Delete certificates
Write-Log "Deleting old certificates from keyStore..."
$Certs = Get-ChildItem cert:"CurrentUser\My"
$Certs | ForEach-Object{Remove-Item -path $_.PSPath -recurse -Force}
$Certs = Get-ChildItem cert:"LocalMachine\My"
$Certs | ForEach-Object{Remove-Item -path $_.PSPath -recurse -Force}
$Certs = Get-ChildItem cert:"LocalMachine\Root" | Where-Object { $_.Subject -match 'GEN-QS' -or $_.Subject -match 'QMI-QS' -or $_.Subject -match 'QMI-E2E' }
$Certs | ForEach-Object{Remove-Item -path $_.PSPath -recurse -Force}
Write-Log "Setting new hostname ($($env:computername)) in to Host.cfg file..."
$enchostname = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("$($env:computername)"))
Set-Content -Path C:\ProgramData\Qlik\Sense\Host.cfg -Value $enchostname
Write-Log "Bootstraping Qlik Sense ..."
Write-Log "Executing ... Repository.exe -bootstrap -standalone -restorehostname"
$waiting=20
if ( $env:USERNAME -eq "qservice" ) {
$waiting=50
Write-Log "The user executing this script is already 'qservice'"
Start-Process powershell.exe -ArgumentList "Start-Process cmd.exe -Verb runAs -ArgumentList '/k C:\PROGRA~1\Qlik\Sense\Repository\Repository.exe -bootstrap -standalone -restorehostname'"
} else {
Write-Log "The user executing this script is NOT 'qservice'"
$cred = New-Credential "qservice" "Qlik1234"
Start-Process powershell.exe -Credential $cred -ArgumentList "Start-Process cmd.exe -Verb runAs -ArgumentList '/k C:\PROGRA~1\Qlik\Sense\Repository\Repository.exe -bootstrap -standalone -restorehostname'"
}
$waiting=50
Write-Log "Waiting $waiting secs ..."
Start-Sleep -s $waiting
Write-Log "Restarting Service Dispatcher"
Restart-Service QlikSenseServiceDispatcher -Force
Start-Sleep -s 20
Write-Log "New Certs: CurrentUser\My"
Get-ChildItem cert:"CurrentUser\My"
Write-Log "New Certs: LocalMachine\My"
Get-ChildItem cert:"LocalMachine\My"
Write-Log "New Certs: LocalMachine\Root"
Get-ChildItem cert:"LocalMachine\Root" | Where-Object { $_.Subject -match 'QMI' }
$NewCerts = Get-ChildItem cert:"LocalMachine\Root" | Where-Object { $_.Subject -match 'QMI' }
if ($NewCerts) {
Write-Log "Restarting all Qlik Sense services"
Restart-Service QlikSenseServiceDispatcher -Force
Restart-Service QlikLoggingService -Force
Restart-Service QlikSenseRepositoryService -Force
Restart-Service QlikSenseProxyService -Force
Restart-Service QlikSenseEngineService -Force
Restart-Service QlikSenseSchedulerService -Force
Restart-Service QlikSensePrintingService -Force
if ( $ModuleName -ne "vm-qs" ) {
Start-Sleep -s 20
Write-Log "Recovering Qlik Sense users"
Start-Process powershell.exe -ArgumentList "Start-Process cmd.exe -Verb runAs -ArgumentList '/c $PSScriptRoot\qs-reset-users.bat'"
Restart-Service QlikSenseRepositoryService -Force
}
} else {
Write-Error "Error: Qlik Sense Certs not recreated!"
throw "Error: Qlik Sense Certs not recreated!"
}
#### Recreate QS desktop shortcuts
Write-Log "Recreate QS desktop shortcuts"
$sourcepath="C:\Users\Public\Desktop\Qlik Management Console.lnk"
$destination="C:\Users\Public\Desktop\Qlik Management Console2.lnk"
Copy-Item $sourcepath $destination ## Get the lnk we want to use as a template
Remove-Item -Path $sourcepath -Force
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination) ## Open the lnk
$shortcut.TargetPath = "https://$env:computername/qmc" ## Make changes
$shortcut.Save() ## Save
Rename-Item -Path $destination -NewName "Qlik Management Console.lnk"
$sourcepath="C:\Users\Public\Desktop\Qlik Sense Hub.lnk"
$destination="C:\Users\Public\Desktop\Qlik Sense Hub2.lnk"
Copy-Item $sourcepath $destination ## Get the lnk we want to use as a template
Remove-Item -Path $sourcepath -Force
$shell = New-Object -COM WScript.Shell
$shortcut = $shell.CreateShortcut($destination) ## Open the lnk
$shortcut.TargetPath = "https://$env:computername/hub" ## Make changes
$shortcut.Save() ## Save
Rename-Item -Path $destination -NewName "Qlik Sense Hub.lnk"
####
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f

View File

@@ -1,185 +0,0 @@
<#
Module: qs-post-cfg
Author: Clint Carr
Modified by: -
Modification History:
- Fixed connect as user logic (qlik-cli change)
- Added logic to accomodate for Professional/Analyzer or User licenses
- Added a loop into the Connect-Qlik statement to remove an abort error
- Added Logging
- Added comments
- Error checking
- Modified service connection for Qlik Sense from endless loop to a set number of attempts.
- Added a service restart at the end of the Central Node (seems to resolve an issue with April 2018)
last updated: 10/18/2019
Intent: Configure the Qlik Sense environment with applications and Security Rules.
#>
Param(
[string] $Hostname,
[string] $CertPwd,
[string] $QlikUserPwd
)
Import-Module Qlik-Cli
Import-Module "Carbon"
# Helper Functions
# ----------------
function New-Credential($u,$p) {
$secpasswd = ConvertTo-SecureString $p -AsPlainText -Force
return New-Object System.Management.Automation.PSCredential ($u, $secpasswd)
}
Write-Log -Message "Creating Qlik account"
$cred = New-Credential "Qlik" $QlikUserPwd
Install-User -Credential $cred
Write-Log -Message "Starting qs-post-cfg.ps1"
### Waiting for Qlik Sense installation to complete
#-----------
Function restartQse
{
Write-Log "Checking Engine Service has started..."
$qse = get-service QlikSenseEngineService
write-log -Message "The engine is currently $($qse.Status)"
if ($qse.Status -eq "Stopped") {
Write-Log -Message "Starting Qlik Sense Engine and waiting 120 seconds" -Severity "Warn";
Start-Service QlikSenseEngineService ;
Restart-Service QlikSenseServiceDispatcher;
start-sleep -s 120
}
write-log -Message "The engine is currently $($qse.Status)"
}
Function connQSR
{
$i = 1
$statusCode = 0
while ($statusCode -ne 200 -and $i -le 10)
{
try {$statusCode = (Invoke-WebRequest https://$($env:COMPUTERNAME)/qps/user -UseBasicParsing).statusCode }
catch
{
$i++
write-log -Message "QSR on $env:COMPUTERNAME not responding attempt $i of 10..." -Severity "Warn"
start-sleep -s 20
}
}
}
Function restartServices
{
write-log -Message "Restarting Qlik Sense Services on $env:COMPUTERNAME" -Severity "Warn"
Restart-Service QlikSenseRepositoryDatabase -Force
Restart-Service QlikLoggingService -Force
Restart-Service QlikSenseServiceDispatcher -Force
Restart-Service QlikSenseRepositoryService -Force
Restart-Service QlikSenseProxyService -Force
Restart-Service QlikSenseEngineService -Force
Restart-Service QlikSensePrintingService -Force
Restart-Service QlikSenseSchedulerService -Force
}
Function qlikSenseUserAccess
{
$userAccessGroup = (@{name = "License Everyone";} | ConvertTo-Json -Compress -Depth 10)
$licenseId = Invoke-QlikPost "/qrs/License/UserAccessGroup" $userAccessGroup
$systemRuleJson = (@{
name = "Grant Everyone a token";
category = "License";
rule = '((user.name like "*"))';
type = "Custom";
resourceFilter = "License.UserAccessGroup_" + $licenseId.id;
actions = 1;
ruleContext = "QlikSenseOnly";
disabled = $false;
comment = "Rule to set up automatic user access";} | ConvertTo-Json -Compress -Depth 10)
Write-Log -Message "Adding user license rule to grant Everyone Tokens."
try {
Invoke-QlikPost "/qrs/SystemRule" $systemRuleJson | Out-Null
} catch {
Write-Log -Message $_.Exception.Message -Severity "Error"
}
}
Function qlikSenseProfessionalAccess
{
$professionalAccessGroup = (@{name = "License Everyone";} | ConvertTo-Json -Compress -Depth 10)
$licenseId = Invoke-QlikPost "/qrs/License/ProfessionalAccessGroup" $professionalAccessGroup
$systemRuleJson = (@{
name = "Grant Everyone Professional Access";
category = "License";
rule = '((user.name like "*"))';
type = "Custom";
resourceFilter = "License.ProfessionalAccessGroup_" + $licenseId.id;
actions = 1;
ruleContext = "QlikSenseOnly";
disabled = $false;
comment = "Rule to set up automatic user access";} | ConvertTo-Json -Compress -Depth 10)
Write-Log -Message "Adding user license rule to grant Everyone access as Professional."
try {
Invoke-QlikPost "/qrs/SystemRule" $systemRuleJson | Out-Null
} catch {
Write-Log -Message $_.Exception.Message -Severity "Error"
}
}
#-----------
write-log -Message "Waiting 1 minute for Qlik Sense installation to complete"
start-sleep -s 60
### wait for Qlik Sense Proxy service to respond with an HTTP 200 status before proceeding
connQSR
$statusCode = (Invoke-WebRequest https://$($env:COMPUTERNAME)/qps/user -UseBasicParsing).statusCode
if ($statusCode -ne 200)
{
Write-Log -Message "Waiting 25 seconds before next pass" -Severity "Warn"
restartServices
Write-Log -Message "Waiting 45 seconds for Services to ensure they are ready" -Severity "Warn"
start-sleep -s 45
connQSR
}
$statusCode = (Invoke-WebRequest https://$($env:COMPUTERNAME)/qps/user -UseBasicParsing).statusCode
if ($statusCode -ne 200) {
Write-Log -Message "Provisioning failed" -Severity "Error"
Exit
}
Write-Log -Message "Qlik Sense Proxy responding on $env:COMPUTERNAME, status code: $statusCode"
Write-Log -Message "Connecting to Qlik Sense Repository Service on $env:COMPUTERNAME"
restartQse
### Connect to the Qlik Sense Repository Service with Qlik-Cli
do {write-log -Message "Connecting to Qlik Sense Repository"; start-sleep 15}
While( (Connect-Qlik $($env:COMPUTERNAME) -TrustAllCerts -UseDefaultCredentials -ErrorAction SilentlyContinue).length -eq 0 )
### Enabling HTTP
#Write-Log -Message "Enabling HTTP access on Central Node proxy"
#try {
# Get-QlikProxy -filter "serverNodeConfiguration.Name eq 'Central'" | Update-QlikProxy -AllowHttp 1 | Out-Null
#} catch {
# Write-Log -Message $_.Exception.Message -Severity "Error"
#}
#Start-Sleep -s 10
### Install qlik-poc_com certificate
Write-Log -Message "Install 'qmi.qlik-poc.com' certificate, set thumbsprint and whitelist domain in QS central virtual proxy"
try {
$secpasswd = ConvertTo-SecureString $CertPwd -AsPlainText -Force
$sslCert=Import-PfxCertificate -FilePath C:/provision/wildcard_qmi_qlik-poc_com.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $secpasswd
Update-QlikProxy -SslBrowserCertificateThumbprint $sslCert.Thumbprint -id (Get-QlikProxy).id | Out-Null
Start-Sleep -s 10
Connect-Qlik $($env:COMPUTERNAME) -TrustAllCerts -UseDefaultCredentials | Out-Null
Update-QlikVirtualProxy -id (Get-QlikVirtualProxy -filter "description eq 'Central Proxy (Default)'").id -websocketCrossOriginWhiteList $Hostname | Out-Null
Start-Sleep -s 10
} catch {
Write-Log -Message $_.Exception.Message -Severity "Error"
}

View File

@@ -1,10 +0,0 @@
@echo off
set host_name=localhost
set owner_name=postgres
set PGPASSWORD=Qlik1234
C: && cd "C:\Program Files\Qlik\Sense\Repository\PostgreSQL\9.6\bin" && psql -p 4432 -U %owner_name% -d QSR --command "UPDATE public.\"Users\" SET \"UserDirectory\" = '%COMPUTERNAME%', \"RolesString\" = 'RootAdmin' WHERE \"UserDirectory\" != 'INTERNAL';"
psql -p 4432 -U %owner_name% -d QSR --command "SELECT * FROM public.\"Users\" WHERE \"RolesString\" = 'RootAdmin';"
cd "C:\provision"
@echo off

View File

@@ -1,30 +0,0 @@
Write-Host "Delete any existing WinRM listeners"
winrm delete winrm/config/listener?Address=*+Transport=HTTP 2>$Null
#winrm delete winrm/config/listener?Address=*+Transport=HTTPS 2>$Null
Write-Host "Create a new WinRM listener and configure"
winrm create winrm/config/listener?Address=*+Transport=HTTP
#winrm set winrm/config/winrs "@{MaxMemoryPerShellMB=`"0`"}"
winrm set winrm/config "@{MaxTimeoutms=`"1800000`"}"
winrm set winrm/config/service "@{AllowUnencrypted=`"true`"}"
#winrm set winrm/config/service "@{MaxConcurrentOperationsPerUser=`"12000`"}"
winrm set winrm/config/service/auth "@{Basic=`"true`"}"
winrm set winrm/config/client/auth "@{Basic=`"true`"}"
Write-Host "Configure UAC to allow privilege elevation in remote shells"
$Key = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System'
$Setting = 'LocalAccountTokenFilterPolicy'
Set-ItemProperty -Path $Key -Name $Setting -Value 1 -Force
#Write-Host "turn off PowerShell execution policy restrictions"
#Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Write-Host "Configure and restart the WinRM Service; Enable the required firewall exception"
net stop winrm
net start winrm
#Stop-Service -Name WinRM
#Set-Service -Name WinRM -StartupType Automatic
netsh advfirewall firewall set rule name="Windows Remote Management (HTTP-In)" new action=allow localip=any remoteip=any
#Start-Service -Name WinRM

View File

@@ -1,67 +0,0 @@
variable "prefix" {
default = "QMI"
}
variable "subnet_id" {
}
variable "location" {
}
variable "snapshot_id" {
}
variable "resource_group_name" {
}
variable "vm_type" {
default = "Standard_D4s_v3"
}
variable "managed_disk_type" {
default = "Premium_LRS"
}
variable "disk_size_gb" {
default = "128"
}
variable "admin_username" {
default = "scdemoadmin"
}
variable "initial_password" {
default = null
}
variable "virtual_machine_name" {
default = null
}
variable "user_id" {
default = null
}
variable "provId" {
default = null
}
variable "is_24x7"{
type = bool
default = null
}
variable "shutdownTime"{
default = null
}
variable "startupTime"{
default = null
}
variable "notrename" {
default = null
}

View File

@@ -1,148 +0,0 @@
resource "random_id" "randomMachineId" {
keepers = {
# Generate a new ID only when a new resource group is defined
resource_group = var.resource_group_name
}
byte_length = 2
}
resource "random_password" "password" {
length = 16
special = true
override_special = "_!@"
upper = true
lower = true
min_lower = 2
min_upper = 2
min_special = 2
}
locals {
virtual_machine_name = (var.virtual_machine_name != null)? var.virtual_machine_name : "${var.prefix}-${random_id.randomMachineId.hex}"
admin_username = var.admin_username
admin_password = random_password.password.result
notrename = (var.notrename != null)? "-NotApply" : ""
}
resource "azurerm_managed_disk" "copy" {
name = "Disk-${var.prefix}-${random_id.randomMachineId.hex}"
location = var.location
resource_group_name = var.resource_group_name
storage_account_type = "Premium_LRS"
create_option = "Copy"
source_resource_id = var.snapshot_id
disk_size_gb = var.disk_size_gb
tags = {
"Deployment" = "QMI PoC"
"Cost Center" = "3100"
"QMI_user" = var.user_id != null? var.user_id : null
}
}
module "qmi-nic" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//qmi-nic"
prefix = local.virtual_machine_name
location = var.location
subnet_id = var.subnet_id
resource_group_name = var.resource_group_name
user_id = var.user_id
}
resource "azurerm_virtual_machine" "vm" {
name = local.virtual_machine_name
location = var.location
resource_group_name = var.resource_group_name
network_interface_ids = [ module.qmi-nic.id ]
vm_size = var.vm_type
storage_os_disk {
name = azurerm_managed_disk.copy.name
os_type = "Windows"
managed_disk_id = azurerm_managed_disk.copy.id
managed_disk_type = "Premium_LRS"
create_option = "Attach"
}
os_profile_windows_config {
provision_vm_agent = true
enable_automatic_upgrades = false
winrm {
protocol = "http"
}
}
/*os_profile {
computer_name = local.virtual_machine_name
admin_username = local.admin_username
}*/
tags = {
"Deployment" = "QMI PoC"
"Cost Center" = "3100"
"ProvId" = var.provId != null? var.provId : null
"QMI_user" = var.user_id != null? var.user_id : null
"24x7" = var.is_24x7 == true? "" : null
"ShutdownTime": var.is_24x7 == false? var.shutdownTime : null
"StartupTime": var.is_24x7 == false? var.startupTime : null
}
provisioner "file" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = var.initial_password
port = 5985
https = false
timeout = "10m"
}
source = "${path.module}/scripts"
destination = "C:/tmp/provision"
}
provisioner "remote-exec" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = var.initial_password
port = 5985
https = false
timeout = "10m"
}
inline = [
"powershell.exe -File C:/tmp/provision/bootstrap.ps1",
"powershell.exe -File C:/tmp/provision/password.ps1 -Username ${local.admin_username} -Pass ${local.admin_password}"
]
}
# Rename Computer
provisioner "remote-exec" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = local.admin_password
port = 5985
https = false
timeout = "10m"
}
inline = [
"powershell.exe -File C:/tmp/provision/RenameComputer.ps1 -NewName ${local.virtual_machine_name} ${local.notrename}"
]
on_failure = continue
}
}

View File

@@ -1,14 +0,0 @@
Param(
[string] $NewName,
[switch] $NotApply = $False
)
if ($NotApply){
Write-Host "Not renaming machine"
} else {
Write-Host "Machine is going to be renamed as $NewName"
Rename-Computer -NewName $NewName -Force -Restart
}

View File

@@ -1,30 +0,0 @@
New-Item -ItemType directory -Path C:\Windows\System32\WindowsPowerShell\v1.0\Modules\qmiCLI -force | Out-Null
Copy-Item $PSScriptRoot\qmiCLI.psm1 C:\Windows\System32\WindowsPowerShell\v1.0\Modules\qmiCLI\qmiCLI.psm1 | Out-Null
Import-Module qmiCLI.psm1 | Out-Null
#Importing Utils module
New-Item -ItemType directory -Path C:\Windows\System32\WindowsPowerShell\v1.0\Modules\qmiUtils -force | Out-Null
Copy-Item $PSScriptRoot\qmiUtils.psm1 C:\Windows\System32\WindowsPowerShell\v1.0\Modules\qmiUtils\qmiUtils.psm1 | Out-Null
Import-Module qmiUtils.psm1 | Out-Null
Write-Log "Scripts locations is: $PSScriptRoot"
#Install Chocolatey
#Write-Log "Install Chocolatey"
#Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
### Disable Password policy
secedit /export /cfg c:\secpol.cfg | Out-Null
(Get-Content C:\secpol.cfg).replace("PasswordComplexity = 1", "PasswordComplexity = 0") | Out-File C:\secpol.cfg | Out-Null
secedit /configure /db c:\windows\security\local.sdb /cfg c:\secpol.cfg /areas SECURITYPOLICY | Out-Null
rm -force c:\secpol.cfg -confirm:$false | Out-Null
#Write-Log "Resize Partition C to max size"
#$size = Get-PartitionSupportedSize -DriveLetter C
#Resize-Partition -DriveLetter C -Size $size.SizeMax | Out-Null

View File

@@ -1,12 +0,0 @@
Param(
[string] $Username,
[string] $Pass
)
Import-Module "Carbon"
$secpasswd = ConvertTo-SecureString $Pass -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($Username, $secpasswd)
Install-User -Credential $cred
Write-Log "Done! Setting new password to user $Username"

View File

@@ -1,189 +0,0 @@
<#
Module: QlikCLI
Author: Clint Carr
Byron Ainsworth
Modified by: -
last updated: 10/10/2017
Modification History:
-
Intent: Provide prepackaged commands to facilitate common QMI activities
Dependencies:
-
#>
function Write-Log
{
param (
[Parameter(Mandatory)]
[string]$Message,
[Parameter()]
[ValidateSet('Info','Warn','Error')]
[string]$Severity = 'Info'
)
$line = [pscustomobject]@{
'DateTime' = (Get-Date)
'Severity' = $Severity
'Message' = $Message
}
Write-Host "$($line.DateTime) [$($line.Severity)]: $($line.Message)"
$line | Export-Csv -Path c:\provision\QMIProvision.log -Append -NoTypeInformation
}
Function Backup-QMIAppsSerial
{
param (
[Parameter()]
[string]$Source = 'c:\QlikShare\apps\',
[Parameter()]
[string]$Destination = '\\VBOXSVR\shared-content\apps'
)
Write-Log -Message "Commencing export process for local Qlik Sense Apps repository" -Severity 'Info'
### Get Apps
Write-Log -Message "Identifying eligible local Qlik Sense Apps" -Severity 'Info'
$arrApps = Get-QlikApp | ? {$_.stream.name -ne 'monitoring apps'}
Write-Log -Message "Qlik Sense Apps identified: $($arrApps.Count)" -Severity 'Info'
Foreach($objApp in $arrApps){
If($objApp.Published -eq $True){
If(Test-Path -Path $($Destination + '\' + $objApp.stream.name)){
}
else{
Write-Log -Message "Identified new stream $($objApp.stream.name). Creating central stream repository" -Severity 'Info'
New-Item -ItemType Directory -Path $($Destination + '\' + $objApp.stream.name) -Force
}
$objApp | Export-QlikApp -filename $($Destination + '\' + $($objApp.stream.name) + '\' +$objApp.name + '.qvf')
Write-Log -Message "Qlik Sense Apps exported: $($objApp.Name)" -Severity 'Info'
}else{
$objApp | Export-QlikApp -filename $($Destination + '\' + $objApp.name + '.qvf')
Write-Log -Message "Qlik Sense Apps exported: $($objApp.Name)" -Severity 'Info'
}
}
Write-Log -Message "Concluding export process for local Qlik Sense Apps repository" -Severity 'Info'
}
Function Backup-QMIApps
{
param (
[Parameter()]
[string]$Source = 'c:\QlikShare\apps\',
[Parameter()]
[string]$Destination = '\\VBOXSVR\shared-content\apps'
)
Write-Log -Message "Commencing export process for local Qlik Sense Apps repository" -Severity 'Info'
}
Function Backup-QMIExtensions
{
param (
[Parameter()]
[string]$Source = 'C:\QlikShare\StaticContent\Extensions\',
[Parameter()]
[string]$Destination = '\\VBOXSVR\shared-content\extensions'
)
Write-Log -Message "Commencing export process for Extensions to from local $env:computername to central shared-content repository" -Severity 'Info'
## Verify source directory exists
If (Test-Path $Source){
Write-Log -Message "Confirmed local Extensions repository exists" -Severity 'Info'
Try
{
$arrExtensions = Get-ChildItem -Path $Source | ? {$_.Name -notlike "idevio*"}
foreach($objExtension in $arrExtensions){
Compress-Archive -Path $objExtension.FullName -DestinationPath $($Destination + '\' + $objExtension.name + '.zip' ) -CompressionLevel 'Optimal' -Force
}
#$arrObjects | Copy-Item -Destination $Destination -Recurse -Force -Verbose
Write-Log -Message "Concluding export process for Extensions repository" -Severity 'Info'
}
Catch
{
$_.Exception.Message
$_.Exception.ItemName
Write-Log -Message "Something went wrong with the file transfer. Confirm shared-content is available at $Destination" -Severity 'Error'
}
}else{
Write-Log -Message "Local Extensions repository does not exist. If you have placed your local repository in a location other than $Source you can leverage the Source argument to override" -Severity 'Error'
Exit
}
}
Function Backup-QMIReferenceData
{
param (
[Parameter()]
[string]$Source = 'c:\QlikShare\ReferenceData\',
[Parameter()]
[string]$Destination = '\\VBOXSVR\shared-content\ReferenceData'
)
Write-Log -Message "Commencing export process for ReferenceData to from local $env:computername to central shared-content repository" -Severity 'Info'
## Verify source directory exists
If (Test-Path $Source){
Write-Log -Message "Confirmed local ReferenceData repository exists" -Severity 'Info'
Try
{
$arrObjects = Get-ChildItem -Path $Source
$arrObjects | Copy-Item -Destination $Destination -Recurse -Force -Verbose
Write-Log -Message "Concluding export process for ReferenceData repository" -Severity 'Info'
}
Catch
{
Write-Log -Message "Something went wrong with the file transfer. Confirm shared-content is available at $Destination" -Severity 'Error'
}
}else{
Write-Log -Message "Local ReferenceData repository does not exist. If you have placed your local repository in a location other than $Source you can leverage the Source argument to override" -Severity 'Error'
Exit
}
}
Function Backup-QMIContentLibraries
{
param (
[Parameter()]
[string]$Source = 'C:\QlikShare\StaticContent\Content\',
[Parameter()]
[string]$Destination = '\\VBOXSVR\shared-content\ContentLibrary'
)
Write-Log -Message "Commencing export process for ContentLibraries to from local $env:computername to central shared-content repository" -Severity 'Info'
## Verify source directory exists
If (Test-Path $Source){
Write-Log -Message "Confirmed local ContentLibraries repository exists" -Severity 'Info'
Try
{
$arrObjects = Get-ChildItem -Path $Source
$arrObjects | Copy-Item -Destination $Destination -Recurse -Force -Verbose
Write-Log -Message "Concluding export process for ContentLibraries repository" -Severity 'Info'
}
Catch
{
Write-Log -Message "Something went wrong with the file transfer. Confirm shared-content is available at $Destination" -Severity 'Error'
}
}else{
Write-Log -Message "Local ContentLibraries repository does not exist. If you have placed your local repository in a location other than $Source you can leverage the Source argument to override" -Severity 'Error'
Exit
}
}

View File

@@ -1,92 +0,0 @@
<#
Module: UtilsQMI
Author: Manuel Romero
Clint Car
Modified by: -
last updated: 11/10/2017
Modification History:
-
Intent: One place for common functions across modules we don't want in qmiCLI
Dependencies:
-
#>
Function New-MyCredential
{
param (
[string] $user,
[string] $pass
)
PROCESS {
$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
return New-Object System.Management.Automation.PSCredential ($user, $secpasswd)
}
}
Function CreateOdagLink
{
param (
[string]$odagLinkName,
[string]$selectionAppName,
[string]$detailsAppName,
[string]$sheet2OpenName,
[string]$odagLinkExpression,
[int]$rowsLimit,
[int]$appsLimit,
[string]$retentionTime,
[string]$sheetEmbedName
)
PROCESS {
Trap {
Write-Log -Message "Error in function CreateOdagLink" -Severity "Error"
Write-Log -Message $_.Exception.Message -Severity "Error"
Break
}
Write-Log -Message "Installing NodeJs"
cinst nodejs.install --version 6.4.0 | Out-Null
if ( -Not (Test-Path C:\OdagEnigma) ) {
Write-Log -Message "Unzipping Node EnigmaJS"
Expand-Archive -LiteralPath C:\installation\EnigmaModule.zip -DestinationPath C:\OdagEnigma -Force | Out-Null
}
# Create ODAG Link
Write-Log -Message "Adding ODAG Link"
#$rawOutput = $true
$detailApp = $(Get-QlikApp -filter "name eq '$detailsAppName'").id
$selectionApp = $(Get-QlikApp -filter "name eq '$selectionAppName'").id
$sheetID = $(Invoke-QlikGet "/qrs/app/object" -filter "name eq '$sheet2OpenName' and objectType eq 'sheet'").engineObjectId
$data = (@{"name"=$odagLinkName;
"templateApp"=$detailApp;
"rowEstExpr"=$odagLinkExpression;
"properties"=@{
"rowEstRange"=@(@{"context"="*";"highBound"=$rowsLimit});
"genAppLimit"=@(@{"context"="User_*";"limit"=$appsLimit});
"appRetentionTime"=@(@{"context"="User_*";"retentionTime"=$retentionTime});
"targetSheet"=@(@{"context"="User_*";"sheetId"=$sheetID})};
"selectionApp"=$selectionApp}) | ConvertTo-Json -Compress -Depth 10
$result = $(Invoke-QlikPost "/api/odag/v1/links" $data)
$odagLinkRef = $result.objectDef.id
Write-Log -Message "ODAG link added $odagLinkRef"
$sheetSelectionID = $(invoke-qlikget "/qrs/app/object" -filter "name eq '$sheetEmbedName' and objectType eq 'sheet'").engineObjectId
# EnigmaJS to attach this link to apps and sheet using APIs
C:\OdagEnigma\run.bat $odagLinkRef $odagLinkName $sheetSelectionID $selectionAppName $detailsAppName
return $odagLinkRef
}
}

View File

@@ -1,154 +0,0 @@
resource "random_id" "randomMachineId" {
keepers = {
# Generate a new ID only when a new resource group is defined
resource_group = var.resource_group_name
}
byte_length = 2
}
resource "random_password" "password" {
length = 16
special = true
override_special = "_!@"
upper = true
lower = true
min_lower = 2
min_upper = 2
min_special = 2
}
resource "random_password" "qlikpassword" {
length = 16
special = true
override_special = "_!@"
upper = true
lower = true
min_lower = 2
min_upper = 2
min_special = 2
}
locals {
virtual_machine_name = "${var.prefix}-${random_id.randomMachineId.hex}"
admin_username = var.admin_username
admin_password = random_password.password.result
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "sensorsettings" {
name = "carbonblack-sensorsettings"
key_vault_id = var.key_vault_id
}
module "qmi-nic" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//qmi-nic"
prefix = local.virtual_machine_name
location = var.location
subnet_id = var.subnet_id
resource_group_name = var.resource_group_name
user_id = var.user_id
}
resource "azurerm_virtual_machine" "vm" {
name = local.virtual_machine_name
location = var.location
resource_group_name = var.resource_group_name
network_interface_ids = [module.qmi-nic.id]
vm_size = var.vm_type
delete_os_disk_on_termination = true
delete_data_disks_on_termination = true
storage_image_reference {
id = var.image_reference
}
storage_os_disk {
name = "${local.virtual_machine_name}-osdisk"
caching = "ReadWrite"
create_option = "FromImage"
managed_disk_type = var.managed_disk_type
disk_size_gb = var.disk_size_gb
}
os_profile {
computer_name = local.virtual_machine_name
admin_username = local.admin_username
admin_password = local.admin_password
}
os_profile_windows_config {
provision_vm_agent = true
enable_automatic_upgrades = false
winrm {
protocol = "http"
}
}
provisioner "file" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = local.admin_username
password = local.admin_password
port = 5985
https = false
timeout = "3m"
}
source = "${path.module}/scripts"
destination = "C:/provision"
}
provisioner "remote-exec" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = "qservice"
password = "Qlik1234"
port = 5985
https = false
timeout = "3m"
}
inline = [
"powershell.exe -File C:/provision/resethostname.ps1"
]
}
provisioner "remote-exec" {
connection {
type = "winrm"
host = module.qmi-nic.private_ip_address
user = "qservice"
password = "Qlik1234"
port = 5985
https = false
timeout = "3m"
}
inline = [
"powershell.exe -File C:/provision/qs-post-cfg.ps1 -Hostname ${var.resource_group_name}.qmi.qlik-poc.com -CertPwd ${data.azurerm_key_vault_secret.cert-password.value} -QlikUserPwd ${random_password.qlikpassword.result}",
"powershell.exe -File C:/provision/np-post.ps1"
]
}
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
"ProvId" = var.provId != null? var.provId : null
"QMI_user" = var.user_id != null? var.user_id : null
"24x7" = var.is_24x7 == true? "" : null
"ShutdownTime": var.is_24x7 == false? var.shutdownTime : null
"StartupTime": var.is_24x7 == false? var.startupTime : null
}
}

View File

@@ -1,16 +0,0 @@
Param(
[string] $SensorSettings
)
Write-Log -Message "Installing and configuring Carbon Black"
New-Item C:\provision\sensorsettings.ini | Out-Null
Set-Content C:\provision\sensorsettings.ini $SensorSettings | Out-Null
(Get-Content C:\provision\sensorsettings.ini) -replace ' ',"`r`n" | Set-Content C:\provision\sensorsettings.ini -Force
C:\provision\CarbonBlackClientSetup.exe /S
Write-Log -Message "Carbon Black is configure!"

View File

@@ -1,27 +0,0 @@
Function restartNPServices
{
write-log -Message "Starting NPrinting Services on $env:COMPUTERNAME"
Set-Service -Name QlikNPrintingEngine -StartupType Automatic
Set-Service -Name QlikNPrintingWebEngine -StartupType Automatic
Set-Service -Name QlikNPrintingScheduler -StartupType Automatic
Set-Service -Name QlikNPrintingMessagingService -StartupType Automatic
Set-Service -Name QlikNPrintingRepoService -StartupType Automatic
Set-Service -Name QlikNPrintingLicenseService -StartupType Automatic
Start-Service -InputObject QlikNPrintingRepoService -ErrorAction SilentlyContinue
Start-Service -InputObject QlikNPrintingMessagingService -ErrorAction SilentlyContinue
Start-Service -InputObject QlikNPrintingWebEngine -ErrorAction SilentlyContinue
Start-Service -InputObject QlikNPrintingEngine -ErrorAction SilentlyContinue
Start-Service -InputObject QlikNPrintingScheduler -ErrorAction SilentlyContinue
Start-Service -InputObject QlikNPrintingLicenseService -ErrorAction SilentlyContinue
}
Write-Log -Message "Exporting new certificates"
Export-QlikCertificate -machineNames "localhost" -includeSecretsKey -exportFormat "Windows"
Export-QlikCertificate -machineNames "localhost" -includeSecretsKey -exportFormat "Pem"
Copy-Item "C:\ProgramData\Qlik\Sense\Repository\Exported Certificates\localhost\client.pfx" -Destination "C:\Program Files\NPrintingServer\Settings\SenseCertificates" -Force
restartNPServices

View File

@@ -1,172 +0,0 @@
<#
Module: qs-post-cfg
Author: Clint Carr
Modified by: -
Modification History:
- Fixed connect as user logic (qlik-cli change)
- Added logic to accomodate for Professional/Analyzer or User licenses
- Added a loop into the Connect-Qlik statement to remove an abort error
- Added Logging
- Added comments
- Error checking
- Modified service connection for Qlik Sense from endless loop to a set number of attempts.
- Added a service restart at the end of the Central Node (seems to resolve an issue with April 2018)
last updated: 10/18/2019
Intent: Configure the Qlik Sense environment with applications and Security Rules.
#>
Param(
[string] $Hostname,
[string] $CertPwd,
[string] $QlikUserPwd
)
Import-Module Qlik-Cli
Import-Module "Carbon"
# Helper Functions
# ----------------
function New-Credential($u,$p) {
$secpasswd = ConvertTo-SecureString $p -AsPlainText -Force
return New-Object System.Management.Automation.PSCredential ($u, $secpasswd)
}
Write-Log -Message "Creating Qlik account"
$cred = New-Credential "Qlik" $QlikUserPwd
Install-User -Credential $cred
Write-Log -Message "Starting qs-post-cfg.ps1"
### Waiting for Qlik Sense installation to complete
#-----------
Function restartQse
{
Write-Log "Checking Engine Service has started..."
$qse = get-service QlikSenseEngineService
write-log -Message "The engine is currently $($qse.Status)"
if ($qse.Status -eq "Stopped") {
Write-Log -Message "Starting Qlik Sense Engine and waiting 120 seconds" -Severity "Warn";
Start-Service QlikSenseEngineService ;
Restart-Service QlikSenseServiceDispatcher;
start-sleep -s 120
}
write-log -Message "The engine is currently $($qse.Status)"
}
Function connQSR
{
$i = 1
$statusCode = 0
while ($statusCode -ne 200 -and $i -le 10)
{
try {$statusCode = (Invoke-WebRequest https://$($env:COMPUTERNAME)/qps/user -UseBasicParsing).statusCode }
catch
{
$i++
write-log -Message "QSR on $env:COMPUTERNAME not responding attempt $i of 10..." -Severity "Warn"
start-sleep -s 20
}
}
}
Function restartServices
{
write-log -Message "Restarting Qlik Sense Services on $env:COMPUTERNAME" -Severity "Warn"
Restart-Service QlikSenseRepositoryDatabase -Force
Restart-Service QlikLoggingService -Force
Restart-Service QlikSenseServiceDispatcher -Force
Restart-Service QlikSenseRepositoryService -Force
Restart-Service QlikSenseProxyService -Force
Restart-Service QlikSenseEngineService -Force
Restart-Service QlikSensePrintingService -Force
Restart-Service QlikSenseSchedulerService -Force
}
Function qlikSenseUserAccess
{
$userAccessGroup = (@{name = "License Everyone";} | ConvertTo-Json -Compress -Depth 10)
$licenseId = Invoke-QlikPost "/qrs/License/UserAccessGroup" $userAccessGroup
$systemRuleJson = (@{
name = "Grant Everyone a token";
category = "License";
rule = '((user.name like "*"))';
type = "Custom";
resourceFilter = "License.UserAccessGroup_" + $licenseId.id;
actions = 1;
ruleContext = "QlikSenseOnly";
disabled = $false;
comment = "Rule to set up automatic user access";} | ConvertTo-Json -Compress -Depth 10)
Write-Log -Message "Adding user license rule to grant Everyone Tokens."
try {
Invoke-QlikPost "/qrs/SystemRule" $systemRuleJson | Out-Null
} catch {
Write-Log -Message $_.Exception.Message -Severity "Error"
}
}
Function qlikSenseProfessionalAccess
{
$professionalAccessGroup = (@{name = "License Everyone";} | ConvertTo-Json -Compress -Depth 10)
$licenseId = Invoke-QlikPost "/qrs/License/ProfessionalAccessGroup" $professionalAccessGroup
$systemRuleJson = (@{
name = "Grant Everyone Professional Access";
category = "License";
rule = '((user.name like "*"))';
type = "Custom";
resourceFilter = "License.ProfessionalAccessGroup_" + $licenseId.id;
actions = 1;
ruleContext = "QlikSenseOnly";
disabled = $false;
comment = "Rule to set up automatic user access";} | ConvertTo-Json -Compress -Depth 10)
Write-Log -Message "Adding user license rule to grant Everyone access as Professional."
try {
Invoke-QlikPost "/qrs/SystemRule" $systemRuleJson | Out-Null
} catch {
Write-Log -Message $_.Exception.Message -Severity "Error"
}
}
#-----------
write-log -Message "Waiting 1 minute for Qlik Sense installation to complete"
start-sleep -s 60
### wait for Qlik Sense Proxy service to respond with an HTTP 200 status before proceeding
connQSR
$statusCode = (Invoke-WebRequest https://$($env:COMPUTERNAME)/qps/user -UseBasicParsing).statusCode
if ($statusCode -ne 200)
{
Write-Log -Message "Waiting 25 seconds before next pass" -Severity "Warn"
restartServices
Write-Log -Message "Waiting 45 seconds for Services to ensure they are ready" -Severity "Warn"
start-sleep -s 45
connQSR
}
$statusCode = (Invoke-WebRequest https://$($env:COMPUTERNAME)/qps/user -UseBasicParsing).statusCode
if ($statusCode -ne 200) {
Write-Log -Message "Provisioning failed" -Severity "Error"
Exit
}
Write-Log -Message "Qlik Sense Proxy responding on $env:COMPUTERNAME, status code: $statusCode"
Write-Log -Message "Connecting to Qlik Sense Repository Service on $env:COMPUTERNAME"
restartQse
### Connect to the Qlik Sense Repository Service with Qlik-Cli
do {write-log -Message "Connecting to Qlik Sense Repository"; start-sleep 15}
While( (Connect-Qlik $($env:COMPUTERNAME) -TrustAllCerts -UseDefaultCredentials -ErrorAction SilentlyContinue).length -eq 0 )
### Install qlik-poc_com certificate
Write-Log -Message "Install qlik-poc_com certificate"
try {
$secpasswd = ConvertTo-SecureString $CertPwd -AsPlainText -Force
$sslCert=Import-PfxCertificate -FilePath C:/provision/wildcard_qmi_qlik-poc_com.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $secpasswd
Update-QlikProxy -SslBrowserCertificateThumbprint $sslCert.Thumbprint -id (Get-QlikProxy).id | Out-Null
Start-Sleep -s 10
Update-QlikVirtualProxy -id (Get-QlikVirtualProxy -filter "description eq 'Central Proxy (Default)'").id -websocketCrossOriginWhiteList $Hostname | Out-Null
} catch {
Write-Log -Message $_.Exception.Message -Severity "Error"
}

View File

@@ -1,97 +0,0 @@
Write-Log "Resize Partition C to max size"
$size = Get-PartitionSupportedSize -DriveLetter C
Resize-Partition -DriveLetter C -Size $size.SizeMax
# Helper Functions
# ----------------
function New-Credential($u,$p) {
$secpasswd = ConvertTo-SecureString $p -AsPlainText -Force
return New-Object System.Management.Automation.PSCredential ($u, $secpasswd)
}
$cred = New-Credential "qservice" "Qlik1234"
#import-module "Carbon"
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 0 /f
Set-Service -Name "QlikLoggingService" -StartupType Automatic
Set-Service -Name "QlikSenseServiceDispatcher" -StartupType Automatic
Set-Service -Name "QlikSenseProxyService" -StartupType Automatic
Set-Service -Name "QlikSenseEngineService" -StartupType Automatic
Set-Service -Name "QlikSensePrintingService" -StartupType Automatic
Set-Service -Name "QlikSenseSchedulerService" -StartupType Automatic
Set-Service -Name "QlikSenseRepositoryService" -StartupType Automatic
Set-Service -Name "QlikSenseRepositoryDatabase" -StartupType Automatic
Write-Log "Starting QlikSenseRepositoryDatabase and QlikSenseServiceDispatcher"
Start-Service QlikSenseRepositoryDatabase
Start-Service QlikSenseServiceDispatcher
#Delete certificates
Write-Log "Deleting old certificates"
#Get-ChildItem "$($env:ProgramData)\Qlik\Sense\Repository\Exported Certificates\" | Remove-Item -Recurse
$Certs = Get-ChildItem cert:"CurrentUser\My" | Where-Object { $_.Subject -match 'QlikClient' }
$Certs | ForEach-Object{Remove-Item -path $_.PSPath -recurse -Force}
$Certs = Get-ChildItem cert:"LocalMachine\My" | Where-Object { $_.Subject -match 'GEN-QS' -or $_.Subject -match 'QMI-QS' }
$Certs | ForEach-Object{Remove-Item -path $_.PSPath -recurse -Force}
$Certs = Get-ChildItem cert:"LocalMachine\Root" | Where-Object { $_.Subject -match 'GEN-QS' -or $_.Subject -match 'QMI-QS' }
$Certs | ForEach-Object{Remove-Item -path $_.PSPath -recurse -Force}
Write-Log "Setting new hostname to Host.cfg file"
Write-Log $($env:computername)
$enchostname = [Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes("$($env:computername)"))
Set-Content -Path C:\ProgramData\Qlik\Sense\Host.cfg -Value $enchostname
Write-Log "Recreating Qlik Sense certificates"
# AS if qservice user
Start-Process powershell.exe -ArgumentList "Start-Process cmd.exe -Verb runAs -ArgumentList '/k C:\PROGRA~1\Qlik\Sense\Repository\Repository.exe -bootstrap -standalone -restorehostname'"
#From PS
#Start-Process -FilePath "C:\PROGRA~1\Qlik\Sense\Repository\Repository.exe" -ArgumentList "/bootstrap /standalone /restorehostname" -Verb runAs
#qs
#Start-Process powershell.exe -Credential $cred -ArgumentList "Start-Process cmd.exe -Verb runAs -ArgumentList '/k C:\PROGRA~1\Qlik\Sense\Repository\Repository.exe -bootstrap -standalone -restorehostname'"
$waiting=50
Write-Log "Waiting $waiting secs ..."
Start-Sleep -s $waiting
#- Wait 10 seconds
Write-Log "Restarting Service Dispatcher"
#- Restart Service Dispacher
Restart-Service QlikSenseServiceDispatcher -Force
#- Restart rest of the services
Start-Sleep -s 20
Write-Log "New Certs: CurrentUser\My"
Get-ChildItem cert:"CurrentUser\My"
Write-Log "New Certs: LocalMachine\My"
Get-ChildItem cert:"LocalMachine\My"
Write-Log "New Certs: LocalMachine\Root"
Get-ChildItem cert:"LocalMachine\Root" | Where-Object { $_.Subject -match 'QMI' }
$NewCerts = Get-ChildItem cert:"LocalMachine\Root" | Where-Object { $_.Subject -match 'QMI' }
if ($NewCerts) {
Write-Log "Restarting all Qlik Sense services"
Restart-Service QlikSenseServiceDispatcher -Force
Restart-Service QlikLoggingService -Force
Restart-Service QlikSenseRepositoryService -Force
Restart-Service QlikSenseProxyService -Force
Restart-Service QlikSenseEngineService -Force
Restart-Service QlikSenseSchedulerService -Force
Restart-Service QlikSensePrintingService -Force
Start-Sleep -s 20
Write-Log "Recovering Qlik Sense users"
Start-Process powershell.exe -ArgumentList "Start-Process cmd.exe -Verb runAs -ArgumentList '/c C:\provision\updatedir.bat'"
Restart-Service QlikSenseRepositoryService -Force
} else {
Write-Error "Error: Qlik Sense Certs not recreated!"
throw "Error: Qlik Sense Certs not recreated!"
}
REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 5 /f

View File

@@ -1,10 +0,0 @@
@echo off
set host_name=localhost
set owner_name=postgres
set PGPASSWORD=Qlik1234
C: && cd "C:\Program Files\Qlik\Sense\Repository\PostgreSQL\9.6\bin" && psql -p 4432 -U %owner_name% -d QSR --command "UPDATE public.\"Users\" SET \"UserDirectory\" = '%COMPUTERNAME%', \"RolesString\" = 'RootAdmin' WHERE \"UserDirectory\" != 'INTERNAL';"
psql -p 4432 -U %owner_name% -d QSR --command "SELECT * FROM public.\"Users\" WHERE \"RolesString\" = 'RootAdmin';"
cd "C:\provision"
@echo off

View File

@@ -1,20 +1,10 @@
data "azurerm_key_vault_secret" "compose-license" {
name = "compose-license"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "c4dw" {
name = "compose-datawarehouse-license"
key_vault_id = var.key_vault_id
}
data "azurerm_key_vault_secret" "cert-password" {
name = "star-qmi-qlikpoc-com-password"
key_vault_id = var.key_vault_id
}
locals {
composeLicense = (var.c_version == "c4dw")? data.azurerm_key_vault_secret.c4dw.value : data.azurerm_key_vault_secret.compose-license.value
cert_password = nonsensitive(data.azurerm_key_vault_secret.cert-password.value)
}
# Install and configure Compose
@@ -30,7 +20,7 @@ resource "null_resource" "install" {
https = false
timeout = "30m"
}
source = "${path.module}/scripts"
source = "${path.module}/main"
destination = "C:/provision/compose-install"
}
@@ -46,10 +36,11 @@ resource "null_resource" "install" {
}
inline = [
"powershell.exe -File C:/provision/compose-install/prep-files.ps1",
"powershell.exe -File C:/provision/compose-install/di-compose-getBinary.ps1 -url ${var.download_url}",
"powershell.exe -File C:/provision/compose-install/di-compose-install.ps1 -url ${var.download_url} -version ${var.c_version}",
"powershell.exe -File C:/provision/compose-install/di-compose-setlicense.ps1 -composeLicense \"${local.composeLicense}\" -version ${var.c_version}",
"powershell.exe -File C:/provision/compose-install/di-compose-installQMICertificate.ps1 -CertPwd ${data.azurerm_key_vault_secret.cert-password.value} -version ${var.c_version}",
"powershell.exe -File C:/provision/compose-install/di-compose-install.ps1 -url ${var.download_url}",
"powershell.exe -File C:/provision/compose-install/di-compose-setlicense.ps1 -version ${var.c_version}",
"powershell.exe -File C:/provision/compose-install/di-compose-installQMICertificate.ps1 -CertPwd \"${local.cert_password}\" -version ${var.c_version}",
]
}

View File

@@ -0,0 +1,30 @@
Param(
[string] $repo="qmi-cloud-tf-modules",
[string] $branch="master",
[string] $scenario="compose-install",
[string] $path="scripts"
)
$pathIs="$scenario/$path"
$DownloadUrl="https://gitlab.com/qmi/$repo/-/archive/$branch/$repo-$branch.zip?path=$pathIs"
Write-Host "--- Boostrap# Downloading repository files ($DownloadUrl) from branch ($branch)..."
New-Item -ItemType Directory -Force -Path C:\Temp | Out-Null
$ProgressPreference = 'SilentlyContinue'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).DownloadFile($DownloadUrl, "C:\Temp\$scenario.zip")
Expand-Archive "C:\Temp\$scenario.zip" -DestinationPath "C:\Temp" -Force
New-Item -ItemType Directory -Force -Path C:\Provision | Out-Null
New-Item -ItemType Directory -Force -Path C:\Provision\compose-install | Out-Null
Copy-Item -Path "C:\Temp\$repo-$branch-$scenario-scripts\$scenario\$path\*" -Destination "C:\Provision\compose-install" -Recurse -Force
Remove-Item "C:\Temp\$repo-$branch-$scenario-scripts" -Recurse
Remove-Item "C:\Temp\$scenario.zip" -Recurse

View File

@@ -0,0 +1,7 @@
output "finished" {
value = true
depends_on = [
null_resource.install
]
}

View File

@@ -1,25 +1,20 @@
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-DlgOrder]
Dlg0={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcome-0
Count=5
Dlg1={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicense2Rtf-0
Dlg1={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicenseAgreement-0
Dlg2={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdAskDestPath-0
Dlg3={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdStartCopy-0
Dlg4={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcomeMaint-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-MessageBox-0]
Result=6
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcome-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicense2Rtf-0]
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicenseAgreement-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdAskDestPath-0]
szDir=C:\Program Files\Qlik\Compose\
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdStartCopy-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0

View File

@@ -0,0 +1,25 @@
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-DlgOrder]
Dlg0={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcome-0
Count=5
Dlg1={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicense2Rtf-0
Dlg2={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdAskDestPath-0
Dlg3={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdStartCopy-0
Dlg4={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcomeMaint-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-MessageBox-0]
Result=6
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcome-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicense2Rtf-0]
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdAskDestPath-0]
szDir=C:\Program Files\Qlik\Compose\
Result=1
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdStartCopy-0]
Result=1

View File

@@ -1,20 +1,20 @@
[{AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-DlgOrder]
Dlg0={AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdWelcome-0
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-DlgOrder]
Dlg0={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcome-0
Count=5
Dlg1={AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdLicense2Rtf-0
Dlg2={AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdAskDestPath-0
Dlg3={AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdStartCopy-0
Dlg4={AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdFinish-0
[{AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdWelcome-0]
Dlg1={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicenseAgreement-0
Dlg2={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdAskDestPath-0
Dlg3={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdStartCopy-0
Dlg4={CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdWelcome-0]
Result=1
[{AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdLicense2Rtf-0]
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdLicenseAgreement-0]
Result=1
[{AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdAskDestPath-0]
szDir=C:\Program Files\Attunity\Compose for Data Warehouses\
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdAskDestPath-0]
szDir=C:\Program Files\Qlik\Compose\
Result=1
[{AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdStartCopy-0]
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdStartCopy-0]
Result=1
[{AE6E976D-5485-4F2E-87CC-39CBEF87E47D}-SdFinish-0]
[{CC3EB4FA-1694-4961-93E6-D7F0DA630806}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0

View File

@@ -0,0 +1,21 @@
{
"$type": "ComposeLicense",
"product": "QlikCompose",
"issued_to": "Qlik Internal Use only",
"issued_by": "Attunity US",
"license_type": "EVALUATION",
"serial_no": "85010344",
"expiration_date": "2024-12-31",
"hosts": "",
"product_version": "2023.11",
"notes": "Qlik Internal Use only",
"host_role": "",
"source_db_types": "",
"dwh_type": "*",
"dl_type": "*",
"number_of_dms": "0",
"number_of_developers": "0",
"managed_dwh_size": "0",
"issue_time": "12/5/2023 9:36:23 PM",
"signature": "LnAeWQPSDsQw0quG6h5HxvAdnzerIbW/KwOCYvFeq6T8Tp8i6hxAgnKpeVeqTKNiA3t5ovkvIjBvH5n0JGjG75r4OohWiNLFaWYrSvgf6d/fPzFK/4tgyhdImmbS8dZm3tInY3Y8ZNM+kEGi8Hze2hPoHZGwh5nZMM0eCo2E4Sk="
}

View File

@@ -9,25 +9,36 @@ Intent: Install the selected version of Attunity Replicate
#>
Param(
[string] $url,
[string] $version = "gen2"
[string] $url
)
Import-Module $PSScriptRoot\q-helper.psm1 | Out-Null
$fileName = $url.Substring($url.LastIndexOf("/") + 1)
Write-Host "--- Starting di-compose-install.ps1"
$bin = "$PSScriptRoot\binaries\Attunity"
Write-Host "Binary Path $($bin)"
Write-Host "Starting di-c4dw-install.ps1"
$issFile = "Compose_install.iss"
if ( $version -eq "c4dw" ) {
$issFile = "Compose_install_c4dw.iss"
if ( $url -Match "2021.2" ) {
$issFile="Compose_install_2021.2.0.iss"
}
if ( $url -Match "Attunity_Compose_for_Data_Warehouses" ) {
$issFile="Compose_install_c4dw.iss"
}
Write-Host "Using ISS file: $issFile"
Write-Host $bin\$fileName
if (Test-Path "$($bin)\Compose_silent_x64_install.log") {
Remove-Item -Path "$($bin)\Compose_silent_x64_install.log" -Force
}
If ((Test-Path $bin\$fileName))
{
Write-Host "Installing Attunity Compose from $($bin)\$($fileName)"
@@ -35,20 +46,22 @@ If ((Test-Path $bin\$fileName))
$fileNoExtension = [IO.Path]::GetFileNameWithoutExtension("$bin\$fileName")
Expand-Archive $bin\$fileName -DestinationPath $bin\$fileNoExtension -Force
#Write-Host "Binary decompressed in folder $($bin)\$($fileNoExtension)"
Write-Host "Binary decompressed in folder $($bin)\$($fileNoExtension)"
$exec = Get-ChildItem $bin\$fileNoExtension\*.exe | Select-Object -ExpandProperty Name
#Write-Host "Exec: $($exec)"
$C4DWInstall = "$($bin)\$($fileNoExtension)\$($exec) /s /f1$($PSScriptRoot)\$($issFile) /f2$($bin)\Compose_silent_x64_install.log"
$silentInstall = "$($bin)\$($fileNoExtension)\$($exec) /s /f1$($PSScriptRoot)\$($issFile) /f2$($bin)\Compose_silent_x64_install.log"
Write-Host "Run Compose silent installation : $($C4DWInstall)"
Invoke-Expression $C4DWInstall
Start-Sleep 5
Write-Host "Run Compose silent installation : $($silentInstall)"
Invoke-Expression $silentInstall
while (!(Test-Path "$($bin)\Compose_silent_x64_install.log")) {
Write-Host "[Waiting Compose to be installed] ..."
Start-Sleep 2
Start-Sleep 4
}
$C4DWResults = Get-IniFile "$($bin)\Compose_silent_x64_install.log"
$testResult = $C4DWResults.ResponseResult.ResultCode
$resultLogs = Get-IniFile "$($bin)\Compose_silent_x64_install.log"
$testResult = $resultLogs.ResponseResult.ResultCode
Write-Host "Installation return code : $($testResult)"
}

View File

@@ -6,23 +6,28 @@ Param(
try {
Write-Host "Install qmi_qlik-poc_com certificate on Windows"
$ProgressPreference = 'SilentlyContinue'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
(New-Object System.Net.WebClient).DownloadFile("https://gitlab.com/qmi/qmi-cloud-tf-modules/-/raw/master/qmicerts/wildcard_qmi_qlik-poc_com.pfx", "$PSScriptRoot\wildcard_qmi_qlik-poc_com.pfx")
$secpasswd = ConvertTo-SecureString $CertPwd -AsPlainText -Force
$sslCert = Import-PfxCertificate -FilePath $PSScriptRoot/wildcard_qmi_qlik-poc_com.pfx -CertStoreLocation Cert:\LocalMachine\My -Password $secpasswd
$thumb=$($sslCert.Thumbprint)
Write-Host "Set SSL qmi_qlik-poc_com for Compose"
if ( $version -eq "gen2" ) {
Stop-Service QlikCompose
Start-Process -FilePath "C:\Program Files\Qlik\Compose\bin\ComposeCtl.exe" -ArgumentList "certificate clean" -Wait -NoNewWindow
netsh http add sslcert ipport=0.0.0.0:443 certhash=$thumb appid='{4dc3e181-e14b-4a21-b022-59fc669b0914}'
Start-Service QlikCompose
} else {
if ( $version -eq "c4dw" ) {
Stop-Service AttunityComposeForDataWarehouses
Start-Process -FilePath "C:\Program Files\Attunity\Compose for Data Warehouses\bin\ComposeCtl.exe" -ArgumentList "certificate clean" -Wait -NoNewWindow
netsh http add sslcert ipport=0.0.0.0:443 certhash=$thumb appid='{4dc3e181-e14b-4a21-b022-59fc669b0914}'
Start-Service AttunityComposeForDataWarehouses
} else {
Stop-Service QlikCompose
Start-Process -FilePath "C:\Program Files\Qlik\Compose\bin\ComposeCtl.exe" -ArgumentList "certificate clean" -Wait -NoNewWindow
netsh http add sslcert ipport=0.0.0.0:443 certhash=$thumb appid='{4dc3e181-e14b-4a21-b022-59fc669b0914}'
Start-Service QlikCompose
}

View File

@@ -9,14 +9,10 @@ Intent: Setting the DBs
#>
Param(
[string] $composeLicense,
[string] $version = 'gen2'
)
Write-Host "ComposeLicenseJSON"
Write-Host $composeLicense
Set-Content $PSScriptRoot\compose-license.txt $composeLicense
Write-Host "--- Setting Compose License"
# TODO set license
$bin = "C:\Program Files\Qlik\Compose\bin\"
@@ -25,11 +21,22 @@ if ( $version -eq "c4dw" ) {
}
$bin = $bin -replace ' ','` '
Write-Host "Connect to Compose"
$cmd = "$($bin)ComposeCli.exe connect"
Write-Host "--- Connect to Compose: $($cmd)"
$cmd = "$($bin)ComposeCli.exe connect"
Invoke-Expression $cmd
Write-Host "Apply Compose License"
$cmd = "$($bin)ComposeCli.exe register_license --req @$PSScriptRoot\compose-license.txt"
Start-Sleep 5
if ( $version -eq "2022.2.0" -or $version -eq "c4dw") {
# Old way
$cmd = "$($bin)ComposeCli.exe register_license --req @$PSScriptRoot\compose-license.txt"
} else {
# New way
$cmd = "$($bin)ComposeCli.exe register_license --infile $PSScriptRoot\compose-license.txt"
}
Write-Host "Apply Compose License: $($cmd)"
Invoke-Expression $cmd
Start-Sleep 5

View File

@@ -11,7 +11,8 @@ variable "vm_admin_password" {
}
variable "download_url" {
default = "https://da3hntz84uekx.cloudfront.net/QlikReplicate/7.0.0/5/_MSI/AttunityReplicate_7.0.0.514_X64.zip"
//default = "https://da3hntz84uekx.cloudfront.net/QlikCompose/2021.8.0/139/_MSI/Qlik_Compose_2021.8.0.139.zip"
default = "https://github.com/qlik-download/compose/releases/download/v2021.8.0.465/Qlik_Compose_2021.8.0.465.zip"
}
variable "key_vault_id" {
@@ -21,4 +22,8 @@ variable "key_vault_id" {
variable "c_version" {
default = "gen2"
description = "'c4dw' or 'gen2'"
}
variable "trigger_done" {
default = null
}

146
databases/aws-emr/main.tf Normal file
View File

@@ -0,0 +1,146 @@
terraform {
required_version = ">= 1.1"
required_providers {
aws = {
source = "hashicorp/aws"
}
}
}
module "s3_bucket" {
source = "terraform-aws-modules/s3-bucket/aws"
version = "~> 3.0"
bucket_prefix = "qmi-bucket-${var.provision_id}"
# Allow deletion of non-empty bucket
# Example usage only - not recommended for production
force_destroy = true
attach_deny_insecure_transport_policy = true
attach_require_latest_tls_policy = true
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
server_side_encryption_configuration = {
rule = {
apply_server_side_encryption_by_default = {
sse_algorithm = "AES256"
}
}
}
tags = {
QMI_user = var.user_id
ProvID = var.provision_id
Name = "qmi-emr-${var.provision_id}"
Owner = var.user_id
}
}
module "emr" {
source = "terraform-aws-modules/emr/aws"
name = var.provision_id
release_label = "emr-6.11.0"
applications = ["spark", "hadoop", "hive", "hue"]
auto_termination_policy = {
idle_timeout = 3600
}
bootstrap_action = {
example = {
name = "Just an example",
path = "file:/bin/echo",
args = ["Hello World!"]
}
}
configurations_json = jsonencode([
{
"classification" : "spark-env",
"configurations" : [
{
"classification" : "export",
"properties" : {
"JAVA_HOME" : "/usr/lib/jvm/java-1.8.0"
}
}
],
"properties" : {}
},
{
"classification": "hive-site",
"properties": {
"hive.support.concurrency": "true",
"hive.exec.dynamic.partition.mode": "nonstrict",
"hive.txn.manager": "org.apache.hadoop.hive.ql.lockmgr.DbTxnManager"
}
}
])
master_instance_group = {
name = "master-group"
instance_count = 1
instance_type = "m5.xlarge"
}
core_instance_group = {
name = "core-group"
instance_count = 1
instance_type = "c4.large"
}
task_instance_group = {
name = "task-group"
instance_count = 1
instance_type = "c5.xlarge"
bid_price = "0.1"
ebs_config = {
size = 64
type = "gp3"
volumes_per_instance = 1
}
ebs_optimized = true
}
ebs_root_volume_size = 64
ec2_attributes = {
# Instance groups only support one Subnet/AZ
# Subnets should be private subnets and tagged with
# { "for-use-with-amazon-emr-managed-policies" = true }
subnet_id = var.subnet_ids_us[0]
}
vpc_id = var.vpc_id_us
list_steps_states = ["PENDING", "RUNNING", "CANCEL_PENDING", "CANCELLED", "FAILED", "INTERRUPTED", "COMPLETED"]
log_uri = "s3://${module.s3_bucket.s3_bucket_id}/"
scale_down_behavior = "TERMINATE_AT_TASK_COMPLETION"
step_concurrency_level = 3
termination_protection = false
visible_to_all_users = true
is_private_cluster = false
#create_service_iam_role = false
#service_iam_role_arn = "arn:aws:iam::192018133564:role/service-role/AmazonEMR-ServiceRole-20230622T122656"
#create_iam_instance_profile = false
#iam_instance_profile_name = "AmazonEMR-InstanceProfile-20230622T122640"
tags = {
Terraform = "true"
Environment = "dev"
QMI_user = var.user_id
Owner = var.user_id
ProvID = var.provision_id
Name = "qmi-emr-${var.provision_id}"
}
}

View File

@@ -0,0 +1,15 @@
output "s3_bucket" {
value = module.qmi-s3-bucket.bucket.s3_bucket_id
}
output "s3_iam_name" {
value = module.qmi-s3-bucket.iam_name
}
output "s3_iam_access_key" {
value = module.qmi-s3-bucket.iam_access_key
}
output "s3_iam_access_secret" {
value = module.qmi-s3-bucket.iam_access_secret
}

View File

@@ -0,0 +1,34 @@
variable "region" {
default = "us-east-1"
}
variable "provision_id" {
}
variable "user_id" {
}
variable "vpc_id_ap" {
default = "vpc-22ee2844"
}
variable "vpc_id_eu" {
default = "vpc-73f0500a"
}
variable "vpc_id_us" {
default = "vpc-c079f5bd"
}
variable "subnet_ids_ap" {
default = ["subnet-658aec3c", "subnet-e030eba8", "subnet-94309bf2"]
}
variable "subnet_ids_eu" {
default = ["subnet-4d441b17", "subnet-95c22fde", "subnet-70938116"]
}
variable "subnet_ids_us" {
default = ["subnet-4d26552b", "subnet-0414685b", "subnet-c97f7c84", "subnet-7f695c71", "subnet-96acd2b7", "subnet-88ab2cb9"]
}

View File

@@ -0,0 +1,119 @@
terraform {
required_version = ">= 0.13"
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 3.69.0"
}
}
}
locals {
myRegex = "/[^[:alpha:]]/"
splitLower = split(" ", lower(var.user_id))
np0 = replace(element(local.splitLower,0), local.myRegex, "")
np1 = replace(element(local.splitLower,1), local.myRegex, "")
container_n1 = substr(local.np0, 0, 3)
container_n2 = substr(local.np1, 0, 1)
container_n3 = substr(strrev(local.np1), 0, 1)
scnamelower = "${local.container_n1}${local.container_n2}${local.container_n3}"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
ProvID = var.provision_id
Name = "qmi-${var.provision_id}"
}
}
resource "aws_kinesis_stream" "attrep_apply_exceptions" {
name = "${local.scnamelower}.attrep_apply_exceptions"
shard_count = 1
/*stream_mode_details {
stream_mode = "PROVISIONED"
}*/
tags = local.tags
}
resource "aws_kinesis_stream" "semployees" {
name = "${local.scnamelower}.EMPLOYEES"
shard_count = 3
/*stream_mode_details {
stream_mode = "PROVISIONED"
}*/
tags = local.tags
}
resource "aws_kinesis_stream" "sjobs" {
name = "${local.scnamelower}.JOBS"
shard_count = 3
/*stream_mode_details {
stream_mode = "PROVISIONED"
}*/
tags = local.tags
}
resource "aws_kinesis_stream" "metadata" {
name = "${local.scnamelower}.metadata"
shard_count = 1
/*stream_mode_details {
stream_mode = "PROVISIONED"
}*/
tags = local.tags
}
module "iam_user" {
source = "terraform-aws-modules/iam/aws//modules/iam-user"
version = "~> 3.0"
name = "qmi-user-${var.provision_id}"
force_destroy = true
create_iam_user_login_profile = false
#pgp_key = "keybase:test"
password_reset_required = false
tags = local.tags
}
resource "aws_iam_user_policy" "kinesis_pol" {
name = "kinesis_policy_${module.iam_user.this_iam_user_name}"
user = module.iam_user.this_iam_user_name
# Terraform's "jsonencode" function converts a
# Terraform expression result to valid JSON syntax.
policy = jsonencode({
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "kinesis:*",
"Resource": "*"
}
]
})
}

View File

@@ -0,0 +1,27 @@
output "arn_metadata" {
value = aws_kinesis_stream.metadata.arn
}
output "arn_employees" {
value = aws_kinesis_stream.semployees.arn
}
output "arn_jobs" {
value = aws_kinesis_stream.sjobs.arn
}
output "arn_attrep_apply_exceptions" {
value = aws_kinesis_stream.attrep_apply_exceptions.arn
}
output "iam_name" {
value = module.iam_user.this_iam_user_name
}
output "iam_access_key" {
value = module.iam_user.this_iam_access_key_id
}
output "iam_access_secret" {
value = nonsensitive(module.iam_user.this_iam_access_key_secret)
}

View File

@@ -0,0 +1,10 @@
variable "region" {
default = "us-east-1"
}
variable "provision_id" {
}
variable "user_id" {
}

View File

@@ -1,61 +1,73 @@
terraform {
required_version = ">= 0.13"
required_version = ">= 0.14"
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 3.49.0"
}
}
}
provider "aws" {
region = var.region
access_key = var.aws_provider_access_key
secret_key = var.aws_provider_access_secret
alias = "myaws"
resource "random_password" "password" {
length = 16
special = true
override_special = "_!"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
locals {
provid5 = substr(var.provision_id, 0, 5)
aurora = (var.engine == "aurora-mysql") ? true : (var.engine == "aurora-postgresql") ? true : false
vpc_id = (var.region == "eu-west-1") ? var.vpc_id_eu : (var.region == "us-east-1") ? var.vpc_id_us : var.vpc_id_ap
subnet_ids = (var.region == "eu-west-1") ? var.subnet_ids_eu : (var.region == "us-east-1") ? var.subnet_ids_us : var.subnet_ids_ap
port = (var.engine == "oracle-se2") ? "1521" : (var.engine == "postgres") ? "5432" : (var.engine == "aurora-postgresql") ? "5432" : (var.engine == "sqlserver-ex") ? "1433" : "3306"
name = (var.engine == "sqlserver-ex") ? null : (var.engine == "oracle-se2") ? "ora${local.provid5}" : "qmi${var.provision_id}"
license = (local.aurora == true) ? "general-public-license" : (var.engine == "mariadb") ? "general-public-license" : (var.engine == "postgres") ? "postgresql-license" : (var.engine == "mysql") ? "general-public-license" : "license-included"
engine_version = (var.engine == "oracle-se2") ? "19.0.0.0.ru-2021-04.rur-2021-04.r1" : (var.engine == "postgres") ? "13.3" : (var.engine == "mysql") ? "8.0.25" : (var.engine == "aurora-postgresql") ? "12.6" : (var.engine == "aurora-mysql") ? "5.7.mysql_aurora.2.10.0" : (var.engine == "sqlserver-ex") ? "15.00.4073.23.v1" : "10.5" #mariaDB
major_engine_version = (var.engine == "oracle-se2") ? "19" : (var.engine == "postgres") ? "13" : (var.engine == "mysql") ? "8.0" : (var.engine == "aurora-postgresql") ? "12" : (var.engine == "aurora-mysql") ? "5.7" : (var.engine == "sqlserver-ex") ? "15.00" : "10.5" #mariaDB
family = (var.engine == "oracle-se2") ? "oracle-se2-19" : (var.engine == "postgres") ? "postgres13" : (var.engine == "mysql") ? "mysql8.0" : (var.engine == "aurora-postgresql") ? "aurora-postgresql12" : (var.engine == "aurora-mysql") ? "aurora-mysql5.7" : (var.engine == "sqlserver-ex") ? "sqlserver-ex-15.0" : "mariadb10.5" #mariaDB
port = var.port[var.engine]
engine_version = var.engine_version[var.engine]
major_engine_version = var.major_engine_version[var.engine]
family = var.family[var.engine]
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
ProvID = var.provision_id
Name = "qmi-${var.provision_id}"
Owner = var.user_id
}
is_postgres = length(regexall("postgres", local.family)) > 0 ? true : false
is_mysql = length(regexall("mysql", local.family)) > 0 ? true : false
}
module "security_group" {
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
module "security_group_2" {
# SGs created here as Ports differ per Engine. Only Azure Firewall IPs added for now.
source = "terraform-aws-modules/security-group/aws"
version = "~> 4.3"
providers = {
aws = aws.myaws
}
name = "${var.provision_id}-SG"
description = "${var.provision_id}-SG"
name = "${var.provision_id}-SG2"
description = "${var.provision_id}-SG2"
vpc_id = local.vpc_id
# ingress
ingress_cidr_blocks = ["52.249.189.38/32", "13.67.39.86/32", "20.67.110.207/32", "14.98.59.168/29", "182.74.33.8/29", "188.65.156.32/28", "212.73.252.96/29", "194.90.96.176/29", "213.57.84.160/29", "4.4.97.104/29", "206.196.17.32/27"]
ingress_cidr_blocks = module.fw-ips.cidr_blocks_others
ingress_with_cidr_blocks = [
{
@@ -69,7 +81,50 @@ module "security_group" {
# egress
egress_cidr_blocks = ["52.249.189.38/32", "13.67.39.86/32", "20.67.110.207/32", "14.98.59.168/29", "182.74.33.8/29", "188.65.156.32/28", "212.73.252.96/29", "194.90.96.176/29", "213.57.84.160/29", "4.4.97.104/29", "206.196.17.32/27"]
egress_cidr_blocks = module.fw-ips.cidr_blocks_others
egress_with_cidr_blocks = [
{
from_port = local.port
to_port = local.port
protocol = "tcp"
description = "RDS"
},
]
tags = local.tags
}
module "security_group" {
# SGs created here as Ports differ per Engine. Only Azure Firewall IPs added for now.
source = "terraform-aws-modules/security-group/aws"
version = "~> 4.3"
name = "${var.provision_id}-SG"
description = "${var.provision_id}-SG"
vpc_id = local.vpc_id
# ingress
ingress_cidr_blocks = module.fw-ips.cidr_blocks
ingress_with_cidr_blocks = [
{
from_port = local.port
to_port = local.port
protocol = "tcp"
description = "RDS"
},
]
# egress
egress_cidr_blocks = module.fw-ips.cidr_blocks
egress_with_cidr_blocks = [
{
@@ -86,13 +141,9 @@ module "security_group" {
module "common_rds_instance" {
source = "terraform-aws-modules/rds/aws"
version = "~> 3.3"
version = "= 6.1.1"
count = local.aurora ? 0 : 1
providers = {
aws = aws.myaws
}
count = local.aurora? 0 : 1
identifier = "${var.engine}${var.provision_id}"
@@ -102,62 +153,174 @@ module "common_rds_instance" {
major_engine_version = local.major_engine_version # DB option group
instance_class = var.instance_size
allocated_storage = var.storage
storage_encrypted = (var.engine == "sqlserver-ex")? false : true
license_model = local.license
name = local.name
db_name = local.name
username = "qmirdsuser"
create_random_password = true
random_password_length = 12
password = random_password.password.result
manage_master_user_password = false
port = local.port
multi_az = false
subnet_ids = local.subnet_ids
vpc_security_group_ids = [module.security_group.security_group_id]
vpc_security_group_ids = [
module.security_group.security_group_id,
module.security_group_2.security_group_id
]
publicly_accessible = true
maintenance_window = "Mon:00:00-Mon:03:00"
backup_window = "03:00-06:00"
backup_retention_period = 0
backup_retention_period = 1
skip_final_snapshot = true
deletion_protection = false
parameters = local.is_postgres? [
{
apply_method = "pending-reboot"
name = "rds.logical_replication"
value = 1
},
{
apply_method = "pending-reboot"
name = "max_wal_senders"
value = 10
},
{
apply_method = "pending-reboot"
name = "max_replication_slots"
value = 10
}
] : local.is_mysql? [{
name = "binlog_format"
value = "row"
}]: []
tags = local.tags
}
resource "aws_rds_cluster_parameter_group" "pg-postgres" {
count = var.engine == "aurora-postgresql"? 1 : 0
name = "rds-cluster-pg-${var.provision_id}"
family = "aurora-postgresql14"
description = "RDS aurora-postgresql14 cluster parameter group"
parameter {
apply_method = "pending-reboot"
name = "rds.logical_replication"
value = 1
}
parameter {
apply_method = "pending-reboot"
name = "max_wal_senders"
value = 10
}
parameter {
apply_method = "pending-reboot"
name = "max_replication_slots"
value = 10
}
}
resource "aws_rds_cluster_parameter_group" "pg-mysql" {
count = var.engine == "aurora-mysql"? 1 : 0
name = "rds-cluster-pg-${var.provision_id}"
family = "aurora-mysql8.0"
description = "RDS aurora-mysql8.0 cluster parameter group"
parameter {
apply_method = "pending-reboot"
name = "binlog_format"
value = "row"
}
}
module "aurora_rds_instance" {
depends_on = [
aws_rds_cluster_parameter_group.pg-postgres,
aws_rds_cluster_parameter_group.pg-mysql
]
source = "terraform-aws-modules/rds-aurora/aws"
version = "~> 5.2"
version = "~> 8.3.1"
count = local.aurora ? 1 : 0
providers = {
aws = aws.myaws
}
count = local.aurora? 1 : 0
name = local.name
engine = var.engine
engine_version = local.engine_version
instance_type = var.instance_size
instance_class = var.instance_size
apply_immediately = true
database_name = local.name
instances = { 1 = {} }
autoscaling_enabled = true
autoscaling_min_capacity = 1
autoscaling_max_capacity = 3
vpc_id = local.vpc_id
subnets = local.subnet_ids
create_security_group = false
vpc_security_group_ids = [module.security_group.security_group_id]
vpc_security_group_ids = [
module.security_group.security_group_id,
module.security_group_2.security_group_id
]
port = local.port
publicly_accessible = true
username = "qmirdsuser"
create_random_password = true
master_username = "qmirdsuser"
manage_master_user_password = false
master_password = random_password.password.result
create_db_subnet_group = true
backup_retention_period = 0
backup_retention_period = 1
skip_final_snapshot = true
deletion_protection = false
tags = local.tags
db_cluster_parameter_group_name = "rds-cluster-pg-${var.provision_id}"
}
locals {
type = (var.engine == "mysql" || var.engine == "mariadb")? "mysql" : (var.engine == "postgres" || var.engine == "aurora-postgres")? "postgres" : (var.engine == "sqlserver-ex")? "mssql" : null
port4dummy = (local.aurora)? module.aurora_rds_instance[0].cluster_port : module.common_rds_instance[0].db_instance_port
host = (local.aurora)? "${module.aurora_rds_instance[0].cluster_endpoint}:${local.port4dummy}" : module.common_rds_instance[0].db_instance_endpoint
username = (local.aurora)? nonsensitive(module.aurora_rds_instance[0].cluster_master_username) : nonsensitive(module.common_rds_instance[0].db_instance_username)
password = nonsensitive(random_password.password.result)
database = (var.engine == "postgres" || var.engine == "aurora-postgres")? "postgres" : local.name
}
module "dummy-data" {
count = var.dummydata != null && local.type != null? 1 : 0
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/dummy"
type = local.type
host = local.host
username = local.username
password = local.password
database = local.database
}

View File

@@ -1,21 +1,31 @@
output "db_username" {
description = "The master username for the database"
value = local.aurora ? module.aurora_rds_instance[0].rds_cluster_master_username : module.common_rds_instance[0].db_instance_username
sensitive = true
value = (local.aurora)? nonsensitive(module.aurora_rds_instance[0].cluster_master_username) : nonsensitive(module.common_rds_instance[0].db_instance_username)
}
output "db_instance_password" {
description = "The database password (this password may be old, because Terraform doesn't track it after initial creation)"
value = local.aurora ? module.aurora_rds_instance[0].rds_cluster_master_password : module.common_rds_instance[0].db_instance_password
sensitive = true
value = nonsensitive(random_password.password.result)
}
output "db_instance_port" {
description = "The database port"
value = local.aurora ? module.aurora_rds_instance[0].rds_cluster_port : module.common_rds_instance[0].db_instance_port
value = (local.aurora)? module.aurora_rds_instance[0].cluster_port : module.common_rds_instance[0].db_instance_port
}
output "db_instance_endpoint" {
description = "The connection endpoint"
value = local.aurora ? module.aurora_rds_instance[0].rds_cluster_endpoint : module.common_rds_instance[0].db_instance_endpoint
value = (local.aurora)? module.aurora_rds_instance[0].cluster_endpoint : module.common_rds_instance[0].db_instance_endpoint
}
output "db_instance_id" {
value = (local.aurora)? null : "${var.engine}${var.provision_id}"
}
output "db_instance_name" {
value = local.name
}
output "dummy_data_databases_available" {
value = var.dummydata != null && local.type != null? module.dummy-data[0].dbs : null
}

View File

@@ -1,9 +1,3 @@
variable "aws_provider_access_key" {
}
variable "aws_provider_access_secret" {
}
variable "region" {
default = "us-east-1"
}
@@ -44,21 +38,6 @@ variable "engine" {
description = "Accepted values are mysql, sqlserver-ex, postgres, oracle-se2, aurora-mysql, aurora-postgresql, mariadb"
}
variable "engine_version" {
default = "8.0.25"
description = "Not currently used"
}
variable "major_eng" {
default = "8.0"
description = "Not currently used"
}
variable "family" {
default = "mysql8.0"
description = "Not currently used"
}
variable "instance_size" {
default = "db.t3.large"
}
@@ -66,3 +45,68 @@ variable "instance_size" {
variable "storage" {
default = "20"
}
variable "engine_version" {
type = map
default = {
"mysql" = "8.0.32"
"postgres" = "14.9"
"oracle-se2" = "19.0.0.0.ru-2023-04.rur-2023-04.r1"
"sqlserver-ex" = "15.00.4236.7.v1"
"mariadb" = "10.5"
"aurora-mysql" = "8.0.mysql_aurora.3.05.2" #"5.7.mysql_aurora.2.11.2"
"aurora-postgresql" = "14.9"
}
}
variable "major_engine_version" {
type = map
default = {
"mysql" = "8.0"
"postgres" = "14"
"oracle-se2" = "19"
"sqlserver-ex" = "15.00"
"mariadb" = "10.5"
# for script compatibility only
"aurora-mysql" = "not_used"
"aurora-postgresql" = "not_used"
}
}
variable "family" {
type = map
default = {
"mysql" = "mysql8.0"
"postgres" = "postgres14"
"oracle-se2" = "oracle-se2-19"
"sqlserver-ex" = "sqlserver-ex-15.0"
"mariadb" = "mariadb10.5"
# for script compatibility only
"aurora-mysql" = "not_used"
"aurora-postgresql" = "not_used"
}
}
variable "port" {
type = map
default = {
"mysql" = "3306"
"postgres" = "5432"
"oracle-se2" = "1521"
"sqlserver-ex" = "1433"
"mariadb" = "3306"
"aurora-mysql" = "3306"
"aurora-postgresql" = "5432"
}
}
variable "dummydata" {
default = null
}

View File

@@ -0,0 +1,177 @@
terraform {
required_version = ">= 0.14"
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 3.49.0"
}
}
}
resource "random_password" "password" {
length = 16
special = true
override_special = "_!"
min_numeric = 1
upper = true
lower = true
numeric = true
min_lower = 2
min_upper = 2
min_special = 2
}
locals {
s3_prefix = "redshift/qmi-${var.provision_id}"
provid5 = substr(var.provision_id, 0, 5)
vpc_id = (var.region == "eu-west-1") ? var.vpc_id_eu : (var.region == "us-east-1") ? var.vpc_id_us : var.vpc_id_ap
subnet_ids = (var.region == "eu-west-1") ? var.subnet_ids_eu : (var.region == "us-east-1") ? var.subnet_ids_us : var.subnet_ids_ap
port = "5439"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
ProvID = var.provision_id
Name = "qmi-${var.provision_id}"
Owner = var.user_id
}
}
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
module "security_group" {
# SGs created here as Ports differ per Engine. Only Azure Firewall IPs added for now.
source = "terraform-aws-modules/security-group/aws"
version = "~> 4.3"
name = "${var.provision_id}-SG"
description = "${var.provision_id}-SG"
vpc_id = local.vpc_id
# ingress
ingress_cidr_blocks = module.fw-ips.cidr_blocks
ingress_with_cidr_blocks = [
{
from_port = local.port
to_port = local.port
protocol = "tcp"
description = "Redshift"
},
]
# egress
egress_cidr_blocks = module.fw-ips.cidr_blocks
egress_with_cidr_blocks = [
{
from_port = local.port
to_port = local.port
protocol = "tcp"
description = "Redshift"
},
]
tags = local.tags
}
module "security_group_2" {
# SGs created here as Ports differ per Engine. Only Azure Firewall IPs added for now.
source = "terraform-aws-modules/security-group/aws"
version = "~> 4.3"
name = "${var.provision_id}-SG2"
description = "${var.provision_id}-SG2"
vpc_id = local.vpc_id
# ingress
ingress_cidr_blocks = module.fw-ips.cidr_blocks_others
ingress_with_cidr_blocks = [
{
from_port = local.port
to_port = local.port
protocol = "tcp"
description = "Redshift"
},
]
# egress
egress_cidr_blocks = module.fw-ips.cidr_blocks_others
egress_with_cidr_blocks = [
{
from_port = local.port
to_port = local.port
protocol = "tcp"
description = "Redshift"
},
]
tags = local.tags
}
module "qmi-s3-bucket" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//s3-bucket"
provision_id = var.provision_id
region = var.region
user_id = var.user_id
}
module "redshift" {
source = "terraform-aws-modules/redshift/aws"
version = "~> 5.0.0"
cluster_identifier = "qmi-${var.provision_id}"
node_type = "dc2.large" #"dc1.large"
number_of_nodes = 1
database_name = var.cluster_database_name
master_username = var.cluster_master_username
create_random_password = false
master_password = random_password.password.result
# Group parameters
#wlm_json_configuration = "[{\"query_concurrency\": 5}]"
# DB Subnet Group Inputs
subnet_ids = local.subnet_ids
vpc_security_group_ids = [
module.security_group.security_group_id,
module.security_group_2.security_group_id
]
publicly_accessible = true
/*logging = {
enable = true
bucket_name = module.qmi-s3-bucket.bucket.s3_bucket_id
s3_key_prefix = local.s3_prefix
}*/
# IAM Roles
#cluster_iam_roles = ["arn:aws:iam::225367859851:role/developer"]
tags = local.tags
}

View File

@@ -0,0 +1,47 @@
output "redshift_cluster_id" {
description = "The availability zone of the RDS instance"
value = module.redshift.cluster_id
}
output "redshift_cluster_endpoint" {
description = "Redshift endpoint"
value = module.redshift.cluster_endpoint
}
output "redshift_cluster_hostname" {
description = "Redshift hostname"
value = module.redshift.cluster_hostname
}
output "redshift_cluster_port" {
description = "Redshift port"
value = module.redshift.cluster_port
}
output "redshift_cluster_database_name" {
value = module.redshift.cluster_database_name
}
output "redshift_cluster_master_username" {
value = var.cluster_master_username
}
output "redshift_cluster_master_password" {
value = nonsensitive(random_password.password.result)
}
output "s3_bucket_name" {
value = module.qmi-s3-bucket.bucket.s3_bucket_id
}
output "s3_bucket_region" {
value = module.qmi-s3-bucket.bucket.s3_bucket_region
}
output "s3_iam_user_access_key" {
value = module.qmi-s3-bucket.iam_access_key
}
output "s3_iam_user_access_secret" {
value = module.qmi-s3-bucket.iam_access_secret
}

View File

@@ -0,0 +1,42 @@
variable "region" {
default = "us-east-1"
}
variable "provision_id" {
}
variable "user_id" {
}
variable "vpc_id_ap" {
default = "vpc-22ee2844"
}
variable "vpc_id_eu" {
default = "vpc-73f0500a"
}
variable "vpc_id_us" {
default = "vpc-c079f5bd"
}
variable "subnet_ids_ap" {
default = ["subnet-658aec3c", "subnet-e030eba8", "subnet-94309bf2"]
}
variable "subnet_ids_eu" {
default = ["subnet-4d441b17", "subnet-95c22fde", "subnet-70938116"]
}
variable "subnet_ids_us" {
default = ["subnet-4d26552b", "subnet-0414685b", "subnet-c97f7c84", "subnet-7f695c71", "subnet-96acd2b7", "subnet-88ab2cb9"]
}
variable "cluster_database_name" {
default = "qmi_rs_db"
}
variable "cluster_master_username" {
default = "qmiuser"
}

View File

@@ -0,0 +1,72 @@
locals {
myRegex = "/[^[:alpha:]]/"
splitLower = split(" ", lower(var.user_id))
np0 = replace(element(local.splitLower,0), local.myRegex, "")
np1 = replace(element(local.splitLower,1), local.myRegex, "")
container_n1 = substr(local.np0, 0, 3)
container_n2 = substr(local.np1, 0, 1)
container_n3 = substr(strrev(local.np1), 0, 1)
scnamelower = "${local.container_n1}${local.container_n2}${local.container_n3}"
}
resource "azurerm_eventhub_namespace" "ehbnamespace" {
name = "qlik${local.scnamelower}ns"
location = var.location
resource_group_name = var.resource_group_name
sku = "Standard"
capacity = 1
auto_inflate_enabled = true
maximum_throughput_units = 2
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
network_rulesets {
default_action = "Deny"
trusted_service_access_enabled = true
virtual_network_rule {
subnet_id = var.subnet_id
}
}
}
resource "azurerm_eventhub" "attrep_apply_exceptions" {
name = "attrep_apply_exceptions"
namespace_name = azurerm_eventhub_namespace.ehbnamespace.name
resource_group_name = var.resource_group_name
partition_count = 1
message_retention = 1
}
resource "azurerm_eventhub" "hr_employees" {
name = "hr.employees"
namespace_name = azurerm_eventhub_namespace.ehbnamespace.name
resource_group_name = var.resource_group_name
partition_count = 1
message_retention = 1
}
resource "azurerm_eventhub" "hr_jobs" {
name = "hr.jobs"
namespace_name = azurerm_eventhub_namespace.ehbnamespace.name
resource_group_name = var.resource_group_name
partition_count = 1
message_retention = 1
}
resource "azurerm_eventhub" "metadatahub" {
name = "metadatahub"
namespace_name = azurerm_eventhub_namespace.ehbnamespace.name
resource_group_name = var.resource_group_name
partition_count = 1
message_retention = 1
}

View File

@@ -0,0 +1,12 @@
output "default_primary_connection_string" {
value = nonsensitive(azurerm_eventhub_namespace.ehbnamespace.default_primary_connection_string)
}
output "default_primary_key" {
value = nonsensitive(azurerm_eventhub_namespace.ehbnamespace.default_primary_key)
}
output "namespace_name" {
value = "qlik${local.scnamelower}ns"
}

View File

@@ -1,20 +1,20 @@
variable "resource_group_name" {
type = string
}
variable "location" {
variable "provision_id" {
type = string
}
variable "subnet_id" {
}
variable "location" {
type = string
default = "EAST US"
}
variable "user_id" {
}
variable "administrator_login" {
}
variable "administrator_login_password" {
type = string
}

View File

@@ -0,0 +1,107 @@
resource "random_password" "password1" {
length = 16
special = true
override_special = "_!@"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "random_password" "password2" {
length = 16
special = true
override_special = "_!@"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "random_id" "randomMachineId" {
keepers = {
# Generate a new ID only when a new resource group is defined
resource_group = var.resource_group_name
}
byte_length = 5
}
resource "azurerm_storage_account" "example" {
name = "hdinsightstor${random_id.randomMachineId.hex}"
resource_group_name = var.resource_group_name
location = var.location
account_tier = "Standard"
account_replication_type = "LRS"
tags = var.tags
}
resource "azurerm_storage_container" "example" {
name = "hdinsight"
storage_account_name = azurerm_storage_account.example.name
container_access_type = "private"
}
resource "azurerm_role_assignment" "data-contributor-dbricksapp1" {
scope = azurerm_storage_account.example.id
role_definition_name = "Contributor"
principal_id = var.dbricks_app_registration_principal_id
}
resource "azurerm_role_assignment" "data-contributor-dbricksapp2" {
scope = azurerm_storage_account.example.id
role_definition_name = "Storage Blob Data Contributor"
principal_id = var.dbricks_app_registration_principal_id
}
resource "azurerm_hdinsight_hadoop_cluster" "example" {
name = "hdicluster-${var.provision_id}"
resource_group_name = var.resource_group_name
location = var.location
cluster_version = "4.0"
tier = "Standard"
tags = var.tags
component_version {
hadoop = "3.1"
}
gateway {
username = "acctestusrgw"
password = random_password.password1.result
}
storage_account {
storage_container_id = azurerm_storage_container.example.id
storage_account_key = azurerm_storage_account.example.primary_access_key
is_default = true
}
roles {
head_node {
vm_size = "Standard_D3_V2"
username = "acctestusrvm"
password = random_password.password2.result
}
worker_node {
vm_size = "Standard_D3_V2"
username = "acctestusrvm"
password = random_password.password2.result
target_instance_count = 2
}
zookeeper_node {
vm_size = "Standard_D3_V2"
username = "acctestusrvm"
password = random_password.password2.result
}
}
}

View File

@@ -0,0 +1,59 @@
output "gateway-creds" {
value = {
username = "acctestusrgw"
password = nonsensitive(random_password.password1.result)
}
}
output "cluster-creds" {
value = {
username = "acctestusrvm"
password = nonsensitive(random_password.password2.result)
}
}
output "https_endpoint" {
value = azurerm_hdinsight_hadoop_cluster.example.https_endpoint
}
output "ssh_endpoint" {
value = azurerm_hdinsight_hadoop_cluster.example.ssh_endpoint
}
output "Azure_Active_Directory_Tenant_ID" {
value = "c21eeb5f-f5a6-44e8-a997-124f2f7a497c"
}
output "Azure_Application_Registration_Client_ID" {
value = var.dbricks_app_registration_application_id
}
output "Azure_Application_Registration_Secret" {
value = "~qp8Q~utl~YJ3skNM9kAuq25VY~rKxxOWpaVYcnQ"
}
output "adls_StorageAccount-Name" {
value = azurerm_storage_account.example.name
}
output "adls_StorageAccount-ContainerName" {
value = azurerm_storage_container.example.name
}
output "adls_StorageAccount-AccessKey" {
value = nonsensitive(azurerm_storage_account.example.primary_access_key)
}
output "adls_Azure_Active_Directory_Tenant_ID" {
value = "c21eeb5f-f5a6-44e8-a997-124f2f7a497c"
}
output "adls_Azure_Application_Registration_Client_ID" {
value = var.dbricks_app_registration_application_id
}
output "adls_Azure_Application_Registration_Secret" {
value = "~qp8Q~utl~YJ3skNM9kAuq25VY~rKxxOWpaVYcnQ"
}

View File

@@ -0,0 +1,26 @@
variable "resource_group_name" {
type = string
}
variable "provision_id" {
type = string
}
variable "location" {
type = string
default = "EAST US"
}
variable "tags" {
default = null
}
variable "dbricks_app_registration_principal_id" {
description = "databricks-qmi"
default = "efeee17c-d2b3-4e7c-a163-9995b7d281e2"
}
variable "dbricks_app_registration_application_id" {
description = "databricks-qmi"
default = "9ccb0d99-3bba-4695-aa47-df77bf512084"
}

View File

@@ -0,0 +1,29 @@
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
resource "azurerm_mysql_flexible_server_firewall_rule" "fw_rule" {
for_each = module.fw-ips.ips_az_qcs
name = each.key
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_flexible_server.mysql-server.name
start_ip_address = each.value.0
end_ip_address = each.value.1
}
module "dummy-data" {
count = var.dummydata != null? 1 : 0
depends_on = [ azurerm_mysql_flexible_server_firewall_rule.fw_rule ]
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/dummy"
type = "mysql"
host = "${azurerm_mysql_flexible_server.mysql-server.fqdn}:3306"
username = var.admin_login
password = nonsensitive(random_password.password.result)
database = ""
}

View File

@@ -0,0 +1,53 @@
resource "random_password" "password" {
length = 16
special = true
override_special = "_!"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "azurerm_mysql_flexible_server" "mysql-server" {
name = "qmi-mysql-${var.provision_id}"
location = var.location
resource_group_name = var.resource_group_name
administrator_login = var.admin_login
administrator_password = random_password.password.result
storage {
size_gb = var.mysql-storage
}
backup_retention_days = 7
sku_name = var.mysql-sku-name
version = var.mysql-version
geo_redundant_backup_enabled = false
//public_network_access_enabled = true
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
resource "azurerm_mysql_flexible_database" "example" {
name = "QlikDB"
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_flexible_server.mysql-server.name
charset = "utf8"
collation = "utf8_unicode_ci"
}
resource "azurerm_mysql_flexible_server_configuration" "example" {
name = "binlog_row_image"
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_flexible_server.mysql-server.name
value = "full"
}

View File

@@ -0,0 +1,15 @@
output "db_server_fqdn" {
value = azurerm_mysql_flexible_server.mysql-server.fqdn
}
output "root_username" {
value = var.admin_login
}
output "root_username_password" {
value = nonsensitive(random_password.password.result)
}
output "dummy_data_databases_available" {
value = var.dummydata != null? module.dummy-data[0].dbs : null
}

View File

@@ -0,0 +1,43 @@
variable "resource_group_name" {
}
variable "provision_id" {
type = string
description = "(optional) describe your variable"
}
variable "location" {
type = string
description = "(optional) describe your variable"
default = "EAST US"
}
variable "user_id" {
}
variable "admin_login" {
type = string
description = "Login to authenticate to MySQL Server"
default = "qmi"
}
variable "mysql-version" {
type = string
description = "MySQL Server version to deploy"
default = "5.7"
}
variable "mysql-sku-name" {
type = string
description = "MySQL SKU Name"
default = "GP_Standard_D2ds_v4"
}
variable "mysql-storage" {
type = string
description = "MySQL Storage in MB"
default = "20"
}
variable "dummydata" {
default = null
}

View File

@@ -0,0 +1,28 @@
/*resource "azurerm_postgresql_flexible_server_firewall_rule" "all-azure-services" {
name = "AllAzureServices"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
start_ip_address = "0.0.0.0"
end_ip_address = "0.0.0.0"
}*/
resource "azurerm_postgresql_flexible_server_firewall_rule" "fw-a-rule1" {
name = "a1"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
start_ip_address = "52.249.189.38"
end_ip_address = "52.249.189.38"
}
resource "azurerm_postgresql_flexible_server_firewall_rule" "fw-a-rule2" {
name = "a2"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
start_ip_address = "13.67.39.86"
end_ip_address = "13.67.39.86"
}
resource "azurerm_postgresql_flexible_server_firewall_rule" "fw-a-rule3" {
name = "a3"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
start_ip_address = "20.67.110.207"
end_ip_address = "20.67.110.207"
}

View File

@@ -0,0 +1,54 @@
resource "random_password" "password" {
length = 16
special = true
override_special = "_!)"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "azurerm_postgresql_flexible_server" "postgresql-server" {
name = "qmi-postgresql-${var.provision_id}"
location = var.location
resource_group_name = var.resource_group_name
version = var.postgresql-version
administrator_login = var.admin_login
administrator_password = random_password.password.result
storage_mb = var.postgresql-storage
sku_name = var.postgresql-sku-name
geo_redundant_backup_enabled = false
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
resource "azurerm_postgresql_flexible_server_configuration" "conf1" {
name = "wal_level"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
value = "logical"
}
resource "azurerm_postgresql_flexible_server_configuration" "conf2" {
name = "log_statement"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
value = "all"
}
resource "azurerm_postgresql_flexible_server_database" "postgresql-db" {
name = "QlikPostgresqlDB"
server_id = azurerm_postgresql_flexible_server.postgresql-server.id
collation = "en_US.utf8"
charset = "utf8"
}

View File

@@ -0,0 +1,11 @@
output "db_server_fqdn" {
value = azurerm_postgresql_flexible_server.postgresql-server.fqdn
}
output "root_username" {
value = var.admin_login
}
output "root_username_password" {
value = nonsensitive(random_password.password.result)
}

View File

@@ -0,0 +1,41 @@
variable "resource_group_name" {
}
variable "provision_id" {
type = string
description = "(optional) describe your variable"
}
variable "location" {
type = string
description = "(optional) describe your variable"
default = "EAST US"
}
variable "admin_login" {
type = string
description = "Login to authenticate to PostgreSQL Server"
default = "qmi"
}
variable "postgresql-version" {
type = string
description = "PostgreSQL Server version to deploy"
default = "12"
}
variable "postgresql-sku-name" {
type = string
description = "PostgreSQL SKU Name"
default = "GP_Standard_D2s_v3"
}
variable "postgresql-storage" {
type = string
description = "PostgreSQL Storage in MB"
default = "32768"
}
variable "user_id" {
}

View File

@@ -0,0 +1,26 @@
resource "azurerm_mariadb_virtual_network_rule" "vnetrule" {
count = var.subnet_id != null? 1 : 0
name = "vnet-rule-${var.provision_id}"
resource_group_name = var.resource_group_name
server_name = azurerm_mariadb_server.mariadb-server.name
subnet_id = var.subnet_id
}
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
resource "azurerm_mariadb_firewall_rule" "fw_rule" {
for_each = module.fw-ips.ips
name = each.key
resource_group_name = var.resource_group_name
server_name = azurerm_mariadb_server.mariadb-server.name
start_ip_address = each.value.0
end_ip_address = each.value.1
}

View File

@@ -0,0 +1,61 @@
resource "random_password" "password" {
length = 16
special = true
override_special = "_!"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "azurerm_mariadb_server" "mariadb-server" {
name = "qmi-mariadb-${var.provision_id}"
location = var.location
resource_group_name = var.resource_group_name
administrator_login = var.admin_login
administrator_login_password = random_password.password.result
sku_name = var.sku-name
version = var.db-version
storage_mb = var.storage
auto_grow_enabled = true
backup_retention_days = 7
geo_redundant_backup_enabled = false
public_network_access_enabled = true
ssl_enforcement_enabled = false
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
resource "azurerm_mariadb_database" "mariadb-db" {
name = "QlikDB"
resource_group_name = var.resource_group_name
server_name = azurerm_mariadb_server.mariadb-server.name
charset = "utf8"
collation = "utf8_unicode_ci"
}
/*
module "dummy-data" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/dummy"
type = "mysql"
host = "${azurerm_mariadb_server.mariadb-server.fqdn}:3306"
username = var.admin_login
password = nonsensitive(random_password.password.result)
database = ""
}
*/

View File

@@ -0,0 +1,11 @@
output "db_server_fqdn" {
value = azurerm_mariadb_server.mariadb-server.fqdn
}
output "root_username" {
value = "${var.admin_login}@qmi-mariadb-${var.provision_id}"
}
output "root_username_password" {
value = nonsensitive(random_password.password.result)
}

View File

@@ -0,0 +1,43 @@
variable "resource_group_name" {
}
variable "provision_id" {
type = string
description = "(optional) describe your variable"
}
variable "location" {
type = string
description = "(optional) describe your variable"
default = "EAST US"
}
variable "subnet_id" {
default = null
}
variable "user_id" {
}
variable "admin_login" {
type = string
description = "Login to authenticate to MySQL Server"
default = "qmi"
}
variable "db-version" {
type = string
description = "MariaDB Server version to deploy"
default = "10.2"
}
variable "sku-name" {
type = string
description = "MariaDB SKU Name"
default = "GP_Gen5_2"
}
variable "storage" {
type = string
description = "MariaDB Storage in MB"
default = "5120"
}

View File

@@ -0,0 +1,49 @@
resource "azurerm_mssql_virtual_network_rule" "sqlvnetrule" {
count = var.subnet_id != null? 1 : 0
name = "vnet-rule-${local.provision_id}"
server_id = azurerm_mssql_server.sqlserver.id
subnet_id = var.subnet_id
}
resource "azurerm_mssql_virtual_network_rule" "sqlvnet_qmiinfra" {
count = var.envbranch == "master" && var.location == "eastus" ? 1 : 0
name = "vnet-qmiinfra-${local.provision_id}"
server_id = azurerm_mssql_server.sqlserver.id
subnet_id = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-infra-vnet/providers/Microsoft.Network/virtualNetworks/QMI-Automation-Vnet/subnets/QMI-Infrastructure"
}
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
resource "azurerm_mssql_firewall_rule" "fw_rule" {
for_each = module.fw-ips.ips
name = each.key
server_id = azurerm_mssql_server.sqlserver.id
start_ip_address = each.value.0
end_ip_address = each.value.1
}
module "dummy-data" {
count = var.dummydata != null? 1 : 0
depends_on = [ azurerm_mssql_firewall_rule.fw_rule ]
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/dummy"
type = "mssql"
host = azurerm_mssql_server.sqlserver.fully_qualified_domain_name
username = var.sql_administrator_login
password = nonsensitive(local.sql_administrator_login_password)
database = ""
}

View File

@@ -0,0 +1,86 @@
resource "random_id" "randomServerId" {
keepers = {
# Generate a new ID only when a new resource group is defined
resource_group = var.resource_group_name
}
byte_length = 2
}
resource "random_password" "password" {
length = 16
special = true
override_special = "_)"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
locals {
sql_administrator_login_password = var.sql_administrator_login_password != null? var.sql_administrator_login_password : random_password.password.result
provision_id = var.provision_id != null? var.provision_id : random_id.randomServerId.hex
}
resource "azurerm_mssql_server" "sqlserver" {
name = "sqlserver-${local.provision_id}"
resource_group_name = var.resource_group_name
location = var.location
version = "12.0"
administrator_login = var.sql_administrator_login
administrator_login_password = local.sql_administrator_login_password
minimum_tls_version = "1.2"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
identity {
type = "SystemAssigned"
}
}
resource "azurerm_mssql_database" "db" {
name = "demoDB"
server_id = azurerm_mssql_server.sqlserver.id
create_mode = "Default"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
# FOR QDI scenario
resource "azurerm_mssql_database" "dbname_source" {
name = "source"
server_id = azurerm_mssql_server.sqlserver.id
create_mode = "Default"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}
resource "azurerm_mssql_database" "dbname_target" {
name = "target"
server_id = azurerm_mssql_server.sqlserver.id
create_mode = "Default"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
Owner = var.user_id
}
}

View File

@@ -0,0 +1,33 @@
output "sqlserver_id" {
value = azurerm_mssql_server.sqlserver.id
}
output "sqlserver_name" {
value = azurerm_mssql_server.sqlserver.name
}
output "sqlserver_fully_qualified_domain_name" {
value = azurerm_mssql_server.sqlserver.fully_qualified_domain_name
}
output "dbname" {
value = azurerm_mssql_database.db.name
}
output "administrator_login" {
value = var.sql_administrator_login
}
output "administrator_login_password" {
value = nonsensitive(local.sql_administrator_login_password)
}
output "principal_id" {
value = azurerm_mssql_server.sqlserver.identity.0.principal_id
}
output "dummy_data_databases_available" {
value = var.dummydata != null? module.dummy-data[0].dbs : null
}

View File

@@ -5,8 +5,12 @@ variable "location" {
}
variable "subnet_id" {
variable "provision_id" {
default = null
}
variable "subnet_id" {
default = null
}
variable "user_id" {
@@ -18,5 +22,13 @@ variable "sql_administrator_login" {
}
variable "sql_administrator_login_password" {
default = "Attunity123123123"
}
default = null
}
variable "dummydata" {
default = null
}
variable "envbranch" {
default = "master"
}

View File

@@ -0,0 +1,55 @@
resource "azurerm_mysql_virtual_network_rule" "vnetrule" {
count = var.subnet_id != null? 1 : 0
name = "vnet-rule-${var.provision_id}"
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_server.mysql-server.name
subnet_id = var.subnet_id
}
resource "azurerm_mysql_virtual_network_rule" "vnetrule_qmiinfra" {
count = var.envbranch == "master" && var.location == "eastus" ? 1 : 0
name = "vnet-qmiinfra-${var.provision_id}"
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_server.mysql-server.name
subnet_id = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-infra-vnet/providers/Microsoft.Network/virtualNetworks/QMI-Automation-Vnet/subnets/QMI-Infrastructure"
}
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
resource "azurerm_mysql_firewall_rule" "fw_rule" {
for_each = module.fw-ips.ips
name = each.key
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_server.mysql-server.name
start_ip_address = each.value.0
end_ip_address = each.value.1
}
module "dummy-data" {
count = var.dummydata != null? 1 : 0
depends_on = [
azurerm_mysql_virtual_network_rule.vnetrule,
azurerm_mysql_virtual_network_rule.vnetrule_qmiinfra,
azurerm_mysql_firewall_rule.fw_rule
]
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/dummy"
type = "mysql"
host = "${azurerm_mysql_server.mysql-server.fqdn}:3306"
username = var.admin_login
password = nonsensitive(random_password.password.result)
database = ""
}

View File

@@ -0,0 +1,55 @@
resource "random_password" "password" {
length = 16
special = true
override_special = "_)"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "azurerm_mysql_server" "mysql-server" {
name = "qmi-mysql-${var.provision_id}"
location = var.location
resource_group_name = var.resource_group_name
administrator_login = var.admin_login
administrator_login_password = random_password.password.result
sku_name = var.mysql-sku-name
version = var.mysql-version
storage_mb = var.mysql-storage
auto_grow_enabled = true
backup_retention_days = 7
geo_redundant_backup_enabled = false
public_network_access_enabled = true
ssl_enforcement_enabled = false
ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
}
}
resource "azurerm_mysql_database" "mysql-db" {
name = "QlikDB"
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_server.mysql-server.name
charset = "utf8"
collation = "utf8_unicode_ci"
}
resource "azurerm_mysql_configuration" "example" {
name = "binlog_row_image"
resource_group_name = var.resource_group_name
server_name = azurerm_mysql_server.mysql-server.name
value = "full"
}

View File

@@ -0,0 +1,15 @@
output "db_server_fqdn" {
value = azurerm_mysql_server.mysql-server.fqdn
}
output "root_username" {
value = "${var.admin_login}@qmi-mysql-${var.provision_id}"
}
output "root_username_password" {
value = nonsensitive(random_password.password.result)
}
output "dummy_data_databases_available" {
value = var.dummydata != null? module.dummy-data[0].dbs : null
}

View File

@@ -0,0 +1,51 @@
variable "resource_group_name" {
}
variable "provision_id" {
type = string
description = "(optional) describe your variable"
}
variable "location" {
type = string
description = "(optional) describe your variable"
default = "EAST US"
}
variable "subnet_id" {
default = null
}
variable "user_id" {
}
variable "admin_login" {
type = string
description = "Login to authenticate to MySQL Server"
default = "qmi"
}
variable "mysql-version" {
type = string
description = "MySQL Server version to deploy"
default = "8.0"
}
variable "mysql-sku-name" {
type = string
description = "MySQL SKU Name"
default = "GP_Gen5_8"
}
variable "mysql-storage" {
type = string
description = "MySQL Storage in MB"
default = "5120"
}
variable "dummydata" {
default = null
}
variable "envbranch" {
default = "master"
}

View File

@@ -0,0 +1,55 @@
resource "azurerm_postgresql_virtual_network_rule" "vnetrule" {
count = var.subnet_id != null? 1 : 0
name = "vnet-rule-${var.provision_id}"
resource_group_name = var.resource_group_name
server_name = azurerm_postgresql_server.postgresql-server.name
subnet_id = var.subnet_id
}
resource "azurerm_postgresql_virtual_network_rule" "vnetrule_qmiinfra" {
count = var.envbranch == "master" && var.location == "eastus" ? 1 : 0
name = "vnet-qmiinfra-${var.provision_id}"
resource_group_name = var.resource_group_name
server_name = azurerm_postgresql_server.postgresql-server.name
subnet_id = "/subscriptions/62ebff8f-c40b-41be-9239-252d6c0c8ad9/resourceGroups/QMI-infra-vnet/providers/Microsoft.Network/virtualNetworks/QMI-Automation-Vnet/subnets/QMI-Infrastructure"
}
module "fw-ips" {
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/firewall_ips"
}
resource "azurerm_postgresql_firewall_rule" "fw_rule" {
for_each = module.fw-ips.ips
name = each.key
resource_group_name = var.resource_group_name
server_name = azurerm_postgresql_server.postgresql-server.name
start_ip_address = each.value.0
end_ip_address = each.value.1
}
module "dummy-data" {
count = var.dummydata != null? 1 : 0
depends_on = [
azurerm_postgresql_firewall_rule.fw_rule,
azurerm_postgresql_virtual_network_rule.vnetrule,
azurerm_postgresql_virtual_network_rule.vnetrule_qmiinfra
]
source = "git::https://gitlab.com/qmi/qmi-cloud-tf-modules.git//databases/dummy"
type = "postgres"
host = azurerm_postgresql_server.postgresql-server.fqdn
username = "${var.admin_login}@qmi-postgresql-${var.provision_id}"
password = nonsensitive(random_password.password.result)
database = "postgres"
}

View File

@@ -0,0 +1,49 @@
resource "random_password" "password" {
length = 16
special = true
override_special = "_)"
upper = true
lower = true
min_numeric = 2
min_lower = 2
min_upper = 2
min_special = 2
}
resource "azurerm_postgresql_server" "postgresql-server" {
name = "qmi-postgresql-${var.provision_id}"
location = var.location
resource_group_name = var.resource_group_name
administrator_login = var.admin_login
administrator_login_password = random_password.password.result
sku_name = var.postgresql-sku-name
version = var.postgresql-version
storage_mb = var.postgresql-storage
auto_grow_enabled = true
backup_retention_days = 7
geo_redundant_backup_enabled = false
public_network_access_enabled = true
ssl_enforcement_enabled = false
ssl_minimal_tls_version_enforced = "TLSEnforcementDisabled"
tags = {
Deployment = "QMI PoC"
"Cost Center" = "3100"
QMI_user = var.user_id
}
}
resource "azurerm_postgresql_database" "postgresql-db" {
name = "QlikPostgresqlDB"
resource_group_name = var.resource_group_name
server_name = azurerm_postgresql_server.postgresql-server.name
charset = "utf8"
collation = "English_United States.1252"
}

View File

@@ -0,0 +1,19 @@
/*output "postgresql_server" {
value = azurerm_postgresql_server.postgresql-server
}*/
output "db_server_fqdn" {
value = azurerm_postgresql_server.postgresql-server.fqdn
}
output "root_username" {
value = "${var.admin_login}@qmi-postgresql-${var.provision_id}"
}
output "root_username_password" {
value = nonsensitive(random_password.password.result)
}
output "dummy_data_databases_available" {
value = var.dummydata != null? module.dummy-data[0].dbs : null
}

Some files were not shown because too many files have changed in this diff Show More