Upload playbooks.
This commit is contained in:
parent
5d6801fdb9
commit
4e441432bd
46
ansible_playbooks/nginx.conf
Normal file
46
ansible_playbooks/nginx.conf
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
worker_processes auto;
|
||||||
|
|
||||||
|
events {
|
||||||
|
worker_connections 512;
|
||||||
|
}
|
||||||
|
|
||||||
|
http {
|
||||||
|
resolver 127.0.0.11;
|
||||||
|
|
||||||
|
upstream backend {
|
||||||
|
server code-server:8443 fail_timeout=30;
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 443 ssl default_server;
|
||||||
|
server_name localhost;
|
||||||
|
|
||||||
|
ssl_protocols TLSv1.3;
|
||||||
|
ssl_prefer_server_ciphers on;
|
||||||
|
ssl_session_cache shared:SSL:10m;
|
||||||
|
ssl_stapling on;
|
||||||
|
ssl_stapling_verify on;
|
||||||
|
ssl_certificate /etc/nginx/ssl/oracle-tf-demo_cert.pem;
|
||||||
|
ssl_certificate_key /etc/nginx/ssl/oracle-tf-demo_privkey.pem;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
proxy_pass http://backend;
|
||||||
|
proxy_set_header Accept-Encoding gzip;
|
||||||
|
proxy_set_header Connection upgrade;
|
||||||
|
proxy_set_header Host $host;
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
|
proxy_set_header X-Forwarded-Proto https;
|
||||||
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
|
proxy_ssl_server_name on;
|
||||||
|
proxy_ssl_trusted_certificate /etc/nginx/ssl/oracle-tf-demo_cert.pem;
|
||||||
|
proxy_ssl_verify on;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name $(REMOTE HOST GOES HERE);
|
||||||
|
return 301 https://$(REMOTE HOST GOES HERE)$request_uri;
|
||||||
|
}
|
||||||
|
}
|
103
ansible_playbooks/tf_app_playbook.yml
Normal file
103
ansible_playbooks/tf_app_playbook.yml
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
---
|
||||||
|
# Automate a self-hosted copy of code-server
|
||||||
|
|
||||||
|
- hosts: oracle
|
||||||
|
remote_user: ubuntu
|
||||||
|
name: Install and deploy vscode server
|
||||||
|
become: true
|
||||||
|
vars:
|
||||||
|
|
||||||
|
certificate_name: "oracle-tf-demo"
|
||||||
|
|
||||||
|
pre_tasks:
|
||||||
|
|
||||||
|
- name: Set a strong password to login to VS Code's browser editor
|
||||||
|
ansible.builtin.pause:
|
||||||
|
prompt: "Set a strong password to login to VS Code's browser editor"
|
||||||
|
echo: false
|
||||||
|
register: vscode_password
|
||||||
|
no_log: true
|
||||||
|
run_once: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Copy nginx configuration to host
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: nginx.conf
|
||||||
|
dest: ~/nginx.conf
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: '0604'
|
||||||
|
|
||||||
|
- name: Download terraform binary
|
||||||
|
ansible.builtin.get_url:
|
||||||
|
url: https://releases.hashicorp.com/terraform/1.4.6/terraform_1.4.6_linux_amd64.zip
|
||||||
|
dest: ~/terraform.zip
|
||||||
|
mode: '0644'
|
||||||
|
|
||||||
|
- name: Unpack terraform binary
|
||||||
|
ansible.builtin.unarchive:
|
||||||
|
remote_src: true
|
||||||
|
src: "/root/terraform.zip"
|
||||||
|
dest: ~/
|
||||||
|
|
||||||
|
- name: Write self signed certificate
|
||||||
|
become: false
|
||||||
|
ansible.builtin.command: 'mkcert -ecdsa -client -cert-file="{{ certificate_name }}_cert.pem" -key-file="{{ certificate_name }}_privkey.pem" ubuntu@tf-demo'
|
||||||
|
args:
|
||||||
|
creates: "{{ certificate_name }}_privkey.pem"
|
||||||
|
|
||||||
|
- name: Create a custom docker network
|
||||||
|
tags: docker
|
||||||
|
community.docker.docker_network:
|
||||||
|
name: nginx-vscode-network
|
||||||
|
|
||||||
|
- name: Launch the nginx-proxy container
|
||||||
|
tags: docker
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: nginx-proxy
|
||||||
|
state: started
|
||||||
|
image: nginx
|
||||||
|
restart: true
|
||||||
|
networks:
|
||||||
|
- name: nginx-vscode-network
|
||||||
|
aliases:
|
||||||
|
- nginx-proxy
|
||||||
|
volumes:
|
||||||
|
- "~/nginx.conf:/etc/nginx/nginx.conf"
|
||||||
|
- "/home/ubuntu/{{ certificate_name }}_cert.pem:/etc/nginx/ssl/{{ certificate_name }}_cert.pem"
|
||||||
|
- "/home/ubuntu/{{ certificate_name }}_privkey.pem:/etc/nginx/ssl/{{ certificate_name }}_privkey.pem"
|
||||||
|
pull: true
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
- "80:80"
|
||||||
|
|
||||||
|
- name: Launch the code-server container
|
||||||
|
tags: docker
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: code-server
|
||||||
|
state: started
|
||||||
|
image: "linuxserver/code-server"
|
||||||
|
volumes:
|
||||||
|
- "~/terraform:/usr/bin/terraform"
|
||||||
|
- "/lib/:/lib/"
|
||||||
|
- "/usr/:/usr/"
|
||||||
|
networks:
|
||||||
|
- name: nginx-vscode-network
|
||||||
|
aliases:
|
||||||
|
- code-server
|
||||||
|
env:
|
||||||
|
PASSWORD: "{{ vscode_password.user_input }}"
|
||||||
|
pull: true
|
||||||
|
ports:
|
||||||
|
- "8443:8443"
|
||||||
|
|
||||||
|
- name: Allow HTTP(S) through the firewall
|
||||||
|
ansible.builtin.iptables:
|
||||||
|
chain: INPUT
|
||||||
|
protocol: tcp
|
||||||
|
destination_ports:
|
||||||
|
- "443"
|
||||||
|
- "80"
|
||||||
|
- "8000"
|
||||||
|
jump: ACCEPT
|
47
ansible_playbooks/tf_infra_playbook.yml
Normal file
47
ansible_playbooks/tf_infra_playbook.yml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
---
|
||||||
|
# Automate Oracle Cloud Compute configration
|
||||||
|
|
||||||
|
- hosts: oracle
|
||||||
|
remote_user: ubuntu
|
||||||
|
name: Install packages, updates, and swap
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Edit partition table on sdc
|
||||||
|
tags: swap
|
||||||
|
community.general.parted:
|
||||||
|
device: /dev/sda
|
||||||
|
number: 1
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Format partition to swap
|
||||||
|
tags: swap
|
||||||
|
community.general.filesystem:
|
||||||
|
fstype: swap
|
||||||
|
dev: /dev/sda1
|
||||||
|
|
||||||
|
- name: Mount swap devices
|
||||||
|
tags: swap
|
||||||
|
ansible.builtin.command: "swapon /dev/sda1"
|
||||||
|
args:
|
||||||
|
creates:
|
||||||
|
/tmp/swap_active
|
||||||
|
|
||||||
|
- name: Update all packages
|
||||||
|
ansible.builtin.apt:
|
||||||
|
update_cache: 'yes'
|
||||||
|
upgrade: dist
|
||||||
|
|
||||||
|
- name: Install apt packages
|
||||||
|
ansible.builtin.apt:
|
||||||
|
pkg:
|
||||||
|
- docker.io
|
||||||
|
- mkcert
|
||||||
|
- unzip
|
||||||
|
- pip
|
||||||
|
|
||||||
|
- name: Reboot the instance
|
||||||
|
tags: swap
|
||||||
|
ansible.builtin.reboot:
|
||||||
|
reboot_timeout: 120
|
50
ansible_playbooks/wolfreealpha_residue.yml
Normal file
50
ansible_playbooks/wolfreealpha_residue.yml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
#
|
||||||
|
# vars:
|
||||||
|
#
|
||||||
|
# search_path: "/var/lib/docker/containers/overlay2/*/diff/usr/share/nginx"
|
||||||
|
# - name: Download the vscode server
|
||||||
|
# become: true
|
||||||
|
# ansible.builtin.get_url:
|
||||||
|
# url: https://github.com/coder/code-server/releases/download/v4.12.0/code-server_4.12.0_amd64.deb
|
||||||
|
# dest: .
|
||||||
|
# mode: '0400'
|
||||||
|
#
|
||||||
|
# - name: Install vs-code server
|
||||||
|
# become: true
|
||||||
|
# ansible.builtin.apt:
|
||||||
|
# deb: ./code-server_4.12.0_amd64.deb
|
||||||
|
#
|
||||||
|
# - name: Copy apt install log to disk
|
||||||
|
# delegate_to: localhost
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# content: '{{ installout }}'
|
||||||
|
# dest: ./install_log.txt
|
||||||
|
# mode: '0600'
|
||||||
|
#
|
||||||
|
# - name: Download the wolfreealpha Dockerfile
|
||||||
|
# become: true
|
||||||
|
# ansible.builtin.get_url:
|
||||||
|
# url: https://git.disroot.org/wolfree/wolfree-dockerfile/raw/branch/master/Dockerfile
|
||||||
|
# dest: .
|
||||||
|
# mode: '0400'
|
||||||
|
#
|
||||||
|
# - name: Copy apt update log to disk
|
||||||
|
# delegate_to: localhost
|
||||||
|
# ansible.builtin.copy:
|
||||||
|
# content: '{{ updateout }}'
|
||||||
|
# dest: ./update_log.txt
|
||||||
|
# mode: '0600'
|
||||||
|
#
|
||||||
|
# - name: Check if file exists
|
||||||
|
# become: true
|
||||||
|
# ansible.builtin.stat:
|
||||||
|
# path: "{{ search_path }}"
|
||||||
|
# register: result
|
||||||
|
#
|
||||||
|
# - name: Build wolfreealpha container
|
||||||
|
# become: true
|
||||||
|
# environment:
|
||||||
|
# DOCKER_BUILDKIT: 1
|
||||||
|
# when: not result.stat.exists
|
||||||
|
# ansible.builtin.command:
|
||||||
|
# cmd: 'docker build --progress=plain --tag wolfree https://try.gitea.io/wolfree/wolfree-dockerfile.git'
|
Loading…
Reference in New Issue
Block a user