modified: ../.gitignore Added env files modified: ../ansible/playbooks/equilibrateit.com.yml Moved tasks to role deleted: ../docker-compose.yml Moved file to role new file: main.tf Tofu provider new file: variables.tf Tofu resource variables deleted: ../wordpress/apache/Dockerfile Changed file to template, moved to rolemain
parent
1111c1a203
commit
b3bffb22c0
6 changed files with 71 additions and 80 deletions
@ -1 +1,4 @@ |
|||||||
archives/ |
archives/ |
||||||
|
tofu/terraform* |
||||||
|
tofu/.terraform* |
||||||
|
tofu/.* |
||||||
|
@ -1,44 +0,0 @@ |
|||||||
version: '3.6' |
|
||||||
|
|
||||||
services: |
|
||||||
wordpress: |
|
||||||
build: ./wordpress/apache |
|
||||||
volumes: |
|
||||||
- ~/wordpress/data:/var/www/html |
|
||||||
depends_on: |
|
||||||
- db |
|
||||||
ports: |
|
||||||
- 8080:80 # change to 80:80 when the shop is ready to go live |
|
||||||
- 4443:443 # change to 80:80 when the shop is ready to go live |
|
||||||
restart: always |
|
||||||
env_file: ".env" |
|
||||||
|
|
||||||
db: |
|
||||||
image: mysql:5.7 |
|
||||||
volumes: |
|
||||||
- ~/wordpress/database:/var/lib/mysql |
|
||||||
restart: always |
|
||||||
env_file: ".env" |
|
||||||
|
|
||||||
wordpress-cli: |
|
||||||
depends_on: |
|
||||||
- db |
|
||||||
- wordpress |
|
||||||
image: wordpress:cli |
|
||||||
# vstm: This is required to run wordpress-cli with the same |
|
||||||
# user-id as wordpress. This way there are no permission problems |
|
||||||
# when running the cli |
|
||||||
user: '33' |
|
||||||
# vstm: The sleep 10 is required so that the command is run after |
|
||||||
# mysql is initialized. Depending on your machine this might take |
|
||||||
# longer or it can go faster. |
|
||||||
command: > |
|
||||||
/bin/sh -c ' |
|
||||||
sleep 10; |
|
||||||
wp user list' |
|
||||||
|
|
||||||
# vstm: add shared volume |
|
||||||
volumes: |
|
||||||
- ~/wordpress/data:/var/www/html |
|
||||||
# WP CLI needs the environment variables used for the Wordpress image |
|
||||||
env_file: ".env" |
|
@ -0,0 +1,22 @@ |
|||||||
|
terraform { |
||||||
|
required_providers { |
||||||
|
linode = { |
||||||
|
source = "linode/linode" |
||||||
|
version = "2.26.0" |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
provider linode { |
||||||
|
# Configuration options |
||||||
|
token = var.token |
||||||
|
} |
||||||
|
|
||||||
|
resource linode_instance "instance" { |
||||||
|
label = var.label |
||||||
|
image = var.image |
||||||
|
region = var.region |
||||||
|
type = var.type |
||||||
|
authorized_keys = var.authorized_keys |
||||||
|
root_pass = var.root_pass |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
## Required Variables |
||||||
|
## |
||||||
|
|
||||||
|
variable "token" { |
||||||
|
description = "The linode API Token" |
||||||
|
type = string |
||||||
|
} |
||||||
|
|
||||||
|
variable "label" { |
||||||
|
description = "The label for the linode." |
||||||
|
type = string |
||||||
|
} |
||||||
|
|
||||||
|
variable "root_pass" { |
||||||
|
description = "The root password of the linode." |
||||||
|
type = string |
||||||
|
} |
||||||
|
|
||||||
|
## Optional Variables |
||||||
|
## |
||||||
|
|
||||||
|
variable "image" { |
||||||
|
description = "The OS image for the linode." |
||||||
|
type = string |
||||||
|
default = "linode/almalinux9" |
||||||
|
} |
||||||
|
|
||||||
|
variable "region" { |
||||||
|
description = "The region where the linode will run." |
||||||
|
type = string |
||||||
|
default = "ca-central" |
||||||
|
} |
||||||
|
|
||||||
|
variable "type" { |
||||||
|
description = "The linode host type." |
||||||
|
type = string |
||||||
|
default = "g6-nanode-1" |
||||||
|
} |
||||||
|
|
||||||
|
variable "authorized_keys" { |
||||||
|
description = "The list of public keys to be authorized for ssh login." |
||||||
|
type = list |
||||||
|
default = ["ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCeRI1w3uNny7KjK2UdlAnyoGdGgtOx4isSD52u5dr4QkkdLRMj42dLjgT0MK+QehlgaH2XzFPMDz+hZQ+66YeBSm+F4km/8F9XVyUzGl0scUA1p0pqeL3FiyM3Art4Bo71zuE3PvMjyI3pGMKQ3VDWVA0XdAjjSw4G+czJTxZLLBPGvzDT07WuWM4Evl6H21Gn7PB6CKNV0vuUZwGiCsjRbghml1L2kDtTXV1B6wQsniuhQigIVo6YXhMgge/2UCcmiyeEizdfaSstrQHEyxFMvlPUJyw4a3plAuPORDyZdAFF6OA7/wP5fVWoCu/CkbMIDjPifXGQOuhQU1qUVy7r m00t@miserver.lan"] |
||||||
|
} |
@ -1,21 +0,0 @@ |
|||||||
FROM wordpress:6.6.1-php8.2-apache |
|
||||||
|
|
||||||
COPY fullchain.pem /etc/ssl/certs/ |
|
||||||
COPY privkey.pem /etc/ssl/private/ |
|
||||||
|
|
||||||
RUN set -eux; \ |
|
||||||
a2enmod ssl; \ |
|
||||||
{ \ |
|
||||||
echo '<VirtualHost _default_:443>'; \ |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# these IP ranges are reserved for "private" use and should thus *usually* be safe inside Docker |
|
||||||
echo 'ServerName equilibrateit.com:443'; \ |
|
||||||
echo 'SSLEngine on'; \ |
|
||||||
echo 'SSLCertificateKeyFile /etc/ssl/private/privkey.pem'; \ |
|
||||||
echo 'SSLCertificateFile /etc/ssl/certs/fullchain.pem'; \ |
|
||||||
echo '</VirtualHost>'; \ |
|
||||||
} > /etc/apache2/sites-available/equilibrateit.com-ssl.conf; \ |
|
||||||
ln -s /etc/apache2/sites-available/equilibrateit.com-ssl.conf /etc/apache2/sites-enabled/equilibrateit.com-ssl.conf; \ |
|
Loading…
Reference in new issue