Giter Site home page Giter Site logo

terraform-oci-cloudbricks-lpg-config's Introduction

OCI Cloud Bricks: Local Peering Gateway (LPG)

License: UPL Quality gate

Introduction

The following brick enables you to configure the associated route tables once LPG are in place. This brick makes use of Open Source Python Module ortu 0.5.0

Reference Architecture

The following is the reference architecture associated to this brick

Reference Architecture

Prerequisites

  • As this module makes intensive use of OCI Python SDK, the usage of this module requires mandatorily a preconfigured OCI CLI Profile on local terraform executor, so that authentication parameters are loaded. For such thing, make sure the file /home/opc/.oci/config is populated with the following entries:
[DEFAULT]
user=ocid1.user.oc1..FOOBAR
fingerprint=fo:oo:ba:ar:fi:ng:er:pr:in:nt
tenancy=ocid1.tenancy.FOOBAR
region=fo-region-1
key_file=/foo/bar/api_key.pem
  • Requires pre-configured LPG to assemble the peering
  • Requires pre-created route tables to update in runtime
  • Executor host requires python3 pre-installed

Sample tfvar file

########## SAMPLE TFVAR FILE ##########
########## PROVIDER SPECIFIC VARIABLES ##########
region           = "foo-region-1"
tenancy_ocid     = "ocid1.tenancy.oc1..abcdefg"
user_ocid        = "ocid1.user.oc1..aaaaaaabcdefg"
fingerprint      = "fo:oo:ba:ar:ba:ar"
private_key_path = "/absolute/path/to/api/key/your_api_key.pem"
########## PROVIDER SPECIFIC VARIABLES ##########

########## ARTIFACT SPECIFIC VARIABLES ##########
from_network_compartment_name = "HUB_NETWORK_COMPARTMENT"
from_vcn_display_name         = "HUB_VCN"
from_route_table_display_name = "HUB_Route_Table"
from_lpg_display_name         = "HUB_LPG"


to_network_compartment_name = "SPOKE_NETWORK_COMPARTMENT"
to_vcn_display_name         = "SPOKE_VCN"
to_route_table_display_name = "SPOKE_Route_Table"
to_lpg_display_name         = "SPOKE_LPG"

########## ARTIFACT SPECIFIC VARIABLES ##########
########## SAMPLE TFVAR FILE ##########

Variable specific considerations

  • In order to use this module, it's required to invoke each time a routing table is involved. If implementation has more than one route table, it's required to call this module as many times as routing tables are present
  • Its recommended to orchestrate and hook this module with the brick terraform-oci-cloudbricks-network-artifacts in order to take advantage of the output of this module and immediately pass on required variables based on it

Sample provider

The following is the base provider definition to be used with this module

terraform {
  required_version = ">= 0.13.5"
}
provider "oci" {
  region       = var.region
  tenancy_ocid = var.tenancy_ocid
  user_ocid        = var.user_ocid
  fingerprint      = var.fingerprint
  private_key_path = var.private_key_path
  disable_auto_retries = "true"
}

provider "oci" {
  alias        = "home"
  region       = data.oci_identity_region_subscriptions.home_region_subscriptions.region_subscriptions[0].region_name
  tenancy_ocid = var.tenancy_ocid  
  user_ocid        = var.user_ocid
  fingerprint      = var.fingerprint
  private_key_path = var.private_key_path
  disable_auto_retries = "true"
}

Variable documentation

Requirements

Name Version
terraform >= 0.13.5

Providers

Name Version
oci 4.36.0
oci.home 4.36.0
random 3.1.0

Modules

No modules.

Resources

