Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Krish Moodbidri
Terraform Openstack
Commits
58dc1a39
Commit
58dc1a39
authored
Jul 11, 2019
by
Ryan Randles Jones
Browse files
Merge branch 'variable-update-branch' into 'master'
Variable update branch See merge request
rrand11/terraform-openstack!18
parents
ec215bdb
928452c3
Changes
3
Hide whitespace changes
Inline
Side-by-side
main.tf
View file @
58dc1a39
resource
"openstack_compute_keypair_v2"
"keypair"
{
name
=
"my-keypair"
public_key
=
"
${
file
(
"~/.ssh/id_rsa.pub"
)
}
"
}
#local variable for ssh connect to ohpc
locals
{
connection
=
{
host
=
"
${
format
(
"164.111.161.%s"
,
element
(
split
(
"."
,
openstack_networking_floatingip_v2
.
ip_pool
.
address
),
3
))
}
"
user
=
"centos"
private_key
=
"
${
file
(
"~/.ssh/id_rsa"
)
}
"
}
name
=
"
${
var
.
keypair-name
}
"
public_key
=
"
${
file
(
var
.
ssh-public-key
)
}
"
}
# creates dmznet
resource
"openstack_networking_network_v2"
"
dmz
net"
{
name
=
"
dmz
net"
admin_state_up
=
"
true
"
resource
"openstack_networking_network_v2"
"
external_
net"
{
name
=
"
${
var
.
external-
net
}
"
admin_state_up
=
"
${
var
.
admin-state-up
}
"
}
resource
"openstack_networking_subnet_v2"
"
dmz
subnet"
{
name
=
"
dmz
subnet"
network_id
=
"
${
openstack_networking_network_v2
.
dmz
net
.
id
}
"
resource
"openstack_networking_subnet_v2"
"
external_
subnet"
{
name
=
"
${
var
.
external-
subnet
}
"
network_id
=
"
${
openstack_networking_network_v2
.
external_
net
.
id
}
"
cidr
=
"192.168.100.0/24"
ip_version
=
4
dns_nameservers
=
[
"8.8.8.8"
]
enable_dhcp
=
true
enable_dhcp
=
"
${
var
.
enable-dhcp
}
"
}
# defines the router borderrouter using floating ip defined in datasources.tf to create the external network id
resource
"openstack_networking_router_v2"
"
border
router"
{
name
=
"
border
router"
admin_state_up
=
"
true
"
resource
"openstack_networking_router_v2"
"router"
{
name
=
"
${
var
.
router
}
"
admin_state_up
=
"
${
var
.
admin-state-up
}
"
external_network_id
=
"
${data
.
openstack_networking_network_v2
.
public-network
.
id
}
"
}
resource
"openstack_networking_router_interface_v2"
"
border
router"
{
router_id
=
"
${
openstack_networking_router_v2
.
border
router
.
id
}
"
subnet_id
=
"
${
openstack_networking_subnet_v2
.
dmz
subnet
.
id
}
"
resource
"openstack_networking_router_interface_v2"
"router"
{
router_id
=
"
${
openstack_networking_router_v2
.
router
.
id
}
"
subnet_id
=
"
${
openstack_networking_subnet_v2
.
external_
subnet
.
id
}
"
}
# creates clusternet
resource
"openstack_networking_network_v2"
"
cluster
net"
{
name
=
"
cluster
net"
admin_state_up
=
"
true
"
resource
"openstack_networking_network_v2"
"
internal_
net"
{
name
=
"
${
var
.
internal-
net
}
"
admin_state_up
=
"
${
var
.
admin-state-up
}
"
}
# creates clustersubnet
# cidr is the subnet range (that subnet range and dns nameservers from the network create file in feat-openstack)
resource
"openstack_networking_subnet_v2"
"
cluster
subnet"
{
name
=
"
cluster
subnet"
network_id
=
"
${
openstack_networking_network_v2
.
cluster
net
.
id
}
"
resource
"openstack_networking_subnet_v2"
"
internal_
subnet"
{
name
=
"
${
var
.
internal-
subnet
}
"
network_id
=
"
${
openstack_networking_network_v2
.
internal_
net
.
id
}
"
cidr
=
"10.1.1.0/24"
ip_version
=
4
enable_dhcp
=
true
enable_dhcp
=
"
${
var
.
enable-dhcp
}
"
}
...
...
@@ -63,8 +54,8 @@ resource "openstack_networking_floatingip_v2" "ip_pool" {
# creates details for the OHPC instance using variables defined in vars.tf
resource
"openstack_compute_instance_v2"
"ohpc"
{
depends_on
=
[
"openstack_networking_subnet_v2.
dmz
subnet"
]
name
=
"
ohpc
"
depends_on
=
[
"openstack_networking_subnet_v2.
external_
subnet"
]
name
=
"
${
var
.
ohpc-instance-name
}
"
image_name
=
"
${
var
.
image
}
"
flavor_name
=
"
${
var
.
flavor
}
"
key_pair
=
"
${
openstack_compute_keypair_v2
.
keypair
.
name
}
"
...
...
@@ -72,10 +63,10 @@ depends_on = ["openstack_networking_subnet_v2.dmzsubnet"]
# defines the networks of the instance
network
{
name
=
"
dmz
net"
name
=
"
${
var
.
external-
net
}
"
}
network
{
name
=
"
cluster
net"
name
=
"
${
var
.
internal-
net
}
"
}
}
...
...
@@ -83,14 +74,16 @@ depends_on = ["openstack_networking_subnet_v2.dmzsubnet"]
resource
"openstack_compute_floatingip_associate_v2"
"ohpc"
{
floating_ip
=
"
${
openstack_networking_floatingip_v2
.
ip_pool
.
address
}
"
instance_id
=
"
${
openstack_compute_instance_v2
.
ohpc
.
id
}
"
provisioner
"remote-exec"
{
# defines ssh connection
connection
{
host
=
"
${
format
(
"
164.111.161.%s
"
,
element
(
split
(
"."
,
openstack_networking_floatingip_v2
.
ip_pool
.
address
),
3
))
}
"
user
=
"
centos
"
private_key
=
"
${
file
(
"~/
.ssh
/id_rsa"
)
}
"
host
=
"
${
format
(
"
${
var
.
host-prefix
}
"
,
element
(
split
(
"."
,
openstack_networking_floatingip_v2
.
ip_pool
.
address
),
3
))
}
"
user
=
"
${
var
.
ohpc-user
}
"
private_key
=
"
${
file
(
var
.
ssh
-private-key
)
}
"
}
# installs programs
provisioner
"remote-exec"
{
inline
=
[
"sudo mkdir -p /CRI_XCBC && sudo chown centos: /CRI_XCBC"
,
"sudo yum install -y epel-release"
,
...
...
@@ -101,24 +94,14 @@ resource "openstack_compute_floatingip_associate_v2" "ohpc" {
]
}
# moves CRI_XCBC file into directory made above
provisioner
"file"
{
source
=
"CRI_XCBC/"
destination
=
"/CRI_XCBC/"
connection
{
host
=
"
${
format
(
"164.111.161.%s"
,
element
(
split
(
"."
,
openstack_networking_floatingip_v2
.
ip_pool
.
address
),
3
))
}
"
#host = "${openstack_networking_floatingip_v2.terraform.address}"
user
=
"centos"
private_key
=
"
${
file
(
"~/.ssh/id_rsa"
)
}
"
}
}
# runs ansible playbook
provisioner
"remote-exec"
{
connection
{
host
=
"
${
format
(
"164.111.161.%s"
,
element
(
split
(
"."
,
openstack_networking_floatingip_v2
.
ip_pool
.
address
),
3
))
}
"
#host = "${openstack_networking_floatingip_v2.ohpc.address}"
user
=
"centos"
private_key
=
"
${
file
(
"~/.ssh/id_rsa"
)
}
"
}
inline
=
[
"sudo ansible-playbook -c local -i /CRI_XCBC/hosts -l `hostname -s` /CRI_XCBC/site.yaml -b"
]
...
...
output.tf
View file @
58dc1a39
...
...
@@ -2,10 +2,10 @@ output "address" {
value
=
"
${
openstack_networking_floatingip_v2
.
ip_pool
.
address
}
"
}
output
"
dmznet
_network_id"
{
value
=
"
${
openstack_networking_network_v2
.
dmz
net
.
id
}
"
output
"
external
_network_id"
{
value
=
"
${
openstack_networking_network_v2
.
external_
net
.
id
}
"
}
output
"
clus
tern
et
_network_id"
{
value
=
"
${
openstack_networking_network_v2
.
cluster
net
.
id
}
"
output
"
in
tern
al
_network_id"
{
value
=
"
${
openstack_networking_network_v2
.
internal_
net
.
id
}
"
}
vars.tf
View file @
58dc1a39
variable
"image"
{
default
=
"CentOS-7-x86_64-GenericCloud-1905"
variable
"admin-state-up"
{
description
=
"whether admin state in enabled. defualt is true"
default
=
true
}
variable
"enable-dhcp"
{
description
=
"whether dhcp in enabled. defualt is true"
default
=
true
}
variable
"external-net"
{
default
=
"dmznet"
}
variable
"external-subnet"
{
default
=
"dmzsubnet"
}
variable
"flavor"
{
default
=
"m1.medium"
}
variable
"host-prefix"
{
description
=
"prefix of host id."
default
=
"164.111.161.%s"
}
variable
"internal-net"
{
default
=
"clusternet"
}
variable
"internal-subnet"
{
default
=
"clustersubnet"
}
variable
"image"
{
default
=
"CentOS-7-x86_64-GenericCloud-1905"
}
variable
"keypair-name"
{
default
=
"os-gen-keypair"
}
variable
"ohpc-instance-name"
{
default
=
"ohpc"
}
variable
"ohpc-user"
{
default
=
"centos"
}
variable
"public-network-name"
{
default
=
"bright-external-flat-externalnet"
}
variable
"router"
{
default
=
"borderrouter"
}
variable
"ssh-private-key"
{
description
=
"Path to file containing private key"
default
=
"~/.ssh/id_rsa"
}
variable
"ssh-public-key"
{
description
=
"Path to file containing public key"
default
=
"~/.ssh/id_rsa.pub"
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment