From 9a5f69a671a0ad841d9914293efbdcef0e1b75bf Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 1 Oct 2020 17:30:24 -0300 Subject: Feat: dev environment using kvmx and puppet --- kvmxfile | 7 ++- puppet/Puppetfile | 53 ++++++++++++++++++ puppet/config/node/box.example.org.yaml | 2 +- puppet/config/node/links.example.org.yaml | 67 +++++++++++++++++++++++ puppet/config/secrets/node/links.example.org.yaml | 10 ++++ 5 files changed, 135 insertions(+), 4 deletions(-) create mode 100644 puppet/Puppetfile create mode 100644 puppet/config/node/links.example.org.yaml create mode 100644 puppet/config/secrets/node/links.example.org.yaml diff --git a/kvmxfile b/kvmxfile index 2a0cdcb..ea600c3 100644 --- a/kvmxfile +++ b/kvmxfile @@ -61,7 +61,7 @@ shared_folder_mountpoint="/srv/shared" # Folder to sync during provisioning in the format "/host/folder1 /guest/folder1,/host/folder2 /guest/folder2[,...]". # Needs ssh_support set to "y" and a workable SSH connection to the guest. #provision_rsync="$KVMX_BASE/share/provision/ /usr/local/share/kvmx/provision/" -#provision_rsync="puppet/ /etc/puppet/" +provision_rsync="puppet/ /etc/puppet/" # Options for provision_rsync #provision_rsync_opts="--exclude=somefolder" @@ -69,10 +69,10 @@ shared_folder_mountpoint="/srv/shared" # Absolute path for a provision script located inside the guest. # Needs ssh_support set to "y" and a workable SSH connection to the guest. #provision_command="sudo apt-get update && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y && sudo apt-get clean" -#provision_command="/usr/local/share/kvmx/provision/development && /etc/puppet/bin/provision && /etc/puppet/bin/deploy" +provision_command="/usr/local/share/kvmx/provision/development && /etc/puppet/bin/provision && /etc/puppet/bin/deploy" #provision_command="/usr/local/share/kvmx/provision/development && /etc/puppet/bin/deploy" #provision_command="/usr/local/share/kvmx/provision/development && /home/$user/code/$VM/bin/custom-provisioner" -provision_command="/usr/local/share/kvmx/provision/development" +#provision_command="/usr/local/share/kvmx/provision/development" #provision_command="/usr/local/share/kvmx/provision/trashman" #provision_command="/usr/local/share/kvmx/provision/desktop-basic" @@ -133,6 +133,7 @@ xrandr="0" # Set additional hostfwd mappings #port_mapping="hostfwd=tcp:127.0.0.1:8080-:80,hostfwd=tcp:127.0.0.1:8443-:443" +port_mapping="hostfwd=tcp:127.0.0.1:8900-:80" # Where the guest image is stored #image="$HOME/.local/share/kvmx/$VM/box.img" diff --git a/puppet/Puppetfile b/puppet/Puppetfile new file mode 100644 index 0000000..2c556c8 --- /dev/null +++ b/puppet/Puppetfile @@ -0,0 +1,53 @@ +# Local modules +mod 'site_nodo', :local => true + +# Basic modules +mod "augeas", + :git => "https://git.fluxo.info/puppet-augeas" +mod "backup", + :git => "https://git.fluxo.info/puppet-backup" +mod "backupninja", + :git => "https://git.fluxo.info/puppet-backupninja", + :ref => "develop" +mod "concat", + :git => "https://git.fluxo.info/puppet-concat" +mod "cron", + :git => "https://git.fluxo.info/puppet-cron" +mod "domain_check", + :git => "https://git.fluxo.info/puppet-domain_check" +mod "exim", + :git => "https://git.fluxo.info/puppet-exim" +mod "lsb", + :git => "https://git.fluxo.info/puppet-lsb" +mod "nodo", + :git => "https://git.fluxo.info/puppet-nodo" +mod "rsyslog", + :git => "https://git.fluxo.info/puppet-rsyslog" +mod "shellprompt", + :git => "https://git.fluxo.info/shellprompt" +mod "sshd", + :git => "https://git.fluxo.info/puppet-sshd", + :ref => "develop" +mod "ssl", + :git => "https://git.fluxo.info/puppet-ssl" +mod "stdlib", + :git => "https://git.fluxo.info/puppet-stdlib" +mod "user", + :git => "https://git.fluxo.info/puppet-user" + +# Additional modules +mod "mysql", + :git => "https://git.fluxo.info/puppet-mysql" +mod "database", + :git => "https://git.fluxo.info/puppet-database" +mod "apache", + :git => "https://git.fluxo.info/puppet-apache" +mod "php", + :git => "https://git.fluxo.info/puppet-php" +mod "ntp", + :git => "https://git.fluxo.info/puppet-ntp" +mod "websites", + :git => "https://git.fluxo.info/puppet-websites" +mod "monkeysphere", + :git => "https://git.fluxo.info/puppet-monkeysphere", + :ref => "develop" diff --git a/puppet/config/node/box.example.org.yaml b/puppet/config/node/box.example.org.yaml index 657bce1..201de61 100644 --- a/puppet/config/node/box.example.org.yaml +++ b/puppet/config/node/box.example.org.yaml @@ -2,7 +2,7 @@ # # Nodo # -nodo::role: 'dev::virtual' +nodo::role: 'web' # # Classes diff --git a/puppet/config/node/links.example.org.yaml b/puppet/config/node/links.example.org.yaml new file mode 100644 index 0000000..449feff --- /dev/null +++ b/puppet/config/node/links.example.org.yaml @@ -0,0 +1,67 @@ +--- +# +# Nodo +# +nodo::role: 'web' + +# +# Classes +# +classes: + - 'php' + +# +# MySQL +# +mysql::server::implementation: 'mariadb-server' +mysql::implementation: 'mariadb-client' + +# +# Backup +# +nodo::subsystem::backup::localhost : false +nodo::subsystem::backup::encryptkey : 'none' +nodo::subsystem::backup::password : 'hackme' + +# +# Websites +# +#websites::default_db : 'dbname' +#websites::default_db::password : 'hackme' + +# +# Apache +# +#apache::default_folder : '/srv/kvmx' +#apache::default_user : 'user' +#apache::default_group : 'user' + +# Manage your app +#apache::sites: +# myapp: +# docroot : "/vagrant/" +# server_alias : 'myapp vagrant localhost' +# use : [ "Site myapp" ] +# tag : 'all' +# owner : vagrant +# group : vagrant +# mpm_user : vagrant +# mpm_group : vagrant +# password : '$5$NZfZqcdyZ3Xt$.kfZejriEJP3fc6RU0gBGEzMPQ/c3XiowVImB6VDrtD' +# shell : '/bin/bash' +apache::sites: + semanticscuttle: + docroot : '/srv/shared/www' + server_alias : '10.0.2.2' + allow_override : 'All' + owner : 'user' + group : 'user' + error_log : true + custom_log : true + custom_log_format : 'custom' + custom_directives : > + + Options Indexes Includes FollowSymLinks MultiViews + AllowOverride All + Require all granted + diff --git a/puppet/config/secrets/node/links.example.org.yaml b/puppet/config/secrets/node/links.example.org.yaml new file mode 100644 index 0000000..182dd01 --- /dev/null +++ b/puppet/config/secrets/node/links.example.org.yaml @@ -0,0 +1,10 @@ +# +# MySQL +# +# The following password is public information and therefore +# shall not be user on production. +mysql::server::rootpw: 'k8tKW9Y14Tr6xoqRDJbMzt1hackme' + +database::instances: + semanticscuttle: + password: 'LLIX7nN9t7ymhackme' -- cgit v1.2.3