Skip to content
Snippets Groups Projects
Commit afada592 authored by Niculut Laurentiu's avatar Niculut Laurentiu
Browse files

added output examples

parent c01a2c7a
Branches
No related tags found
No related merge requests found
Showing
with 1076 additions and 0 deletions
[defaults]
inventory = hosts.ini
private_key_file = /PIACERE/wordpress_rsa
\ No newline at end of file
---
- hosts: APP1
become: yes
vars_files:
- vars.yml
pre_tasks:
- name: "Install packages"
apt: "name={{ item }} state=present"
with_items:
- python3
- python3-pip
- docker
- docker.io
- name: Remove a symbolic link
ansible.builtin.file:
path: /usr/bin/python
state: absent
- name: Create a symbolic link
ansible.builtin.file:
src: /usr/bin/python3
dest: /usr/bin/python
state: link
- name: Create a symbolic link
ansible.builtin.file:
src: /usr/bin/pip3
dest: /usr/bin/pip
state: link
- name: "Install Python packages"
pip: "name={{ item }} state=present"
with_items:
- docker
- name: edit firewall
service:
name: ufw
state: stopped
enabled: false
tasks:
- name: Create a volume
community.docker.docker_volume:
name: mydata
- name: Start a WP container
community.docker.docker_container:
name: wordpress
image: wordpress:5.8.0
state: started
env:
WORDPRESS_DB_HOST: "{{WORDPRESS_DB_HOST}}"
WORDPRESS_DB_USER: "{{WORDPRESS_DB_USER}}"
WORDPRESS_DB_PASSWORD: "{{WORDPRESS_DB_PASSWORD}}"
WORDPRESS_DB_NAME: "{{WORDPRESS_DB_NAME}}"
WORDPRESS_TABLE_PREFIX: "{{WORDPRESS_TABLE_PREFIX}}"
ports:
- "8080:80"
volumes:
- mydata
[DB]
postgres-machine
[APP1]
wordpress-machine
[all:vars]
ansible_connection=ssh
ansible_user=adminuser
ansible_ssh_pass=P@$$w0rd1234!
---
- hosts: DB
become: yes
vars_files:
- vars2.yml
pre_tasks:
- name: Install MySQL
apt: name={{ item }} update_cache=yes cache_valid_time=3600 state=present
with_items:
- mysql-server
- mysql-client
- python-setuptools
- python-mysqldb
- libmysqlclient-dev
- python3-pip
- name: Remove a symbolic link
ansible.builtin.file:
path: /usr/bin/python
state: absent
- name: Create a symbolic link
ansible.builtin.file:
src: /usr/bin/python3
dest: /usr/bin/python
state: link
- name: Create a symbolic link
ansible.builtin.file:
src: /usr/bin/pip3
dest: /usr/bin/pip
state: link
- name: Install Python packages
pip: "name={{ item }} state=present"
with_items:
- PyMySQL
- name: edit firewall
service:
name: ufw
state: stopped
enabled: false
tasks:
- name: Start the MySQL service
service:
name: mysql
state: started
enabled: true
- name: Creation mysql file configuration
file:
path: "/root/.my.cnf"
state: touch
- name: Editing configuration file
replace:
path: /etc/mysql/mysql.conf.d/mysqld.cnf
regexp: '(.*bind-addres.*)'
replace: '#\1'
- name: Restart MySQL
service: name=mysql state=restarted
- name: Ensure MySQL started
service:
name: mysql
state: started
- name: update mysql password for application account
mysql_user:
login_unix_socket: /var/run/mysqld/mysqld.sock
name: "{{ db_user }}"
host: "%"
password: "{{ db_password }}"
state: present
login_user: root
login_password: test
check_implicit_admin: yes
priv: "*.*:ALL,GRANT"
- name: Add the application database
mysql_db:
name: "{{ db_name }}"
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
- name: Restart MySQL
service: name=mysql state=restarted
---
WORDPRESS_DB_HOST: "mysql"
WORDPRESS_DB_USER: "test"
WORDPRESS_DB_PASSWORD: "test"
WORDPRESS_DB_NAME: "app1"
WORDPRESS_TABLE_PREFIX: "wp"
\ No newline at end of file
---
db_user: app1user
db_password: app1user
db_name: app1
\ No newline at end of file
# This file is maintained automatically by "terraform init".
# Manual edits may be lost in future updates.
provider "registry.terraform.io/hashicorp/azurerm" {
version = "2.85.0"
constraints = "~> 2.65"
hashes = [
"h1:vNaBITW0Ds/fgAUZnyl4v9idIBSOqe4NlCXhMsM/CVw=",
"zh:03461c202d202732a5a770a159512664b635d144d10d707376c9a376deb80568",
"zh:248748c9dccf4efc65e323d651ecba18da067f33f41203b20a5364bd05d3f8ee",
"zh:2bedcf1a56e1d7ae5dbc1881ac404379abe908f2b63bfde710d52f1e3c0b4bcb",
"zh:495a861c19e6bd4c9c096f8ccba02f5d71e9f1abdb88493994f4b4f014897b44",
"zh:5660eddc6e5d78a80b0e748bed9fa16a406f6f3ddefdf1e4102353397a382fc9",
"zh:6384b8c5d986b221820a6daffebb26bc00537f9fe64cab65a573097245561890",
"zh:70155e6ce66ccc65d7d3ace9c2bb5f8f3575f595df0404b2e32dc342ae08c06b",
"zh:7b9e3a6b89862108e59b5aa2db189f6ac28688c4e84e6ad4ff0b777cdda35382",
"zh:844514a87268fc58238a9c337d3ce41e5a2923634b554e2d72e97d810153ff35",
"zh:a302d17e8a20e7e75b36a58e3aec0e5fb1f3134cd410a6790f857a734baadf80",
"zh:cb9313b00e8d9e4b3c4c2f93c4e529eb7c9805817e55afadb3ae80ff193d9663",
]
}
yum update
yum install epel-release
yum install ansible
## create the known_hosts
ansible-galaxy collection install community.docker
## maybe run 2 times the same playbook if the symbolic link creation fails
\ No newline at end of file
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 2.65"
}
}
required_version = ">= 0.14.9"
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "TerraformTesting"
location = "eastus" ## REQUIRED
}
## VIRTUAL NETWORK
resource "azurerm_virtual_network" "vnet" {
name = "vNet"
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
}
resource "azurerm_subnet" "subnet" {
name = "internal"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.2.0/24"]
}
## WORDPRESS PUBLIC IP
resource "azurerm_public_ip" "wordpress_public_ip" {
name = "wordpress_public_ip"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
allocation_method = "Dynamic" ##REQUIRED??
sku = "Basic"
}
## WORDPRESS NETWORK INTERFACE
resource "azurerm_network_interface" "wordpress_nic" {
name = "wordpress_nic"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
ip_configuration {
name = "ipconfig1"
subnet_id = azurerm_subnet.subnet.id
private_ip_address_allocation = "Dynamic"
public_ip_address_id = azurerm_public_ip.wordpress_public_ip.id
}
}
## WORDPRESS VM
resource "azurerm_linux_virtual_machine" "wordpress" { ## REQUIRED
resource_group_name = azurerm_resource_group.rg.name
## instance details
name = "wordpress-machine"
location = azurerm_resource_group.rg.location
size = "Standard_B1s" ## REQUIRED
## administrator account
admin_username = "adminuser"
admin_password = "P@$$w0rd1234!" ##For Bastion Connection
disable_password_authentication = false
#availability_set_id = azurerm_availability_set.DemoAset.id
network_interface_ids = [
azurerm_network_interface.wordpress_nic.id
]
os_disk {
caching = "None"
storage_account_type = "Standard_LRS" ## REQUIRED
}
admin_ssh_key {
username = "adminuser"
public_key = file("${path.module}/ssh_keys/wordpress_rsa.pub")
}
source_image_reference {
publisher = "Canonical"
offer = "UbuntuServer"
sku = "18.04-LTS"
version = "latest"
}
}
## MYSQL SAAS
resource "azurerm_mysql_server" "mysql" {
name = "mysql-machine"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
administrator_login = "app1user"
administrator_login_password = "app1"
sku_name = "B_Gen5_2"
storage_mb = 10
version = "5.7"
auto_grow_enabled = true
backup_retention_days = 7
geo_redundant_backup_enabled = false
infrastructure_encryption_enabled = false
public_network_access_enabled = true
ssl_enforcement_enabled = true
ssl_minimal_tls_version_enforced = "TLS1_2"
}
## EXECUTION MANAGER PUBLIC IP
resource "azurerm_public_ip" "em_public_ip" {
name = "em_public_ip"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
allocation_method = "Dynamic" ##REQUIRED??
sku = "Basic"
}
## EXECUTION MANAGER NETWORK INTERFACE
resource "azurerm_network_interface" "em_nic" {
name = "em_nic"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
ip_configuration {
name = "ipconfig1"
subnet_id = azurerm_subnet.subnet.id
private_ip_address_allocation = "Dynamic"
public_ip_address_id = azurerm_public_ip.em_public_ip.id
}
}
## EXECUTION MANAGER
resource "azurerm_linux_virtual_machine" "execution_manager" { ## REQUIRED
resource_group_name = azurerm_resource_group.rg.name
## instance details
name = "execution-manager-machine"
location = azurerm_resource_group.rg.location
size = "Standard_B1s" ## REQUIRED
## administrator account
admin_username = "adminuser"
admin_ssh_key {
username = "adminuser"
public_key = file("${path.module}/ssh_keys/wordpress_rsa.pub")
}
network_interface_ids = [
azurerm_network_interface.em_nic.id
]
os_disk {
caching = "None"
storage_account_type = "Standard_LRS"
}
source_image_reference {
publisher = "OpenLogic"
offer = "CentOS"
sku = "7.5"
version = "latest"
}
}
\ No newline at end of file
output "resource_group_id" {
value = azurerm_resource_group.rg.id
}
output "wordpress_public_ip" {
value = azurerm_public_ip.wordpress_public_ip.ip_address
}
output "wordpress_dns_name" {
value = azurerm_public_ip.wordpress_public_ip.name
}
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCXW+/FLoDBFZ3Luk01jr4IJQxMrrAOX/Tn1ktpPP3P7lovRf3vciNHosnry6q3dV1mWh/L8nKjWHAs1AmP6H9CQrWIetj0vIKBTJDQpZG4unL148Ok529QmhS6pxWk9dfZQutNT2i11+PadCTi3W4Yy31/ZuJf6kvFOGOa954B4IcsG1b5d9kCffKj4uUWg7Yrry7e1pWRdiHgncKKBET2yDdZvJpGGhP1ELSkNjr+qBLkwZ9ofbEzeBL0Z9kdbDSanoS/Nu9mm1M+b5XmHicqjgYYIN3MuBqS28cZCzVYxEHpqlJVD9Rdhv6s4cxUnA+tC+ge3MbkOuNzoE6oJ22MrcL2+tiLpyYwmDlCsby6IdAfzdChbuG47oHP0fS32MXUC+h0ZplGGwYQ3cjOMX+eVhgs2sYHZYgELuDCEd93KM0jyiC9o9bN3qeaEv/HPb2hMGjrByfuX636BTDq2EiK4yozQbG2smBdEpsFyVOfHcWeHDUXI6AL2C7i7fKAvstxbQJsopsxwkoggE16b1GCr94RfU74iwMqI8EdAuL7My/gUSw6pBvfQ2zMCUgOwV/pPsduq+5cBHzbSiFQT3AKtdVBHWRXPEJgIbe4hkYGML2UPcuOIbfGf3JXXPmFjjF9WC+ykcBln98zjbBoxzXQ5+DM2LENkqW4i1A315XNCw== hpcds\50051752@HCITB5CG84348VS
{
"version": 4,
"terraform_version": "1.0.11",
"serial": 212,
"lineage": "309a5841-2818-800b-edde-15849dac3490",
"outputs": {},
"resources": []
}
This diff is collapsed.
variable "resource_group_name" {
default = "rg"
type = string
}
### VMs
variable "small_vm" {
type = object({
name = string,
location = string,
size = string,
admin_username = string,
admin_password = string
})
default = {
admin_password = "P@$$w0rd1234!"
admin_username = "adminuser"
location = "eastus"
name = "myvm"
size = "Standard_B1s"
}
}
### MySql
variable "mysql_vm_name" {
type = string
default = "MySql"
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment