This module deploys an instance with the necessary tools to start developing Infrastructure as Code solutions on OCI.
General development tooling:
- Git, pre-commit and the GitHub cli
- Python virtualenvwrapper
- Go
- container tooling
IaC tooling:
- HashiCorp Stack: Packer, Terraform, Consul, Vault, Nomad
- terraform-docs
- Ansible and with useful community roles
OCI related tooling and SDKs:
- oci-cli and its smart wrapper
o - OCI Python SDK
- ansible-oci collection
This is the deployed infrastructure:
The module also create an OCI Dynamic-Group and the associated OCI Policy to grant API manage authorization to the iacbox instance over the instance's compartment.
| Name | Version |
|---|---|
| terraform | >= 1.0.0 |
| oci | >=4.40.0 |
| Name | Source | Version |
|---|---|---|
| instance_iacbox | oracle-terraform-modules/compute-instance/oci | 2.3.0 |
| vcn_iacbox | oracle-terraform-modules/vcn/oci | 3.0.0 |
| Name | Type |
|---|---|
| oci_core_subnet.vcn_iacbox_public | resource |
| oci_identity_dynamic_group.iacbox | resource |
| oci_identity_policy.dynamic_group_iacbox | resource |
| oci_core_images.images | data source |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| block_storage_sizes_in_gbs | Sizes of volumes to create and attach to each instance. | list(string) |
[] |
no |
| compartment_id | compartment ocid where to create all resources | string |
n/a | yes |
| defined_tags | predefined and scoped to a namespace to tag the resources created using defined tags. | map(string) |
null |
no |
| fingerprint | n/a | string |
null |
no |
| freeform_tags | simple key-value pairs to tag the resources created using freeform tags. | map(string) |
null |
no |
| instance_ad_number | The availability domain number of the instance. If none is provided, it will start with AD-1 and continue in round-robin. | number |
1 |
no |
| instance_count | Number of identical instances to launch from a single module. | number |
1 |
no |
| instance_display_name | (Updatable) A user-friendly name for the instance. Does not have to be unique, and it's changeable. | string |
"iacbox" |
no |
| instance_flex_memory_in_gbs | (Updatable) The total amount of memory available to the instance, in gigabytes. | number |
6 |
no |
| instance_flex_ocpus | (Updatable) The total number of OCPUs available to the instance. | number |
1 |
no |
| instance_state | (Updatable) The target state for the instance. Could be set to RUNNING or STOPPED. | string |
"STOPPED" |
no |
| private_key | n/a | string |
null |
no |
| private_key_path | n/a | string |
null |
no |
| public_ip | Whether to create a Public IP to attach to primary vnic and which lifetime. Valid values are NONE, RESERVED or EPHEMERAL. | string |
"RESERVED" |
no |
| region | n/a | string |
null |
no |
| shape | The shape of an instance. | string |
"VM.Standard.A1.Flex" |
no |
| source_ocid | The OCID of an image or a boot volume to use, depending on the value of source_type. | string |
null |
no |
| source_type | The source type for the instance. | string |
"image" |
no |
| ssh_public_keys | Public SSH keys to be included in the ~/.ssh/authorized_keys file for the default user on the instance. To provide multiple keys, see docs/instance_ssh_keys.adoc. | string |
null |
no |
| tenancy_ocid | n/a | string |
null |
no |
| user_data | Provide your own base64-encoded data to be used by Cloud-Init to run custom scripts or provide custom Cloud-Init configuration. | string |
null |
no |
| user_ocid | n/a | string |
null |
no |
| Name | Description |
|---|---|
| instance_iacbox | ocid of created instances. |

