mirror of
https://github.com/jcwimer/multi-cloud-kubernetes
synced 2026-04-01 12:55:25 +00:00
Added asible to configure Kubernetes with RKE
This commit is contained in:
@@ -13,7 +13,7 @@ resource "digitalocean_tag" "worker" {
|
||||
|
||||
resource "digitalocean_droplet" "master" {
|
||||
provider = digitalocean.digitalocean
|
||||
image = "ubuntu-20-04-x64"
|
||||
image = "debian-10-x64"
|
||||
name = "multicloud-digitalocean-master"
|
||||
region = "nyc1"
|
||||
size = "s-1vcpu-2gb"
|
||||
@@ -25,7 +25,7 @@ resource "digitalocean_droplet" "master" {
|
||||
|
||||
resource "digitalocean_droplet" "worker" {
|
||||
provider = digitalocean.digitalocean
|
||||
image = "ubuntu-20-04-x64"
|
||||
image = "debian-10-x64"
|
||||
name = "multicloud-digitalocean-worker"
|
||||
region = "nyc1"
|
||||
size = "s-1vcpu-2gb"
|
||||
|
||||
@@ -23,11 +23,18 @@ resource "openstack_compute_secgroup_v2" "multicloud_home" {
|
||||
ip_protocol = "tcp"
|
||||
cidr = "0.0.0.0/0"
|
||||
}
|
||||
|
||||
rule {
|
||||
from_port = 6443
|
||||
to_port = 6443
|
||||
ip_protocol = "tcp"
|
||||
cidr = "0.0.0.0/0"
|
||||
}
|
||||
}
|
||||
|
||||
data "openstack_images_image_v2" "ubuntu" {
|
||||
provider = openstack.home
|
||||
name = "xenial-image"
|
||||
name = "debian-10-image"
|
||||
most_recent = true
|
||||
}
|
||||
|
||||
@@ -37,7 +44,7 @@ resource "openstack_compute_instance_v2" "home-master" {
|
||||
flavor_name = "g1.medium"
|
||||
key_pair = "multicloud"
|
||||
security_groups = [openstack_compute_secgroup_v2.multicloud_home.name]
|
||||
image_name = "xenial-image"
|
||||
image_name = "debian-10-image"
|
||||
user_data = data.template_file.user-data.rendered
|
||||
network {
|
||||
name = "GATEWAY_NET"
|
||||
@@ -49,10 +56,11 @@ resource "openstack_compute_instance_v2" "home-master" {
|
||||
block_device {
|
||||
uuid = data.openstack_images_image_v2.ubuntu.id
|
||||
source_type = "image"
|
||||
volume_size = 20
|
||||
volume_size = 50
|
||||
volume_type = "standard"
|
||||
boot_index = 0
|
||||
destination_type = "volume"
|
||||
delete_on_termination = false
|
||||
delete_on_termination = true
|
||||
}
|
||||
count = 1
|
||||
}
|
||||
@@ -74,10 +82,10 @@ resource "openstack_compute_instance_v2" "home-worker" {
|
||||
block_device {
|
||||
uuid = data.openstack_images_image_v2.ubuntu.id
|
||||
source_type = "image"
|
||||
volume_size = 20
|
||||
volume_size = 50
|
||||
boot_index = 0
|
||||
destination_type = "volume"
|
||||
delete_on_termination = false
|
||||
delete_on_termination = true
|
||||
}
|
||||
count = 1
|
||||
}
|
||||
@@ -23,6 +23,13 @@ resource "openstack_compute_secgroup_v2" "multicloud_ramnode" {
|
||||
ip_protocol = "tcp"
|
||||
cidr = "0.0.0.0/0"
|
||||
}
|
||||
|
||||
rule {
|
||||
from_port = 6443
|
||||
to_port = 6443
|
||||
ip_protocol = "tcp"
|
||||
cidr = "0.0.0.0/0"
|
||||
}
|
||||
}
|
||||
|
||||
resource "openstack_compute_instance_v2" "ramnode-master" {
|
||||
@@ -31,7 +38,7 @@ resource "openstack_compute_instance_v2" "ramnode-master" {
|
||||
flavor_name = "2GB SKVM"
|
||||
key_pair = "multicloud"
|
||||
security_groups = [openstack_compute_secgroup_v2.multicloud_ramnode.name]
|
||||
image_name = "Ubuntu 20.04 Server Cloud"
|
||||
image_name = "Debian 10 Cloud"
|
||||
user_data = data.template_file.user-data.rendered
|
||||
network {
|
||||
name = "Public"
|
||||
@@ -49,7 +56,7 @@ resource "openstack_compute_instance_v2" "ramnode-worker" {
|
||||
flavor_name = "2GB SKVM"
|
||||
key_pair = "multicloud"
|
||||
security_groups = [openstack_compute_secgroup_v2.multicloud_ramnode.name]
|
||||
image_name = "Ubuntu 20.04 Server Cloud"
|
||||
image_name = "Debian 10 Cloud"
|
||||
user_data = data.template_file.user-data.rendered
|
||||
network {
|
||||
name = "Public"
|
||||
|
||||
@@ -5,7 +5,7 @@ resource "local_file" "hosts_cfg" {
|
||||
ramnode_masters = "${join("\n", openstack_compute_instance_v2.ramnode-master.*.network.0.fixed_ip_v4)}"
|
||||
home_workers = "${join("\n", openstack_compute_instance_v2.home-worker.*.network.0.fixed_ip_v4)}"
|
||||
home_masters = "${join("\n", openstack_compute_instance_v2.home-master.*.network.0.fixed_ip_v4)}"
|
||||
do_workers = "${join("\n", digitalocean_droplet.worker.*.ipv4_address)}"
|
||||
do_workers = "${join("\n", digitalocean_droplet.worker.*.ipv4_address) }"
|
||||
do_masters = "${join("\n", digitalocean_droplet.master.*.ipv4_address)}"
|
||||
}
|
||||
)
|
||||
|
||||
@@ -1,6 +1,36 @@
|
||||
#!/bin/bash
|
||||
#!/bin/bash
|
||||
apt-get update
|
||||
apt-get install python-dev python-pip curl sudo -y
|
||||
|
||||
if ! which docker > /dev/null; then
|
||||
curl -s -L https://raw.githubusercontent.com/rancher/install-docker/master/19.03.9.sh | bash
|
||||
fi
|
||||
curl -s https://install.zerotier.com | sudo bash
|
||||
zerotier-cli join ${zerotier_network}
|
||||
|
||||
curl -s https://install.zerotier.com | bash
|
||||
zerotier-cli join ${zerotier_network}
|
||||
user=debian
|
||||
if ! cat /etc/passwd | grep debian; then
|
||||
# Add the user (--gecos "" ensures that this runs non-interactively)
|
||||
adduser --disabled-password --gecos "" $user
|
||||
|
||||
# Give read-only access to log files by adding the user to adm group
|
||||
# Other groups that you may want to add are apache, nginx, mysql etc. for their log files
|
||||
usermod -a -G adm $user
|
||||
|
||||
# Give sudo access by adding the user to sudo group
|
||||
usermod -a -G sudo $user
|
||||
# Allow passwordless sudo
|
||||
echo "$user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/$user
|
||||
|
||||
# Add the user's auth key to allow ssh access
|
||||
mkdir /home/$user/.ssh
|
||||
cp /root/.ssh/authorized_keys /home/$user/.ssh/authorized_keys
|
||||
|
||||
# Change ownership and access modes for the new directory/file
|
||||
chown -R $user:$user /home/$user/.ssh
|
||||
chmod -R go-rx /home/$user/.ssh
|
||||
fi
|
||||
usermod -a -G docker $user
|
||||
|
||||
# for RKE
|
||||
# iptables -I INPUT -j ACCEPT
|
||||
Reference in New Issue
Block a user