Name Type
oci_core_dhcp_options.DHCPOptions resource
oci_core_internet_gateway.INETGateway resource
oci_core_local_peering_gateway.LocalPeeringGateway resource
oci_core_nat_gateway.NATGateway resource
oci_core_route_table.PrivateRouteTable resource
oci_core_route_table.PublicRouteTable resource
oci_core_security_list.PrivateSecurityList resource
oci_core_security_list.PublicSecurityList resource
oci_core_service_gateway.PrivateServiceGateway resource
oci_core_subnet.PrivateSubnet resource
oci_core_subnet.PublicSubnet resource
oci_core_vcn.VCN resource
oci_identity_tag.release resource
oci_identity_tag_namespace.devrel resource
random_id.tag resource
oci_core_local_peering_gateways.PEERLPG data source
oci_core_services.ALLSERVICES data source
oci_core_services.STORAGESERVICES data source
oci_core_vcns.PEEREDVCN data source
oci_identity_compartments.NWCOMPARTMENTS data source
oci_identity_compartments.PEEREDNWCOMPARTMENTS data source
oci_identity_region_subscriptions.home_region_subscriptions data source

Inputs

Name Description Type Default Required
custom_search_domain A domain name where the custom option can be applied any n/a yes
dhcp_options_display_name (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. any n/a yes
fingerprint API Key Fingerprint for user_ocid derived from public API Key imported in OCI User config any n/a yes
internet_gateway_display_name (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. any n/a yes
internet_gateway_enabled Describes if the Internet Gateway is enabled upon creation or not bool true no
is_private_subnet_private Describes if the subnet is private or not bool true no
is_public_subnet_private Describes if the subnet is private or not bool false no
is_spoke Boolean that describes if the compartment is a spoke or not bool true no
label_zs Auxiliary variable to concatenate with lpg number list(any)
[
"0",
""
]
no
lpg_count Number of LPG to create number 1 no
lpg_display_name_base Local Peering Gateway Display Name Base any n/a yes
nat_gateway_display_name NAT Gateway Display Name any n/a yes
peered_lpg_display_name Display name of peered LPG string "" no
peered_vcn_display_name Name of the peered VCN where the peered LPG is created string "" no
peered_vcn_network_compartment_name Name of the compartment where the VCN that's going to be peered is string "" no
private_key_path Private Key Absolute path location where terraform is executed any n/a yes
private_route_table_display_name Private Route Table Display Name. any n/a yes
private_route_table_nat_route_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "NAT Gateway default route" no
private_route_table_nat_route_rules_destination private_route_table_route_rules_destination string "0.0.0.0/0" no
private_route_table_nat_route_rules_destination_type (Optional) (Updatable) Type of destination for the rule. Required if you provide a destination. string "CIDR_BLOCK" no
private_route_table_svc_route_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "Service Gateway default route" no
private_route_table_svc_route_rules_destination_type (Optional) (Updatable) Type of destination for the rule. Required if you provide a destination. string "SERVICE_CIDR_BLOCK" no
private_security_list_display_name (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. any n/a yes
private_security_list_egress_security_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "All egress rule for all protocols and IP Addresses" no
private_security_list_egress_security_rules_destination (Required) (Updatable) Conceptually, this is the range of IP addresses that a packet originating from the instance can go to. string "0.0.0.0/0" no
private_security_list_egress_security_rules_destination_type Optional) (Updatable) Type of destination for the rule. The default is CIDR_BLOCK string "CIDR_BLOCK" no
private_security_list_egress_security_rules_protocol (Required) (Updatable) The transport protocol. Specify either all or an IPv4 protocol number as defined in Protocol Numbers. Options are supported only for ICMP (1), TCP (6), UDP (17), and ICMPv6 (58). string "all" no
private_security_list_egress_security_rules_stateless (Optional) (Updatable) A stateless rule allows traffic in one direction. Remember to add a corresponding stateless rule in the other direction if you need to support bidirectional traffic. For example, if egress traffic allows TCP destination port 80, there should be an ingress rule to allow TCP source port 80. Defaults to false, which means the rule is stateful and a corresponding rule is not necessary for bidirectional traffic. bool true no
private_security_list_ingress_security_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "All traffic in for private security List" no
private_security_list_ingress_security_rules_protocol (Required) (Updatable) The transport protocol. Specify either all or an IPv4 protocol number as defined in Protocol Numbers. Options are supported only for ICMP (1), TCP (6), UDP (17), and ICMPv6 (58). string "all" no
private_security_list_ingress_security_rules_source (Required) (Updatable) Conceptually, this is the range of IP addresses that a packet coming into the instance can come from. string "0.0.0.0/0" no
private_security_list_ingress_security_rules_source_type Type of source for the rule. string "CIDR_BLOCK" no
private_security_list_ingress_security_rules_stateless A stateless rule allows traffic in one direction. Remember to add a corresponding stateless rule in the other direction if you need to support bidirectional traffic. For example, if ingress traffic allows TCP destination port 80, there should be an egress rule to allow TCP source port 80. Defaults to false, which means the rule is stateful and a corresponding rule is not necessary for bidirectional traffic. bool true no
private_subnet_cidr_block_map Map of CIDR Blocks associated to private subnets and it's corresponding names map(any) n/a yes
public_route_table_display_name Public Route Table Display Name. any n/a yes
public_route_table_inet_route_rules_description Description of Route Table Entry for Internet Gateway string "Route entry for Internet Gateway" no
public_route_table_inet_route_rules_destination private_route_table_route_rules_destination string "0.0.0.0/0" no
public_route_table_inet_route_rules_destination_type (Optional) (Updatable) Type of destination for the rule. Required if you provide a destination. string "CIDR_BLOCK" no
public_route_table_svc_route_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "Service Gateway default route" no
public_route_table_svc_route_rules_destination_type (Optional) (Updatable) Type of destination for the rule. Required if you provide a destination. string "SERVICE_CIDR_BLOCK" no
public_security_list_display_name (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. any n/a yes
public_security_list_egress_security_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "All egress rule for all protocols and IP Addresses" no
public_security_list_egress_security_rules_destination (Required) (Updatable) Conceptually, this is the range of IP addresses that a packet originating from the instance can go to. string "0.0.0.0/0" no
public_security_list_egress_security_rules_destination_type Optional) (Updatable) Type of destination for the rule. The default is CIDR_BLOCK string "CIDR_BLOCK" no
public_security_list_egress_security_rules_protocol (Required) (Updatable) The transport protocol. Specify either all or an IPv4 protocol number as defined in Protocol Numbers. Options are supported only for ICMP (1), TCP (6), UDP (17), and ICMPv6 (58). string "all" no
public_security_list_egress_security_rules_stateless (Optional) (Updatable) A stateless rule allows traffic in one direction. Remember to add a corresponding stateless rule in the other direction if you need to support bidirectional traffic. For example, if egress traffic allows TCP destination port 80, there should be an ingress rule to allow TCP source port 80. Defaults to false, which means the rule is stateful and a corresponding rule is not necessary for bidirectional traffic. bool true no
public_security_list_ingress_security_rules_description (Optional) (Updatable) An optional description of your choice for the rule. string "All traffic in for Public Security List" no
public_security_list_ingress_security_rules_protocol (Required) (Updatable) The transport protocol. Specify either all or an IPv4 protocol number as defined in Protocol Numbers. Options are supported only for ICMP (1), TCP (6), UDP (17), and ICMPv6 (58). string "all" no
public_security_list_ingress_security_rules_source (Required) (Updatable) Conceptually, this is the range of IP addresses that a packet coming into the instance can come from. string "0.0.0.0/0" no
public_security_list_ingress_security_rules_source_type Type of source for the rule. string "CIDR_BLOCK" no
public_security_list_ingress_security_rules_stateless A stateless rule allows traffic in one direction. Remember to add a corresponding stateless rule in the other direction if you need to support bidirectional traffic. For example, if ingress traffic allows TCP destination port 80, there should be an egress rule to allow TCP source port 80. Defaults to false, which means the rule is stateful and a corresponding rule is not necessary for bidirectional traffic. bool true no
public_subnet_cidr_block_map Map of CIDR Blocks associated to private subnets and it's corresponding names map(any) n/a yes
region Target region where artifacts are going to be created any n/a yes
service_gateway_display_name Service Gateway Display Name any n/a yes
tenancy_ocid OCID of tenancy any n/a yes
user_ocid User OCID in tenancy. Currently hardcoded to user [email protected] any n/a yes
vcn_cidr_blocks The list of one or more IPv4 CIDR blocks for the VCN any n/a yes
vcn_display_name (Optional) (Updatable) A user-friendly name. Does not have to be unique, and it's changeable. Avoid entering confidential information. any n/a yes
vcn_network_compartment_name Name of the compartment that contains all the networking artifacts. This compartment needs to be pre-created any n/a yes

Outputs

Name Description
dhcp_options DHCP Options associated to VCN
internet_gateway Internet Gateway component
local_peering_gateways Local Peering Gateways Associated to VCN
nat_gateway NAT Gateway component
network_compartment Compartment where network resides on
private_route_table Private Route Table associated to subnets
private_security_list Private Security List associated to subnets
private_subnets Private subnets created
public_route_table Public Route Table assocaited to subnets
public_security_list Public Security List associated to subnets
public_subnets Public subnets created
service_gateway Service Gateway component
vcn VCN Object

Contributing

This project is open source. Please submit your contributions by forking this repository and submitting a pull request! Oracle appreciates any contributions that are made by the open source community.

License

Copyright (c) 2021 Oracle and/or its affiliates.

Licensed under the Universal Permissive License (UPL), Version 1.0.

See LICENSE for more details.

terraform-oci-cloudbricks-lpg-config's People

Contributors

djukickosta avatar dralquinta avatar timclegg avatar ttscoff avatar

Watchers

 avatar  avatar

terraform-oci-cloudbricks-lpg-config's Issues

venv won't be maintained when using different executors

When running the code on a clean instance pivot, the following error appears:

module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update: Destroying... [id=3649438975932086684]
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update: Destroying... [id=8840966116647859764]
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update: Destroying... [id=2001594175851557356]
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update: Destroying... [id=456709225942689807]
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update: Destruction complete after 0s
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update: Destruction complete after 0s
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update: Destruction complete after 0s
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update: Destruction complete after 0s
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update: Creating...
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update: Creating...
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update: Provisioning with 'local-exec'...
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Executing: ["/bin/bash" "-c" "pip3 install virtualenv --user\n~/.local/bin/virtualenv -p python3 lpg_routes_config\nsource lpg_routes_config/bin/activate\npip3 install ortu\nortu --rt-ocid ocid1.routetable.oc1.iad.aaaaaaaacche5wgt3edsc4djti7sekmt7oai4sfqi32nsbkegv2m4lx3ix5a --cidr 10.0.0.0/16 --ne-ocid ocid1.localpeeringgateway.oc1.iad.aaaaaaaau6lwtsanbyn2bsbrklowe4jvjjziys773kiwcielbct3mojfhjiq\n"]
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update: Provisioning with 'local-exec'...
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Executing: ["/bin/bash" "-c" "pip3 install virtualenv --user\n~/.local/bin/virtualenv -p python3 lpg_routes_config\nsource lpg_routes_config/bin/activate\nortu --rt-ocid ocid1.routetable.oc1.iad.aaaaaaaafhk4dnupb44pubuiwxt5tblebldclen6ba66nxhczjddotxamnja --cidr 11.0.0.0/16 --ne-ocid ocid1.localpeeringgateway.oc1.iad.aaaaaaaav3ylrxcbxdjsk7vmrreoou6zwkpmuzytgclictpsk324k7kbcyiq\n"]
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update: Creating...
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update: Creating...
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update: Provisioning with 'local-exec'...
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Executing: ["/bin/bash" "-c" "pip3 install virtualenv --user\n~/.local/bin/virtualenv -p python3 lpg_routes_config\nsource lpg_routes_config/bin/activate\nortu --rt-ocid ocid1.routetable.oc1.iad.aaaaaaaaea5oexbcc62pmx2vxb2d5t5rmofms7fzvlimzgunw3gxz6pbve2a --cidr 11.0.0.0/16 --ne-ocid ocid1.localpeeringgateway.oc1.iad.aaaaaaaav3ylrxcbxdjsk7vmrreoou6zwkpmuzytgclictpsk324k7kbcyiq\n"]
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update: Provisioning with 'local-exec'...
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Executing: ["/bin/bash" "-c" "pip3 install virtualenv --user\n~/.local/bin/virtualenv -p python3 lpg_routes_config\nsource lpg_routes_config/bin/activate\npip3 install ortu\nortu --rt-ocid ocid1.routetable.oc1.iad.aaaaaaaaod7berzum7hi2to6cusq5smwwijyhuzw7gjg4f56pfoyaniu76wq --cidr 10.0.0.0/16 --ne-ocid ocid1.localpeeringgateway.oc1.iad.aaaaaaaau6lwtsanbyn2bsbrklowe4jvjjziys773kiwcielbct3mojfhjiq\n"]
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: virtualenv in /usr/local/lib/python3.6/site-packages
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: virtualenv in /usr/local/lib/python3.6/site-packages
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: importlib-resources>=1.0; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: platformdirs<3,>=2 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: backports.entry-points-selectable>=1.0.4 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: platformdirs<3,>=2 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: backports.entry-points-selectable>=1.0.4 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: zipp>=0.5 in /home/opc/.local/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: importlib-resources>=1.0; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: virtualenv in /usr/local/lib/python3.6/site-packages
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /home/opc/.local/lib/python3.6/site-packages (from importlib-resources>=1.0; python_version < "3.7"->virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: virtualenv in /usr/local/lib/python3.6/site-packages
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: backports.entry-points-selectable>=1.0.4 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: importlib-resources>=1.0; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: platformdirs<3,>=2 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: importlib-resources>=1.0; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): /bin/bash: line 1: /home/opc/.local/bin/virtualenv: No such file or directory
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): /bin/bash: line 2: lpg_routes_config/bin/activate: No such file or directory
module.lpg_route_pvt_hub_to_prd01.null_resource.from_route_table_update (local-exec): /bin/bash: line 3: ortu: command not found
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: platformdirs<3,>=2 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): /bin/bash: line 1: /home/opc/.local/bin/virtualenv: No such file or directory
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): /bin/bash: line 2: lpg_routes_config/bin/activate: No such file or directory
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: backports.entry-points-selectable>=1.0.4 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /home/opc/.local/lib/python3.6/site-packages (from importlib-resources>=1.0; python_version < "3.7"->virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.6/site-packages (from virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /home/opc/.local/lib/python3.6/site-packages (from importlib-resources>=1.0; python_version < "3.7"->virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): /bin/bash: line 1: /home/opc/.local/bin/virtualenv: No such file or directory
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): /bin/bash: line 2: lpg_routes_config/bin/activate: No such file or directory
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): /bin/bash: line 1: /home/opc/.local/bin/virtualenv: No such file or directory
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): /bin/bash: line 2: lpg_routes_config/bin/activate: No such file or directory
module.lpg_route_pub_hub_to_prd01.null_resource.from_route_table_update (local-exec): /bin/bash: line 3: ortu: command not found
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Collecting ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):   Using cached https://files.pythonhosted.org/packages/8d/34/ecd042708308fcf899e7970551b31921fd45f7e3719cc2b6cf82230101ec/ortu-0.5.0.tar.gz
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Collecting ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: oci>=2.26.0 in /usr/lib/python3.6/site-packages (from ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: certifi in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: configparser==4.0.2 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: cryptography<=3.4.7,>=3.2.1 in /usr/lib64/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):   Using cached https://files.pythonhosted.org/packages/8d/34/ecd042708308fcf899e7970551b31921fd45f7e3719cc2b6cf82230101ec/ortu-0.5.0.tar.gz
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Collecting pyOpenSSL<=19.1.0,>=17.5.0 (from oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):   Using cached https://files.pythonhosted.org/packages/9e/de/f8342b68fa9e981d348039954657bdf681b2ab93de27443be51865ffa310/pyOpenSSL-19.1.0-py2.py3-none-any.whl
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: python-dateutil<3.0.0,>=2.5.3 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: pytz>=2016.10 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.6/site-packages (from cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Installing collected packages: ortu, pyOpenSSL
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):   Running setup.py install for ortu: started
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     Running setup.py install for ortu: finished with status 'error'
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-4mrkoms2/ortu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-85ro_tw0-record/install-record.txt --single-version-externally-managed --compile:
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running install
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running build
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running build_py
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     package init file 'ortu/__init__.py' not found (or not a regular file)
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating build
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating build/lib
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating build/lib/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/ __init__.py -> build/lib/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/arguments.py -> build/lib/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/main.py -> build/lib/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/oci_auth.py -> build/lib/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/oci_route_table.py -> build/lib/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running egg_info
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing ortu.egg-info/PKG-INFO
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing dependency_links to ortu.egg-info/dependency_links.txt
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing entry points to ortu.egg-info/entry_points.txt
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing requirements to ortu.egg-info/requires.txt
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing top-level names to ortu.egg-info/top_level.txt
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     [pbr] Reusing existing SOURCES.txt
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running install_lib
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating /usr/local/lib/python3.6/site-packages/ortu
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     error: could not create '/usr/local/lib/python3.6/site-packages/ortu': Permission denied

module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec):     ----------------------------------------
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-4mrkoms2/ortu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-85ro_tw0-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-4mrkoms2/ortu/
module.lpg_route_pvt_hub_to_prd01.null_resource.to_route_table_update (local-exec): /bin/bash: line 4: ortu: command not found
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: oci>=2.26.0 in /usr/lib/python3.6/site-packages (from ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: certifi in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: configparser==4.0.2 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: cryptography<=3.4.7,>=3.2.1 in /usr/lib64/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Collecting pyOpenSSL<=19.1.0,>=17.5.0 (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):   Using cached https://files.pythonhosted.org/packages/9e/de/f8342b68fa9e981d348039954657bdf681b2ab93de27443be51865ffa310/pyOpenSSL-19.1.0-py2.py3-none-any.whl
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: python-dateutil<3.0.0,>=2.5.3 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: pytz>=2016.10 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.6/site-packages (from cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Installing collected packages: ortu, pyOpenSSL
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):   Running setup.py install for ortu: started
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     Running setup.py install for ortu: finished with status 'error'
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7xzix6_o/ortu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-22bpz927-record/install-record.txt --single-version-externally-managed --compile:
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running install
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running build
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running build_py
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     package init file 'ortu/__init__.py' not found (or not a regular file)
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating build
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating build/lib
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating build/lib/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/ __init__.py -> build/lib/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/arguments.py -> build/lib/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/main.py -> build/lib/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/oci_auth.py -> build/lib/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     copying ortu/oci_route_table.py -> build/lib/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running egg_info
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing ortu.egg-info/PKG-INFO
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing dependency_links to ortu.egg-info/dependency_links.txt
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing entry points to ortu.egg-info/entry_points.txt
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing requirements to ortu.egg-info/requires.txt
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     writing top-level names to ortu.egg-info/top_level.txt
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     [pbr] Reusing existing SOURCES.txt
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     running install_lib
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     creating /usr/local/lib/python3.6/site-packages/ortu
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     error: could not create '/usr/local/lib/python3.6/site-packages/ortu': Permission denied

module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec):     ----------------------------------------
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7xzix6_o/ortu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-22bpz927-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-7xzix6_o/ortu/
module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update (local-exec): /bin/bash: line 4: ortu: command not found
╷
│ Error: local-exec provisioner error
│ 
│   with module.lpg_route_pub_hub_to_prd01.null_resource.to_route_table_update,
│   on .terraform/modules/lpg_route_pub_hub_to_prd01/lpgconfig.tf line 16, in resource "null_resource" "to_route_table_update":
│   16:   provisioner "local-exec" {
│ 
│ Error running command 'pip3 install virtualenv --user
│ ~/.local/bin/virtualenv -p python3 lpg_routes_config
│ source lpg_routes_config/bin/activate
│ pip3 install ortu
│ ortu --rt-ocid ocid1.routetable.oc1.iad.aaaaaaaacche5wgt3edsc4djti7sekmt7oai4sfqi32nsbkegv2m4lx3ix5a --cidr 10.0.0.0/16 --ne-ocid
│ ocid1.localpeeringgateway.oc1.iad.aaaaaaaau6lwtsanbyn2bsbrklowe4jvjjziys773kiwcielbct3mojfhjiq
': exit status 127. Output: Requirement already satisfied: virtualenv in /usr/local/lib/python3.6/site-packages
│ Requirement already satisfied: importlib-resources>=1.0; python_version < "3.7" in /usr/local/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: importlib-metadata>=0.12; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: platformdirs<3,>=2 in /usr/local/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: backports.entry-points-selectable>=1.0.4 in /usr/local/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.6/site-packages (from virtualenv)
│ Requirement already satisfied: zipp>=3.1.0; python_version < "3.10" in /home/opc/.local/lib/python3.6/site-packages (from importlib-resources>=1.0; python_version < "3.7"->virtualenv)
│ Requirement already satisfied: typing-extensions>=3.6.4; python_version < "3.8" in /home/opc/.local/lib/python3.6/site-packages (from importlib-metadata>=0.12; python_version < "3.8"->virtualenv)
│ /bin/bash: line 1: /home/opc/.local/bin/virtualenv: No such file or directory
│ /bin/bash: line 2: lpg_routes_config/bin/activate: No such file or directory
│ Collecting ortu
│   Using cached https://files.pythonhosted.org/packages/8d/34/ecd042708308fcf899e7970551b31921fd45f7e3719cc2b6cf82230101ec/ortu-0.5.0.tar.gz
│ Requirement already satisfied: oci>=2.26.0 in /usr/lib/python3.6/site-packages (from ortu)
│ Requirement already satisfied: certifi in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
│ Requirement already satisfied: configparser==4.0.2 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
│ Requirement already satisfied: cryptography<=3.4.7,>=3.2.1 in /usr/lib64/python3.6/site-packages (from oci>=2.26.0->ortu)
│ Collecting pyOpenSSL<=19.1.0,>=17.5.0 (from oci>=2.26.0->ortu)
│   Using cached https://files.pythonhosted.org/packages/9e/de/f8342b68fa9e981d348039954657bdf681b2ab93de27443be51865ffa310/pyOpenSSL-19.1.0-py2.py3-none-any.whl
│ Requirement already satisfied: python-dateutil<3.0.0,>=2.5.3 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
│ Requirement already satisfied: pytz>=2016.10 in /usr/lib/python3.6/site-packages (from oci>=2.26.0->ortu)
│ Requirement already satisfied: six>=1.4.1 in /usr/lib/python3.6/site-packages (from cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
│ Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.6/site-packages (from cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
│ Requirement already satisfied: pycparser in /usr/lib/python3.6/site-packages (from cffi!=1.11.3,>=1.8->cryptography<=3.4.7,>=3.2.1->oci>=2.26.0->ortu)
│ Installing collected packages: ortu, pyOpenSSL
│   Running setup.py install for ortu: started
│     Running setup.py install for ortu: finished with status 'error'
│     Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7xzix6_o/ortu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-22bpz927-record/install-record.txt --single-version-externally-managed --compile:
│     running install
│     running build
│     running build_py
│     package init file 'ortu/__init__.py' not found (or not a regular file)
│     creating build
│     creating build/lib
│     creating build/lib/ortu
│     copying ortu/ __init__.py -> build/lib/ortu
│     copying ortu/arguments.py -> build/lib/ortu
│     copying ortu/main.py -> build/lib/ortu
│     copying ortu/oci_auth.py -> build/lib/ortu
│     copying ortu/oci_route_table.py -> build/lib/ortu
│     running egg_info
│     writing ortu.egg-info/PKG-INFO
│     writing dependency_links to ortu.egg-info/dependency_links.txt
│     writing entry points to ortu.egg-info/entry_points.txt
│     writing requirements to ortu.egg-info/requires.txt
│     writing top-level names to ortu.egg-info/top_level.txt
│     [pbr] Reusing existing SOURCES.txt
│     running install_lib
│     creating /usr/local/lib/python3.6/site-packages/ortu
│     error: could not create '/usr/local/lib/python3.6/site-packages/ortu': Permission denied
│     
│     ----------------------------------------
│ Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-7xzix6_o/ortu/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n',
│ '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-22bpz927-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in
│ /tmp/pip-build-7xzix6_o/ortu/
│ /bin/bash: line 4: ortu: command not found
│ 
╵

As a workaround, by running the following commands manually before running the module, will make the lpg config work:

    python3 -m venv lpg_routes_config
    source lpg_routes_config/bin/activate
    pip3 install --upgrade pip
    pip3 install ortu 

Seems like executor doesn't maintain context of execution, causing ortu to be unavailable when trying to be executed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.