Skip to content

Commit 02920ae

Browse files
Merge pull request #98 from oracle-devrel/iopanait-develop35
informatica solutions upgrades
2 parents 8b29f61 + a2d5e47 commit 02920ae

File tree

23 files changed

+274
-196
lines changed

23 files changed

+274
-196
lines changed

cloud-foundation/solutions/Informatica-Secure-Agent-create-a-secure-ready-to-go-complete-data-platform-on-OCI/README.md

Lines changed: 61 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Oracle Cloud Foundation Terraform Solution - Deploy Informatica Secure Agent – create a secure ready to go complete data platform on OCI
1+
# Oracle Cloud Foundation Terraform Solution - Informatica Secure Agent – create a ready to go development data platform on OCI
22

33
## Table of Contents
44
1. [Overview](#overview)
@@ -45,7 +45,7 @@ For more options of deployment the Informatica IDMC please check the link: see [
4545

4646
## Prerequisites
4747

48-
- Permission to `manage` the following types of resources in your Oracle Cloud Infrastructure tenancy: `vcns`, `nat-gateways`, `route-tables`, `subnets`, `service-gateways`, `security-lists`, `autonomous database`, `Object Storage` and `compute instances`.
48+
- Permission to `manage` the following types of resources in your Oracle Cloud Infrastructure tenancy: `vcns`, `nat-gateways`, `route-tables`, `subnets`, `service-gateways`, `security-lists`, `autonomous database`, `Object Storage` and `compute instance`.
4949
- Quota to create the following resources: 1 ADW database instance and 2 VM instance, 1 Object Storage
5050
If you don't have the required permissions and quota, contact your tenancy administrator. See [Policy Reference](https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Reference/policyreference.htm), [Service Limits](https://docs.cloud.oracle.com/en-us/iaas/Content/General/Concepts/servicelimits.htm), [Compartment Quotas](https://docs.cloud.oracle.com/iaas/Content/General/Concepts/resourcequotas.htm).
5151

@@ -202,7 +202,7 @@ variable "private_key_path" {
202202
## Repository files
203203
* **images(folder)** - Contains images to be used inside the README.md file
204204
* **modules(folder)** - ( this folder will be pressent only for the Resource Manager zipped files) Contains folders with subsystems and modules for each section of the project: networking, autonomous database, analytics cloud, etc.
205-
* **scripts(folder)** - this folder contains the necessary scripts that will run on the compute instances, for the bastion and also for the Secure Agent VM.
205+
* **scripts(folder)** - this folder contains the necessary scripts that will run on the compute instance for the Secure Agent VM.
206206
* **CONTRIBUTING.md** - Contributing guidelines, also called Contribution guidelines, the CONTRIBUTING.md file, or software contribution guidelines, is a text file which project managers include in free and open-source software packages or other open media packages for the purpose of describing how others may contribute user-generated content to the project.The file explains how anyone can engage in activities such as formatting code for submission or submitting patches
207207
* **LICENSE** - The Universal Permissive License (UPL), Version 1.0
208208
* **local.tf** - Local values can be helpful to avoid repeating the same values or expressions multiple times in a configuration, but if overused they can also make a configuration hard to read by future maintainers by hiding the actual values used.Here is the place where all the resources are defined.
@@ -245,7 +245,7 @@ Below is an example:
245245
```
246246
variable "db_name" {
247247
type = string
248-
default = "ADWSecureAgent"
248+
default = "ADWSecureAgentOCI"
249249
}
250250
251251
variable "db_password" {
@@ -327,7 +327,7 @@ Below is an example:
327327
```
328328
variable "bucket_name" {
329329
type = string
330-
default = "InformaticaSecureAgent"
330+
default = "InformaticaSecureAgentOCI"
331331
}
332332
333333
variable "bucket_access_type" {
@@ -389,14 +389,19 @@ variable "bastion_shape" {
389389
}
390390
```
391391

392+
393+
# Compute Informatica Secure Agent VM
394+
The compute module will create the informatica VM's one VM.
395+
392396
* Parameters for the Infromatica Secure Agent VM Configuration
393397
* __informatica_instance_shape__ - (Required) (Updatable) The shape of an instance. The shape determines the number of CPUs, amount of memory, and other resources allocated to the instance.
394-
* __hostname_label__ - Required. The hostname/dns name for the Informatica VM.
398+
* __informatica_secure_agent_display_name__ - A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information.
395399
* __iics_user__ - Required. The user name to access IDMC.
396400
* __iics_token__ - Required. Paste the Secure Agent install token that you get from the IDMC Administrator service. To get the install token, perform the following steps: 1. Log in to IDMC. 2. Select Administrator, and then click Runtime Environments. 3. Click Generate Install Token. 4. Click Copy to copy the install token string.
397401
* __iics_gn__ - Optional. Name of the Secure Agent group.If your account does not contain the group specified or if you do not specify a group name, the Secure Agent is assigned to an unnamed group.
398-
* __iics_dc__ - Required. The data center location for the deployment. Choose the data center location based on the user details registered in IDMC.
399-
* __iics_dc_enum__ - the available center locations for Informatica.
402+
* __iics_provider__ - Required. The Cloud Provider where you have your IDMC account. Choose the cloud provider based on the user details registered in IDMC.
403+
* __iics_provider_enum__ - the available cloud providers for Informatica.
404+
* __mp_subscription_enabled__ - As the Informatica VM image it's a narketplace image you need to subscribe to it - as the default it's true.
400405

401406

402407
# Infromatica Secure Agent VM Configuration
@@ -406,8 +411,8 @@ variable "informatica_instance_shape" {
406411
default = "VM.Standard2.4" # Example instance shape: VM.Standard2.4
407412
}
408413
409-
variable "hostname_label" {
410-
default = "iopanait-nl" #
414+
variable "informatica_secure_agent_display_name" {
415+
default = "InformaticaVMOCI"
411416
}
412417
413418
variable "iics_user" {
@@ -425,20 +430,30 @@ variable "iics_gn" {
425430
default = "" <enter your group (optional)>
426431
}
427432
428-
variable "iics_dc" {
433+
variable "iics_provider" {
429434
description = "The data center location for the deployment. Choose the data center location based on the user details registered in Informatica Intelligent Data Management Cloud"
430-
default = "United States of America"
435+
default = "Oracle Cloud Infrastructure"
436+
# default = "Amazon Web Services"
437+
# default = "Microsoft Azure"
438+
# default = "Google Cloud"
431439
}
432440
433-
variable "iics_dc_enum" {
441+
variable "iics_provider_enum" {
434442
type = map
435443
default = {
436-
USA = "United States of America"
437-
SGP = "Singapore"
438-
GER = "Germany"
439-
JPN = "Japan"
444+
OCI = "Oracle Cloud Infrastructure"
445+
AWS = "Amazon Web Services"
446+
Azure = "Microsoft Azure"
447+
GCP = "Google Cloud"
440448
}
441449
}
450+
451+
variable "mp_subscription_enabled" {
452+
description = "Subscribe to Marketplace listing?"
453+
type = bool
454+
//default = false
455+
default = true
456+
}
442457
```
443458

444459
# Network
@@ -501,6 +516,7 @@ Activate the web console with: systemctl enable --now cockpit.socket
501516
[opc@informatica-bastion ~]$ touch key
502517
[opc@informatica-bastion ~]$ chmod 600 key
503518
[opc@informatica-bastion ~]$ vi key ---- !! Here you will need to paste your private key generated on the terraform output !.
519+
504520
[opc@informatica-bastion ~]$ ssh -i key opc@orivate_ip_address_of_the_informatica_secure_agent_vm
505521
The authenticity of host '10.0.1.134 (10.0.1.134)' can't be established.
506522
ECDSA key fingerprint is SHA256:Hktppc3mgt0IS8on/gZhjnGRelgFrWDGYuIg+8HFVos.
@@ -524,31 +540,49 @@ __Step #2:__ - You can access the log files at the following locations:
524540
When the installation and configuration it's done the output will look like the one below.
525541

526542
```
527-
[infa@informatica-secure-agent ~]$ cat /opt/infaagent/apps/agentcore/infaagent.log
543+
[infa@informaticagcp agentcore]$ cat /opt/infaagent/apps/agentcore/agentcore.log
544+
2023-11-16 11:27:10,385 GMT tid="1" tn="main" INFO [com.informatica.runtime.common.util.NetworkUtil] - Determining network interface used for device based encryption
545+
2023-11-16 11:27:10,782 GMT tid="1" tn="main" INFO [com.informatica.runtime.common.util.AgentIdUtil] - Successfully created agent_nwid.dat
546+
2023-11-16 11:27:12,070 GMT tid="1" tn="main" INFO [com.informatica.saas.infaagent.agentcore.admin.Administrator] - Ignore agentcore packages package-agentcoreupgrade.6713, package-agentcoreupgradefips.6713
547+
2023-11-16 11:27:12,080 GMT tid="1" tn="main" INFO [com.informatica.saas.infaagent.agentcore.impls.MainApp] - Regular agent configuration with token
548+
2023-11-16 11:27:12,095 GMT tid="1" tn="main" INFO [com.informatica.saas.infaagentv3.agentcore.AgentCorePublisher] - Starting RMI server...
549+
2023-11-16 11:27:12,129 GMT tid="1" tn="main" INFO [com.informatica.saas.infaagent.agentcore.impls.MainApp] - Agent Core's RMI started up.
550+
2023-11-16 11:29:09,985 GMT tid="25" tn="RMI TCP Connection(2)-127.0.0.1" INFO [com.informatica.saas.infaagent.agentcore.impls.AgentConfiguratorTokenImpl] - Register agent to org 8ee6nPfuGAakd7TjaRFXEh with name informaticagcp
551+
2023-11-16 11:29:11,743 GMT tid="25" tn="RMI TCP Connection(2)-127.0.0.1" INFO [com.informatica.runtime.common.security.DeviceEncryption] - Key file required for device based encryption doesn't exists
552+
2023-11-16 11:29:11,744 GMT tid="25" tn="RMI TCP Connection(2)-127.0.0.1" INFO [com.informatica.runtime.common.security.DeviceEncryption] - Generating a new key for device based encryption
553+
2023-11-16 11:29:14,708 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \tlcm.app.path = /opt/infaagent/apps
554+
2023-11-16 11:29:14,708 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \tlcm.port.low = 14000
555+
2023-11-16 11:29:14,708 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \tlcm.port.high = 14999
556+
2023-11-16 11:29:14,709 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \tlcm.cache.charset.name = UTF-8
557+
2023-11-16 11:29:14,709 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \tlcm.manifest.threads = 1
558+
2023-11-16 11:29:14,709 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \twait_for_apps_to_stop = false
559+
2023-11-16 11:29:14,709 GMT tid="27" tn="LifecycleManagerFactoryDefault-akka.actor.default-dispatcher-2" INFO [com.informatica.saas.lcm.lcmnative.LCMComponents] - \tlcm.temp.dir = /opt/infaagent/apps/agentcore/logs/temp
560+
561+
[infa@informaticagcp agentcore]$ cat /opt/infaagent/apps/agentcore/infaagent.log
528562
Successfully started up InfaAgent.
529563
InfaAgent is starting up... Please ensure InfaAgent has come up successfully on the web page.
530-
63.17
564+
[2023-11-16T11:27:08+0000]: Starting agent core
565+
67.13
531566
/opt/infaagent/apps/agentcore
532-
SLF4J: Class path contains multiple SLF4J bindings.
533-
SLF4J: Found binding in [jar:file:/opt/infaagent/apps/agentcore/63.17/org.apache.logging.log4j.log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
534-
SLF4J: Found binding in [jar:file:/opt/infaagent/apps/agentcore/63.17/org.slf4j.slf4j-log4j12-1.7.21.jar!/org/slf4j/impl/StaticLoggerBinder.class]
535-
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
536-
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
537567
ConfigProperties: Loading properties from /opt/infaagent/apps/agentcore/../../apps/agentcore/conf/infaagent.ini
538568
ConfigProperties: Done loading properties from /opt/infaagent/apps/agentcore/../../apps/agentcore/conf/infaagent.ini
539569
ConfigProperties: Loading properties from /opt/infaagent/apps/agentcore/../../apps/agentcore/conf/proxy.ini
540570
ConfigProperties: Done loading properties from /opt/infaagent/apps/agentcore/../../apps/agentcore/conf/proxy.ini
541-
[infa@informatica-secure-agent ~]$ cat /opt/agent_setup.log
571+
[infa@informaticagcp agentcore]$
572+
573+
574+
[infa@informaticagcp agentcore]$ cat /opt/agent_setup.log
542575
Starting IICS secure agent installation...
543576
Starting agent registration...
544577
Setting Data Center location...
545578
Adding secure agent to group
546579
Starting IICS Agent
547580
Registering IICS Agent
548581
Execution complete
549-
[infa@informatica-secure-agent ~]$ cat /opt/DO_NOT_DELETE_INFA_IICS_SA.txt
582+
583+
[root@securenl ~]# cat /opt/DO_NOT_DELETE_INFA_IICS_SA.txt
550584
Secure agent installation script completed.
551-
[infa@informatica-secure-agent ~]$
585+
[root@securenl ~]#
552586
```
553587

554588
## <a name="documentation"></a>Documentation

cloud-foundation/solutions/Informatica-Secure-Agent-create-a-secure-ready-to-go-complete-data-platform-on-OCI/local.tf

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,23 @@ data "template_cloudinit_config" "bastion-config" {
4848
}
4949

5050
locals {
51-
informatica_image = "ocid1.image.oc1..aaaaaaaal2pawq4ysiekxkf7jbk2i5x5ctolj22a2gfsw576mx7kjfu4xyha"
51+
# Local to control subscription to Marketplace image.
52+
mp_subscription_enabled = var.mp_subscription_enabled ? 1 : 0
53+
informatica_image = "ocid1.image.oc1..aaaaaaaa7cz5dtoycldn2362uitvswgoozfxeahfpxusky67nsd6vxhxcvua"
5254
mp_listing_id = "ocid1.appcataloglisting.oc1..aaaaaaaanfkuyh67srgtyxv7lfzrec3yaauspa5petil2clgizlarqgkmxwa"
53-
mp_listing_resource_id = "ocid1.image.oc1..aaaaaaaal2pawq4ysiekxkf7jbk2i5x5ctolj22a2gfsw576mx7kjfu4xyha"
54-
mp_listing_resource_version = "August_2022.03"
55+
mp_listing_resource_id = "ocid1.image.oc1..aaaaaaaa7cz5dtoycldn2362uitvswgoozfxeahfpxusky67nsd6vxhxcvua"
56+
mp_listing_resource_version = "November_2023.11"
5557

5658
ad_names = compact(data.template_file.ad_names.*.rendered)
5759
public_subnet_availability_domain = local.ad_names[0]
5860

5961
#Secure agent data
60-
iics_dc_usa = var.iics_dc == var.iics_dc_enum["USA"] ? true : false
61-
iics_dc_sgp = var.iics_dc == var.iics_dc_enum["SGP"] ? true : false
62-
iics_dc_ger = var.iics_dc == var.iics_dc_enum["GER"] ? true : false
63-
iics_dc_jpn = var.iics_dc == var.iics_dc_enum["JPN"] ? true : false
62+
iics_provider_oci = var.iics_provider == var.iics_provider_enum["OCI"] ? true : false
63+
iics_provider_aws = var.iics_provider == var.iics_provider_enum["AWS"] ? true : false
64+
iics_provider_azure = var.iics_provider == var.iics_provider_enum["Azure"] ? true : false
65+
iics_provider_gcp = var.iics_provider == var.iics_provider_enum["GCP"] ? true : false
6466

65-
iics_dc = (local.iics_dc_usa == true) ? "USA" : (local.iics_dc_sgp == true) ? "SGP" : (local.iics_dc_ger == true) ? "GER" : (local.iics_dc_jpn == true) ? "JPN" : "USA"
67+
iics_provider = (local.iics_provider_oci == true) ? "OCI" : (local.iics_provider_aws == true) ? "AWS" : (local.iics_provider_azure == true) ? "Azure" : (local.iics_provider_gcp == true) ? "GCP" : "OCI"
6668

6769
# Create Autonomous Data Warehouse
6870
adw_params = {
@@ -128,34 +130,33 @@ bastion_instance_params = {
128130
}
129131
}
130132

131-
132133
#create Informatica Secure Agent instance
133134
informatica_secure_agent_params = {
134135
informatica_secure_agent = {
135136
availability_domain = 1
136137
compartment_id = var.compartment_id
137-
display_name = "informatica_secure_agent"
138+
display_name = var.informatica_secure_agent_display_name
138139
shape = var.informatica_instance_shape
139140
defined_tags = {}
140141
freeform_tags = {}
141142
subnet_id = lookup(module.network-subnets.subnets,"private-subnet").id
142143
vnic_display_name = ""
143144
assign_public_ip = false
144-
hostname_label = var.hostname_label
145+
hostname_label = ""
145146
source_type = "image"
146147
source_id = local.informatica_image
147148
metadata = {
148149
ssh_authorized_keys = module.keygen.OPCPrivateKey.public_key_openssh
149150
user_data = base64encode(templatefile(format("%s/%s", "./scripts", "install.sh"),
150151
{
151-
iics_dc = local.iics_dc
152-
iics_un = var.iics_user
153-
iics_tk = var.iics_token
154-
iics_gn = var.iics_gn
155-
region = var.region
156-
bucket_name = var.bucket_name
157-
tenancy = data.oci_identity_tenancy.tenancy.name
158-
db_name = var.db_name
152+
iics_provider = local.iics_provider
153+
iics_un = var.iics_user
154+
iics_tk = var.iics_token
155+
iics_gn = var.iics_gn
156+
region = var.region
157+
bucket_name = var.bucket_name
158+
tenancy = data.oci_identity_tenancy.tenancy.name
159+
db_name = var.db_name
159160
}))
160161
}
161162
fault_domain = ""

0 commit comments

Comments
 (0)