Adding Chapter 1 : Packer will build for you
This commit is contained in:
commit
02e13dfb00
|
@ -0,0 +1,4 @@
|
||||||
|
.bin/
|
||||||
|
images/
|
||||||
|
packer_cache/
|
||||||
|
*inventory
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Fabrica
|
||||||
|
## Build your infrastructure from scratch with Eole/Hâpy Packer and Terraform
|
|
@ -0,0 +1,101 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WORKDIR="./terraform"
|
||||||
|
TERRA="terraform"
|
||||||
|
VAR_FILE="main.tfvars"
|
||||||
|
PACKER_ROOT="./packer"
|
||||||
|
|
||||||
|
# FIXME
|
||||||
|
function needGitPull()
|
||||||
|
{
|
||||||
|
br=$(git branch --show-current)
|
||||||
|
diff=$(git rev-list HEAD...origin/master --count)
|
||||||
|
return ${diff}
|
||||||
|
}
|
||||||
|
|
||||||
|
function trun()
|
||||||
|
{
|
||||||
|
#needGitPull
|
||||||
|
cd ${WORKDIR}
|
||||||
|
if [[ ${?} -ne 0 ]]
|
||||||
|
then
|
||||||
|
echo "Branch is not up 2 date !"
|
||||||
|
echo "--> Git pull needed !"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
${TERRA} ${1} -var-file ${VAR_FILE}
|
||||||
|
res=${?}
|
||||||
|
cd -
|
||||||
|
|
||||||
|
return ${res}
|
||||||
|
}
|
||||||
|
|
||||||
|
function plan()
|
||||||
|
{
|
||||||
|
trun plan
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function apply()
|
||||||
|
{
|
||||||
|
trun apply
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function destroy()
|
||||||
|
{
|
||||||
|
trun destroy
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
function taint()
|
||||||
|
{
|
||||||
|
target=$1
|
||||||
|
resource=$2
|
||||||
|
|
||||||
|
cd ${WORKDIR}
|
||||||
|
|
||||||
|
$TERRA taint module.${resource}.opennebula_template.vm_template
|
||||||
|
$TERRA taint module.${resource}.opennebula_virtual_machine.vm
|
||||||
|
$TERRA taint module.${resource}.opennebula_image.system
|
||||||
|
cd -
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function taint_all()
|
||||||
|
{
|
||||||
|
target=$1
|
||||||
|
resource=$2
|
||||||
|
cd ${WORKDIR}
|
||||||
|
|
||||||
|
$TERRA taint module.${resource}.opennebula_template.vm_template
|
||||||
|
$TERRA taint module.${resource}.opennebula_virtual_machine.vm
|
||||||
|
$TERRA taint module.${resource}.opennebula_image.system
|
||||||
|
$TERRA taint module.${resource}.opennebula_image.data
|
||||||
|
|
||||||
|
cd -
|
||||||
|
}
|
||||||
|
|
||||||
|
function init()
|
||||||
|
{
|
||||||
|
trun init
|
||||||
|
return ${?}
|
||||||
|
}
|
||||||
|
|
||||||
|
function build()
|
||||||
|
{
|
||||||
|
target=$2
|
||||||
|
cd ${PACKER_ROOT}
|
||||||
|
echo "Building ${target}"
|
||||||
|
make ${target}
|
||||||
|
return ${?}
|
||||||
|
}
|
||||||
|
|
||||||
|
function publish()
|
||||||
|
{
|
||||||
|
target=$2
|
||||||
|
echo "FIXME for publish"
|
||||||
|
}
|
||||||
|
|
||||||
|
$1 $@
|
||||||
|
exit ${?}
|
|
@ -0,0 +1,10 @@
|
||||||
|
include targets/*.mk
|
||||||
|
|
||||||
|
build:
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf images/*
|
||||||
|
|
||||||
|
.PHONY: clean deploy
|
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ $# -ne 3 ]]
|
||||||
|
then
|
||||||
|
echo Missing arguments
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
WORKDIR=${1}
|
||||||
|
DOMAIN=${2}
|
||||||
|
VERSION=${3}
|
||||||
|
|
||||||
|
function findImages()
|
||||||
|
{
|
||||||
|
find ${1} -iname "${2}*.img"
|
||||||
|
}
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
for imageName in $(findImages ${WORKDIR} ${DOMAIN})
|
||||||
|
do
|
||||||
|
latestName=$(echo $imageName | sed "s/.img/_latest.img/g")
|
||||||
|
newName=$(echo $imageName | sed "s/.img/_${VERSION}.img/g")
|
||||||
|
virt-sparsify -x --compress --tmp ./ --format qcow2 ${imageName} ${newName}
|
||||||
|
if [[ $? -eq 0 ]]
|
||||||
|
then
|
||||||
|
ln -s ${newName} ${latestName}
|
||||||
|
rm -rf ${imageName}
|
||||||
|
fi
|
||||||
|
done
|
|
@ -0,0 +1,65 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
WORKDIR=${1}
|
||||||
|
|
||||||
|
sys_img=$(find ${WORKDIR} -name "*.img")
|
||||||
|
provisionDirectory=${2}
|
||||||
|
|
||||||
|
if [[ ! -d ${provisionDirectory} ]]
|
||||||
|
then
|
||||||
|
mkdir -p ${provisionDirectory}
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmpMntPnt=$(mktemp -d)
|
||||||
|
tmpWorkDir=$(mktemp -d)
|
||||||
|
|
||||||
|
#
|
||||||
|
# $1 : qcow image
|
||||||
|
# $2 : mount point
|
||||||
|
#
|
||||||
|
function mountQcowImage()
|
||||||
|
{
|
||||||
|
guestmount -a $1 -i --ro ${2}
|
||||||
|
return ${?}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getEoleDbConfig()
|
||||||
|
{
|
||||||
|
workdir=${1}
|
||||||
|
mntPnt=${2}
|
||||||
|
provisionDir=${3}
|
||||||
|
|
||||||
|
cd ${workdir}
|
||||||
|
cp ${mntPnt}/etc/eole/eole-db.d/* .
|
||||||
|
mkdir -p ${provisionDir}/etc/eole/eole-db.d
|
||||||
|
cp * ${provisionDir}/etc/eole/eole-db.d
|
||||||
|
cd -
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function processConfiguration()
|
||||||
|
{
|
||||||
|
workdir=${1}
|
||||||
|
mntPnt=${2}
|
||||||
|
provisionDir=${3}
|
||||||
|
|
||||||
|
files=$(awk '/file:/ {gsub(/,|"|\047/,""); print $3}' ${mntPnt}/etc/eole/eole-db.d/*)
|
||||||
|
|
||||||
|
for file in ${files}
|
||||||
|
do
|
||||||
|
dirname=$(dirname ${file})
|
||||||
|
dest="${provisionDir}/${dirname}"
|
||||||
|
mkdir -p ${dest}
|
||||||
|
cp ${mntPnt}${file} ${dest}
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
mountQcowImage ${sys_img} ${tmpMntPnt}
|
||||||
|
|
||||||
|
getEoleDbConfig ${tmpWorkDir} ${tmpMntPnt} ${provisionDirectory}
|
||||||
|
|
||||||
|
processConfiguration ${tmpWorkDir} ${tmpMntPnt} ${provisionDirectory}
|
||||||
|
|
||||||
|
umount ${tmpMntPnt}
|
||||||
|
rm -rf ${tmpMntPnt}
|
||||||
|
#rm -rf ${tmpWorkDir}
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<creole>
|
||||||
|
|
||||||
|
<files>
|
||||||
|
</files>
|
||||||
|
|
||||||
|
<variables>
|
||||||
|
<family name='Interface-0'>
|
||||||
|
<variable name='eth0_method' redefine='True' hidden='False' />
|
||||||
|
</family>
|
||||||
|
<separators/>
|
||||||
|
</variables>
|
||||||
|
<constraints>
|
||||||
|
<check name="valid_enum" target="eth0_method">
|
||||||
|
<param>['statique','dhcp']</param>
|
||||||
|
</check>
|
||||||
|
</constraints>
|
||||||
|
<help/>
|
||||||
|
</creole>
|
||||||
|
<!-- vim: ts=4 sw=4 expandtab
|
||||||
|
-->
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
installPython()
|
||||||
|
{
|
||||||
|
apk add --no-cache python3
|
||||||
|
ln -sf python3 /usr/bin/python
|
||||||
|
}
|
||||||
|
|
||||||
|
installPython
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
source /root/provisioning/common.sh
|
||||||
|
|
||||||
|
removePkg()
|
||||||
|
{
|
||||||
|
apk del --no-cache $1
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanProv()
|
||||||
|
{
|
||||||
|
rm -rf /root/provisioning
|
||||||
|
return $?
|
||||||
|
}
|
||||||
|
|
||||||
|
for pkg in ${PKG_TO_REMOVE}
|
||||||
|
do
|
||||||
|
removePkg ${pkg}
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "Warning : removing package ${pkg} failed with code $?"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
cleanProv
|
||||||
|
exit $?
|
|
@ -0,0 +1,53 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
set -xeo pipefail
|
||||||
|
|
||||||
|
# Install one-context
|
||||||
|
wget https://github.com/OpenNebula/addon-context-linux/releases/download/v5.8.0/one-context-5.8.0-r1.apk
|
||||||
|
apk add --allow-untrusted --no-cache one-context-5.8.0-r1.apk
|
||||||
|
|
||||||
|
apk add --no-cache e2fsprogs-extra
|
||||||
|
apk add --no-cache haveged
|
||||||
|
|
||||||
|
# Enable VM contextualization
|
||||||
|
rc-update add one-context default
|
||||||
|
rc-update add haveged boot
|
||||||
|
|
||||||
|
rc-status
|
||||||
|
|
||||||
|
# Add DNS hook in one-context
|
||||||
|
mkdir -p /usr/local/share/one-context/scripts
|
||||||
|
cat > /usr/local/share/one-context/scripts/dns-nebula <<'EOF'
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. /usr/share/one-context/scripts/utils.sh
|
||||||
|
|
||||||
|
dns_servers="$(getval ETH0_DNS)"
|
||||||
|
|
||||||
|
echo > /etc/resolv.conf
|
||||||
|
for nameserver_address in $dns_servers; do
|
||||||
|
echo "nameserver $nameserver_address" >> /etc/resolv.conf
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
chmod +x /usr/local/share/one-context/scripts/dns-nebula
|
||||||
|
ln -s /usr/local/share/one-context/scripts/dns-nebula /etc/one-context.d/01-dns-nebula
|
||||||
|
|
||||||
|
# Reset network interfaces
|
||||||
|
cat > /etc/network/interfaces <<EOF
|
||||||
|
auto lo
|
||||||
|
iface lo inet loopback
|
||||||
|
# BEGIN generated by /usr/share/one-context/scripts/network
|
||||||
|
# Do not modify this block, any modifications will be lost after reboot!
|
||||||
|
auto eth0
|
||||||
|
iface eth0 inet dhcp
|
||||||
|
# END generated
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Disable resolv.conf overwriting
|
||||||
|
mkdir -p /etc/udhcpc
|
||||||
|
echo 'RESOLV_CONF=NO' >> /etc/udhcpc/udhcpc.conf
|
||||||
|
|
||||||
|
# Clean up
|
||||||
|
rm -rf /root/*.apk
|
||||||
|
|
||||||
|
sync
|
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Zeroize
|
||||||
|
dd if=/dev/zero of=/myZeroFile
|
||||||
|
rm -rf /myZeroFile
|
||||||
|
sync
|
|
@ -0,0 +1,77 @@
|
||||||
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
|
set -xeo pipefail
|
||||||
|
|
||||||
|
setup-ntp -c chrony
|
||||||
|
setup-apkrepos http://dl-cdn.alpinelinux.org/alpine/v3.10/main/ http://dl-cdn.alpinelinux.org/alpine/v3.10/community/
|
||||||
|
|
||||||
|
apk add --no-cache wget
|
||||||
|
apk add --no-cache expect #util-linux coreutils
|
||||||
|
apk add --no-cache haveged
|
||||||
|
apk add --no-cache ca-certificates
|
||||||
|
|
||||||
|
rc-update add haveged boot
|
||||||
|
service haveged start
|
||||||
|
|
||||||
|
update-ca-certificates
|
||||||
|
|
||||||
|
export DISKOPTS="-L"
|
||||||
|
expect <<EOF
|
||||||
|
set timeout 300
|
||||||
|
|
||||||
|
spawn setup-alpine
|
||||||
|
|
||||||
|
expect "Select keyboard layout**"
|
||||||
|
send "fr\r"
|
||||||
|
|
||||||
|
expect "Select variant**"
|
||||||
|
send "fr-azerty\r"
|
||||||
|
|
||||||
|
expect "Enter system hostname**"
|
||||||
|
send "${VM_NAME}\r"
|
||||||
|
|
||||||
|
expect "Which one do you want to initialize**"
|
||||||
|
send "eth0\r"
|
||||||
|
|
||||||
|
expect "Ip address for eth0**"
|
||||||
|
send "dhcp\r"
|
||||||
|
|
||||||
|
expect "Do you want to do any manual network configuration**"
|
||||||
|
send "no\r"
|
||||||
|
|
||||||
|
expect "New password:"
|
||||||
|
send "${ROOT_PASSWORD}\r"
|
||||||
|
|
||||||
|
expect "Retype password:"
|
||||||
|
send "${ROOT_PASSWORD}\r"
|
||||||
|
|
||||||
|
expect "Which timezone are you in**"
|
||||||
|
send "Europe/Paris\r"
|
||||||
|
|
||||||
|
expect "HTTP/FTP proxy URL**"
|
||||||
|
send "none\r"
|
||||||
|
|
||||||
|
expect "Enter mirror number**"
|
||||||
|
send "done\r"
|
||||||
|
|
||||||
|
expect "Which SSH server**"
|
||||||
|
send "openssh\r"
|
||||||
|
|
||||||
|
expect "Which disk*s* would you like to use**"
|
||||||
|
send "vda\r"
|
||||||
|
|
||||||
|
expect "How would you like to use it**"
|
||||||
|
send "sys\r"
|
||||||
|
|
||||||
|
expect "WARNING: Erase the above disk*s* and continue**"
|
||||||
|
send "y\r"
|
||||||
|
|
||||||
|
expect eof
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Remove expect package
|
||||||
|
apk del --no-cache expect
|
||||||
|
|
||||||
|
sync
|
||||||
|
|
||||||
|
reboot
|
|
@ -0,0 +1 @@
|
||||||
|
06eab9a4d3ce28ce31d413b78b6ff94285e432179b6a6cba711e6c6653667567 alpine-virt-3.10.2-x86_64.iso
|
|
@ -0,0 +1 @@
|
||||||
|
fe694a34c0e2d30b9e5dea7e2c1a3892c1f14cb474b69cc5c557a52970071da5 alpine-virt-3.12.0-x86_64.iso
|
|
@ -0,0 +1,54 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -xe
|
||||||
|
|
||||||
|
source /root/provisioning/common.sh
|
||||||
|
|
||||||
|
installRsyslogRelp()
|
||||||
|
{
|
||||||
|
apk add --no-cache rsyslog-relp
|
||||||
|
}
|
||||||
|
|
||||||
|
installNodeExporter()
|
||||||
|
{
|
||||||
|
local node_exporter_version="0.18.1"
|
||||||
|
local node_exporter_archive="node_exporter-${node_exporter_version}.linux-amd64.tar.gz"
|
||||||
|
local node_exporter_url="https://github.com/prometheus/node_exporter/releases/download/v${node_exporter_version}/${node_exporter_archive}"
|
||||||
|
local node_exporter_sum="b2503fd932f85f4e5baf161268854bf5d22001869b84f00fd2d1f57b51b72424"
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
downloadArchive ${node_exporter_url} ${node_exporter_sum} ${node_exporter_archive} sha256sum
|
||||||
|
extractArchiveXZ ${node_exporter_archive} /srv/node_exporter
|
||||||
|
cd -
|
||||||
|
}
|
||||||
|
|
||||||
|
confSyslog()
|
||||||
|
{
|
||||||
|
SYSLOG_CONF_DIR="/etc/rsyslog.d/"
|
||||||
|
SYSLOG_CONF_FILE="${SYSLOG_CONF_DIR}/aggregation.conf"
|
||||||
|
QUEUE_DIR="/var/log/rsyslog/queues"
|
||||||
|
|
||||||
|
if [ ! -d ${SYSLOG_CONF_DIR} ]
|
||||||
|
then
|
||||||
|
mkdir ${SYSLOG_CONF_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d ${QUEUE_DIR} ]
|
||||||
|
then
|
||||||
|
mkdir -p ${QUEUE_DIR}
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "\$WorkDirectory ${QUEUE_DIR}" >> ${SYSLOG_CONF_FILE}
|
||||||
|
echo "\$ActionQueueType LinkedList" >> ${SYSLOG_CONF_FILE}
|
||||||
|
echo "\$ActionQueueFileName send_all" >> ${SYSLOG_CONF_FILE}
|
||||||
|
echo "\$ActionQueueSaveOnShutdown on" >> ${SYSLOG_CONF_FILE}
|
||||||
|
echo "" >> ${SYSLOG_CONF_FILE}
|
||||||
|
echo "*.* :omrelp:${SYSLOG_SERVER}:${SYSLOG_PORT}" >> ${SYSLOG_CONF_FILE}
|
||||||
|
}
|
||||||
|
|
||||||
|
cat /etc/resolv.conf
|
||||||
|
|
||||||
|
#Not needed for ber
|
||||||
|
#installRsyslogRelp
|
||||||
|
#installNodeExporter
|
||||||
|
#confSyslog
|
|
@ -0,0 +1,51 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# downloadArchive
|
||||||
|
# ${1} : The download url
|
||||||
|
# ${2} : the checksum
|
||||||
|
# ${3} : the filename of download target
|
||||||
|
# ${4} : the checksum command to use (default sha256sum)
|
||||||
|
#
|
||||||
|
downloadArchive(){
|
||||||
|
url=${1}
|
||||||
|
sum=${2}
|
||||||
|
archive=${3}
|
||||||
|
if [ -n ${4} ]
|
||||||
|
then
|
||||||
|
checkCmd=${4}
|
||||||
|
else
|
||||||
|
checkCmd="sha256sum"
|
||||||
|
fi
|
||||||
|
|
||||||
|
wget -q ${url}
|
||||||
|
set +e
|
||||||
|
echo "${sum} ${archive}" | ${checkCmd} -cs
|
||||||
|
if [ ${?} ]
|
||||||
|
then
|
||||||
|
set -e
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
set -e
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
extractArchiveXZ(){
|
||||||
|
source=${1}
|
||||||
|
destination=${2}
|
||||||
|
cmd="tar xzvf"
|
||||||
|
|
||||||
|
if [ ! -d ${destination} ]
|
||||||
|
then
|
||||||
|
mkdir -p ${destination}
|
||||||
|
fi
|
||||||
|
${cmd} ${source} -C ${destination}
|
||||||
|
return ${?}
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanUpImage(){
|
||||||
|
rm -rf /var/cache/apk/*
|
||||||
|
rm -rf /tmp/*
|
||||||
|
rm -rf /root/.ssh
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<creole>
|
||||||
|
<files>
|
||||||
|
</files>
|
||||||
|
<containers>
|
||||||
|
</containers>
|
||||||
|
<variables>
|
||||||
|
<family name='Interface-0'>
|
||||||
|
<variable name='eth0_method' redefine='True' hidden='False'>
|
||||||
|
<value>statique</value>
|
||||||
|
</variable>
|
||||||
|
</family>
|
||||||
|
</variables>
|
||||||
|
<constraints>
|
||||||
|
</constraints>
|
||||||
|
<help>
|
||||||
|
</help>
|
||||||
|
</creole>
|
|
@ -0,0 +1,77 @@
|
||||||
|
%set bonds = []
|
||||||
|
%set vlans = []
|
||||||
|
|
||||||
|
network:
|
||||||
|
version: 2
|
||||||
|
renderer: networkd
|
||||||
|
ethernets:
|
||||||
|
%for %%interface in range(0, %%int(%%nombre_interfaces)):
|
||||||
|
%set current_interface = 'eth' + str(%%interface)
|
||||||
|
%set interface_mode = %%getVar(%%current_interface + '_method')
|
||||||
|
%if %%getVar('activer_bonding_' + %%current_interface, "non") == 'non'
|
||||||
|
%%getVar('nom_zone_'+ %%current_interface):
|
||||||
|
%if %%interface_mode == 'statique' and %%getVar("adresse_ip_" + %%current_interface):
|
||||||
|
addresses:
|
||||||
|
- %%getVar("adresse_ip_" + %%current_interface)/%%calc_classe(%%getVar('adresse_netmask_' + %%current_interface))
|
||||||
|
%if %%getVar('alias_' + %%current_interface, "non") == "oui"
|
||||||
|
%for alias in %%getVar('alias_ip_' + %%current_interface)
|
||||||
|
- %%alias/%%calc_classe(getattr(alias, 'alias_netmask_' + %%current_interface))
|
||||||
|
%end for
|
||||||
|
%end if
|
||||||
|
%if %%interface_gw == %%getVar('nom_zone_' + %%current_interface):
|
||||||
|
gateway4: %%adresse_ip_gw
|
||||||
|
%end if
|
||||||
|
%if %%getVar('activer_ipv6') == "non"
|
||||||
|
dhcp6: no
|
||||||
|
accept-ra: no
|
||||||
|
optional-addresses: [ dhcp6 ]
|
||||||
|
%end if
|
||||||
|
%elif %%interface_mode == 'dhcp'
|
||||||
|
dhcp4: yes
|
||||||
|
%else
|
||||||
|
dhcp4: no
|
||||||
|
%end if
|
||||||
|
%else
|
||||||
|
%%bonds.append(%%current_interface)
|
||||||
|
%for %%slave in %%getVar('nom_carte_' + %%current_interface):
|
||||||
|
%%slave:
|
||||||
|
optional: false
|
||||||
|
%end for
|
||||||
|
%end if
|
||||||
|
%if %%getVar('vlan_' + %%current_interface, 'non') == 'oui'
|
||||||
|
%%vlans.append(%%current_interface)
|
||||||
|
%end if
|
||||||
|
%end for
|
||||||
|
|
||||||
|
%if len(%%bonds) > 0:
|
||||||
|
bonds:
|
||||||
|
%for bond in %%bonds:
|
||||||
|
%set %%bond_mode = %%getVar(%%bond + '_method')
|
||||||
|
%%getVar('nom_zone_' + %%bond):
|
||||||
|
interfaces: [%%custom_join(%%getVar('nom_carte_' + %%bond),',')]
|
||||||
|
%if %%bond_mode == 'statique'
|
||||||
|
addresses: [ %%getVar("adresse_ip_" + %%bond)/%%calc_classe(%%getVar('adresse_netmask_' + %%bond))]
|
||||||
|
%elif %%bond_mode == 'dhcp'
|
||||||
|
dhcp4: yes
|
||||||
|
%else
|
||||||
|
dhcp4: no
|
||||||
|
%end if
|
||||||
|
parameters:
|
||||||
|
mode: %%getVar('bonding_mode_' + %%bond)
|
||||||
|
mii-monitor-interval: %%getVar('bonding_miimon_' + %%bond)
|
||||||
|
up-delay: %%getVar('bonding_updelay_' + %%bond)
|
||||||
|
down-delay: %%getVar('bonding_downdelay_' + %%bond)
|
||||||
|
%end for
|
||||||
|
%end if
|
||||||
|
|
||||||
|
%if len(vlans) > 0:
|
||||||
|
vlans:
|
||||||
|
%for vlan in %%vlans:
|
||||||
|
%for vlan_id in %%getVar('vlan_id_' + %%vlan):
|
||||||
|
vlan%%vlan_id:
|
||||||
|
id: %%vlan_id
|
||||||
|
link: %%getVar('nom_zone_' + %%vlan)
|
||||||
|
addresses: [ %%getattr(vlan_id, 'vlan_ip_' + %%vlan)/%%calc_classe(%%getattr(vlan_id, 'vlan_netmask_' + %%vlan)) ]
|
||||||
|
%end for
|
||||||
|
%end for
|
||||||
|
%end if
|
|
@ -0,0 +1,11 @@
|
||||||
|
# This file describes the network interfaces available on your system
|
||||||
|
# For more information, see netplan(5).
|
||||||
|
network:
|
||||||
|
version: 2
|
||||||
|
renderer: networkd
|
||||||
|
ethernets:
|
||||||
|
ens3:
|
||||||
|
dhcp4: yes
|
||||||
|
dhcp6: no
|
||||||
|
accept-ra: no
|
||||||
|
optional-addresses: [ dhcp6 ]
|
|
@ -0,0 +1,35 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source /etc/one-context.d/loc-10-network
|
||||||
|
|
||||||
|
function CreoleForce {
|
||||||
|
name=$1
|
||||||
|
value=$2
|
||||||
|
jq -a ".$name = {\"owner\": \"creole_force\", \"val\": $value}" /etc/eole/config.eol > /etc/eole/config.eol.force
|
||||||
|
[ $? == 0 ] && mv -f /etc/eole/config.eol.force /etc/eole/config.eol
|
||||||
|
rm -f /etc/eole/config.eol.force
|
||||||
|
}
|
||||||
|
|
||||||
|
rm -f /etc/eole/config.eol.bak
|
||||||
|
cp -f /etc/eole/config.eol /etc/eole/config.eol.bak
|
||||||
|
|
||||||
|
CONTEXT_INTERFACES=$(get_context_interfaces)
|
||||||
|
for interface in $CONTEXT_INTERFACES; do
|
||||||
|
|
||||||
|
IFACE_NUM=$(echo "$UPCASE_DEV" | sed 's/^ETH//')
|
||||||
|
|
||||||
|
IP=$(get_ip)
|
||||||
|
NETWORK=$(get_network)
|
||||||
|
MASK=$(get_mask)
|
||||||
|
GATEWAY=$(get_gateway)
|
||||||
|
DNS=$(get_iface_var "DNS")
|
||||||
|
|
||||||
|
CreoleForce "eth${IFACE_NUM}_method" '"statique"'
|
||||||
|
[ "$GATEWAY" != "None" ] && CreoleForce "adresse_ip_gw" "\"$GATEWAY\""
|
||||||
|
[ "$GATEWAY" != "None" ] && CreoleForce "adresse_broadcast_eth$IFACE_NUM" "\"$GATEWAY\""
|
||||||
|
[ "$MASK" != "None" ] && CreoleForce "adresse_netmask_eth$IFACE_NUM" "\"$MASK\""
|
||||||
|
[ "$NETWORK" != "None" ] && CreoleForce "adresse_network_eth$IFACE_NUM" "\"$NETWORK\""
|
||||||
|
[ "$IP" != "None" ] && CreoleForce "adresse_ip_eth$IFACE_NUM" "\"$IP\""
|
||||||
|
[ "$DNS" != "None" ] && CreoleForce "adresse_ip_dns" "[\"$DNS\"]"
|
||||||
|
|
||||||
|
done
|
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
- name: Preparation des serveurs d'applications web
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Install eole-web
|
||||||
|
apt:
|
||||||
|
name: eole-web
|
||||||
|
state: present
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
---
|
||||||
|
- name: Configure Seth Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: make
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: git
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: python-ldap
|
||||||
|
|
||||||
|
- git:
|
||||||
|
repo: 'https://forge.cadoles.com/afornerot/cadolesldap.git'
|
||||||
|
dest: /tmp/cadolesldap
|
||||||
|
|
||||||
|
- name: Run 'install' for cadolesldap
|
||||||
|
make:
|
||||||
|
chdir: /tmp/cadolesldap
|
||||||
|
target: install
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
apt:
|
||||||
|
name: make
|
||||||
|
state: absent
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
- name: Configure DNS Serverless
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- apk:
|
||||||
|
name: nsd, unbound
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
- name: Preparation des serveurs d'applications web
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setting EOLE Dev apt repository
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Installing dokuwiki
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- eole-dokuwiki
|
||||||
|
- dokuwiki-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Back to normal EOLE apt repository
|
||||||
|
command: Query-Auto
|
|
@ -0,0 +1,51 @@
|
||||||
|
---
|
||||||
|
- name: Installation Dolibarr Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Install mariadb
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- mariadb-server
|
||||||
|
- python-mysqldb
|
||||||
|
- apache2
|
||||||
|
- php
|
||||||
|
- php-mysql
|
||||||
|
- openssl
|
||||||
|
- php-ldap
|
||||||
|
- php-mcrypt
|
||||||
|
- php-intl
|
||||||
|
- php-zip
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create a new database with name 'dolibarr'
|
||||||
|
mysql_db:
|
||||||
|
name: dolibarr
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create mysql user
|
||||||
|
mysql_user:
|
||||||
|
name: dolibarr
|
||||||
|
password: '36f3igH9f5TPooZIBY99oA=='
|
||||||
|
priv: 'dolibarr.*:ALL,GRANT'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Download Dolibarr
|
||||||
|
get_url:
|
||||||
|
url: https://sourceforge.net/projects/dolibarr/files/Dolibarr%20installer%20for%20Debian-Ubuntu%20%28DoliDeb%29/10.0.1/dolibarr_10.0.1-4_all.deb
|
||||||
|
dest: /tmp/dolibarr_10.0.1.deb
|
||||||
|
checksum: sha1:74a9bb2ac282715f80ad454cb04ad51ef60de264
|
||||||
|
|
||||||
|
- name: Install dolibarr
|
||||||
|
apt:
|
||||||
|
deb: /tmp/dolibarr_10.0.1.deb
|
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install amon module package
|
||||||
|
apt:
|
||||||
|
name: eole-amon-all
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Change hostname
|
||||||
|
hostname:
|
||||||
|
name: amon272
|
|
@ -0,0 +1,75 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Stop and disable unattended-upgrades service
|
||||||
|
service:
|
||||||
|
name: unattended-upgrades
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
|
||||||
|
- name: Stop apt-daily service
|
||||||
|
service:
|
||||||
|
name: apt-daily
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
|
||||||
|
- name: Stop apt-daily.timer service
|
||||||
|
service:
|
||||||
|
name: apt-daily.timer
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
|
||||||
|
- name: Stop apt-daily-upgrade service
|
||||||
|
service:
|
||||||
|
name: apt-daily-upgrade
|
||||||
|
state: stopped
|
||||||
|
enabled: no
|
||||||
|
|
||||||
|
- pause:
|
||||||
|
seconds: 30
|
||||||
|
|
||||||
|
- name: Install a EOLE Keyring from the internet.
|
||||||
|
apt:
|
||||||
|
deb: http://eole.ac-dijon.fr/eole/pool/main/e/eole-keyring/eole-archive-keyring_2020.05.12-1_all.deb
|
||||||
|
retries: 5
|
||||||
|
delay: 5
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Adding EOLE main repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2 main cloud
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Adding EOLE security repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2-security main cloud
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Adding EOLE updates repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2-updates main cloud
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install eole-server and eole-exim-pkg
|
||||||
|
apt:
|
||||||
|
name: eole-server,eole-exim-pkg
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
|
@ -0,0 +1,36 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Add an Apt signing key, for Cadoles
|
||||||
|
apt_key:
|
||||||
|
url: https://vulcain.cadoles.com/cadoles.gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Adding Cadoles devel repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb https://vulcain.cadoles.com 2.7.2-stable main
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install lemonldap package
|
||||||
|
apt:
|
||||||
|
name: eole-lemonldap
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Change hostname
|
||||||
|
hostname:
|
||||||
|
name: lemonldap272
|
|
@ -0,0 +1,36 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Add an Apt signing key, for Cadoles
|
||||||
|
apt_key:
|
||||||
|
url: https://vulcain.cadoles.com/cadoles.gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Adding Cadoles devel repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb https://vulcain.cadoles.com 2.7.2-dev main
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install minio package
|
||||||
|
apt:
|
||||||
|
name: eole-minio
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Change hostname
|
||||||
|
hostname:
|
||||||
|
name: minio272
|
|
@ -0,0 +1,109 @@
|
||||||
|
---
|
||||||
|
- name: Prepare data disk
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
vars:
|
||||||
|
fsconf:
|
||||||
|
vgn: "{{ lookup('env', 'vgname') }}"
|
||||||
|
lvs: "{{ lookup('env', 'lvnames').split(' ') }}"
|
||||||
|
szs: "{{ lookup('env', 'lvsizes').split(' ') }}"
|
||||||
|
fss: "{{ lookup('env', 'lvfssys').split(' ') }}"
|
||||||
|
mps: "{{ lookup('env', 'lvmntps').split(' ') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: GrowPart
|
||||||
|
command: "growpart /dev/vda 4"
|
||||||
|
environment:
|
||||||
|
LC_ALL: C
|
||||||
|
|
||||||
|
- name: Resize main vg
|
||||||
|
lvg:
|
||||||
|
vg: "{{ fsconf.vgn }}"
|
||||||
|
pvs: /dev/vda4
|
||||||
|
pvresize: yes
|
||||||
|
|
||||||
|
- name: Create logical volumes.
|
||||||
|
lvol:
|
||||||
|
vg: "{{ fsconf.vgn }}"
|
||||||
|
lv: "{{ item }}"
|
||||||
|
size: "{{ fsconf.szs[idx] }}"
|
||||||
|
active: yes
|
||||||
|
force: no
|
||||||
|
state: present
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Create filesystems
|
||||||
|
filesystem:
|
||||||
|
fstype: "{{ fsconf.fss[idx] }}"
|
||||||
|
dev: "/dev/{{ fsconf.vgn }}/{{ item }}"
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Find what to backup
|
||||||
|
stat:
|
||||||
|
path: "{{ item }}"
|
||||||
|
with_items: "{{ fsconf.mps }}"
|
||||||
|
register: mountPoints
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create mount points
|
||||||
|
file:
|
||||||
|
path: "{{ fsconf.mps[idx] }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Create temporary mount points
|
||||||
|
file:
|
||||||
|
path: "/tmp{{ fsconf.mps[idx] }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Mount fs in temporary mount points
|
||||||
|
command: mount /dev/{{ fsconf.vgn }}/"{{ item }}" "/tmp{{ fsconf.mps[idx] }}"
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Configure filesystems create entry in fstab
|
||||||
|
mount:
|
||||||
|
path: "{{ fsconf.mps[idx] }}"
|
||||||
|
src: /dev/{{ fsconf.vgn }}/{{ item }}
|
||||||
|
state: present
|
||||||
|
fstype: "{{ fsconf.fss[idx] }}"
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Fill new mount points if exists
|
||||||
|
become: true
|
||||||
|
delegate_to: "{{ inventory_hostname }}"
|
||||||
|
synchronize:
|
||||||
|
mode: push
|
||||||
|
src: "{{ item.item }}/"
|
||||||
|
dest: "/tmp{{ item.item }}/"
|
||||||
|
times: yes
|
||||||
|
perms: yes
|
||||||
|
owner: yes
|
||||||
|
group: yes
|
||||||
|
links: yes
|
||||||
|
recursive: yes
|
||||||
|
with_items: "{{ mountPoints.results }}"
|
||||||
|
when: item.stat.exists
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,81 @@
|
||||||
|
---
|
||||||
|
- name: Provision Cadoles Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name : Install One Context tool !
|
||||||
|
apt:
|
||||||
|
deb: https://github.com/OpenNebula/addon-context-linux/releases/download/v5.8.0/one-context_5.8.0-1.deb
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name : Install JQ
|
||||||
|
apt:
|
||||||
|
name: jq
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name : Add cadoles context script
|
||||||
|
command: mv /root/net-99-eole /etc/one-context.d/net-99-eole
|
||||||
|
|
||||||
|
- name: Make cadoles context script executable
|
||||||
|
file:
|
||||||
|
path: /etc/one-context.d/net-99-eole
|
||||||
|
mode: '+x'
|
||||||
|
|
||||||
|
- name: Copy sshd_template to modif directory
|
||||||
|
command: cp /usr/share/eole/creole/distrib/sshd_config /usr/share/eole/creole/modif/sshd_config
|
||||||
|
|
||||||
|
- name: Allow TCP Forwarding to ease GenConfig usage
|
||||||
|
lineinfile:
|
||||||
|
path: /usr/share/eole/creole/modif/sshd_config
|
||||||
|
regexp: '^AllowTcpForwarding'
|
||||||
|
line: 'AllowTcpForwarding yes'
|
||||||
|
|
||||||
|
- name: Gen_Patch
|
||||||
|
command: gen_patch
|
||||||
|
|
||||||
|
- name: Update Hostname
|
||||||
|
command: hostnamectl set-hostname eolebase272
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
apt:
|
||||||
|
autoclean: yes
|
||||||
|
autoremove: yes
|
||||||
|
|
||||||
|
- name: Disable gpm
|
||||||
|
systemd:
|
||||||
|
name: gpm
|
||||||
|
enabled: no
|
||||||
|
masked: yes
|
||||||
|
|
||||||
|
- name: Disable NUT Driver
|
||||||
|
systemd:
|
||||||
|
name: nut-driver
|
||||||
|
enabled: no
|
||||||
|
masked: yes
|
||||||
|
|
||||||
|
- name: Disable NUT Monitor
|
||||||
|
systemd:
|
||||||
|
name: nut-monitor
|
||||||
|
enabled: no
|
||||||
|
masked: yes
|
||||||
|
|
||||||
|
- name: FSTRIM
|
||||||
|
command: fstrim -av
|
||||||
|
|
||||||
|
- name: Zero out the disk
|
||||||
|
command: dd if=/dev/zero of=/mytempfile
|
||||||
|
ignore_errors: yes
|
||||||
|
|
||||||
|
- name: Cleaup zero file
|
||||||
|
command: rm -rf /mytempfile
|
||||||
|
|
||||||
|
- name: Sync disk
|
||||||
|
command: sync
|
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install seth module package
|
||||||
|
apt:
|
||||||
|
name: eole-seth-all
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Change hostname
|
||||||
|
hostname:
|
||||||
|
name: seth272
|
|
@ -0,0 +1,41 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Add an Apt signing key, for Cadoles
|
||||||
|
apt_key:
|
||||||
|
url: https://vulcain.cadoles.com/cadoles.gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Adding Cadoles devel repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb https://vulcain.cadoles.com 2.7.2-stable main
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Adding Cadoles Tenjin repository
|
||||||
|
apt_repository:
|
||||||
|
repo: deb https://vulcain.cadoles.com tenjin-2.7.2-stable main
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install Tenjin AD package
|
||||||
|
apt:
|
||||||
|
name: eole-seth-education
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Change hostname
|
||||||
|
hostname:
|
||||||
|
name: tenjin272
|
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
- name: Transform Ubuntu into an EOLE Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Install Zephir module package
|
||||||
|
apt:
|
||||||
|
name: eole-zephir-all
|
||||||
|
environment:
|
||||||
|
HTTP_PROXY: "{{ http_proxy }}"
|
||||||
|
HTTPS_PROXY: "{{ https_proxy }}"
|
||||||
|
http_proxy: "{{ http_proxy }}"
|
||||||
|
https_proxy: "{{ https_proxy }}"
|
||||||
|
|
||||||
|
- name: Change hostname
|
||||||
|
hostname:
|
||||||
|
name: zephir272
|
|
@ -0,0 +1,67 @@
|
||||||
|
---
|
||||||
|
- name: Récupère la configuration depuis le Zéphir
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
vars:
|
||||||
|
- zephir_server: "{{ lookup('env', 'zephir_server') }}"
|
||||||
|
- zephir_login: "{{ lookup('env', 'zephir_login') }}"
|
||||||
|
- zephir_password: "{{ lookup('env','zephir_password') }}"
|
||||||
|
- code_rne: "{{ lookup('env','code_rne') }}"
|
||||||
|
- zephir_id: "{{ lookup('env', 'zephir_id') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Installation de pexpect
|
||||||
|
package:
|
||||||
|
name: python-pexpect
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Update CA-Certificats
|
||||||
|
command: update-ca-certificates
|
||||||
|
|
||||||
|
- name: Enregistrement Zéphir
|
||||||
|
|
||||||
|
expect:
|
||||||
|
command: /usr/bin/enregistrement_zephir
|
||||||
|
responses:
|
||||||
|
"(.*)Voulez-vous établir une configuration réseau minimale(.*)": "N"
|
||||||
|
"(.*)Entrez l'adresse(.*)": "{{zephir_server}}"
|
||||||
|
"(.*)Entrez votre login pour l'application Zéphir(.*)": "{{ zephir_login }}"
|
||||||
|
"(.*)Mot de passe pour l'application Zéphir pour(.*)": "{{ zephir_password }}"
|
||||||
|
"(.*)créer le serveur dans la base du serveur Zéphir(.*)": "N"
|
||||||
|
"(.*)rien pour saisir directement un n° de serveur(.*)": "{{ code_rne }}"
|
||||||
|
"(.*)entrez le n° identifiant le serveur l'application Zéphir(.*)": "{{ zephir_id }}"
|
||||||
|
"(.*)matériel(.*)": ""
|
||||||
|
"(.*)processeur(.*)": ""
|
||||||
|
"(.*)disque dur(.*)": ""
|
||||||
|
"(.*)continuer(.*)": "O"
|
||||||
|
"(.*)Entrez le numéro de votre choix(.*)": "2"
|
||||||
|
echo: yes
|
||||||
|
timeout: 480
|
||||||
|
|
||||||
|
- pause:
|
||||||
|
minutes: 1
|
||||||
|
prompt: "Pause d'une minute pour finaliser l'enregistrement Zéphir"
|
||||||
|
|
||||||
|
- name: Cleaning EOLE main repository (avoid duplicate entry)
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2 main cloud
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Cleaning EOLE security repository (avoid duplicate entry)
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2-security main cloud
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Cleaning EOLE updates repository (avoid duplicate entry)
|
||||||
|
apt_repository:
|
||||||
|
repo: deb [arch=amd64] http://eole.ac-dijon.fr/eole eole-2.7.2-updates main cloud
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: Cleaning EOLE repository (create clean entry)
|
||||||
|
command: Query-Auto
|
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
- name: Configure Pi-Hole Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: curl
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: git
|
||||||
|
|
||||||
|
- git:
|
||||||
|
repo: 'https://github.com/pi-hole/pi-hole.git'
|
||||||
|
dest: /tmp/Pi-hole
|
||||||
|
depth: 1
|
||||||
|
|
||||||
|
- name: Run 'install' for Pi-Hole
|
||||||
|
shell: bash "/tmp/Pi-hole/automated install/basic-install.sh" --unattended
|
||||||
|
|
||||||
|
- name: Cleanup
|
||||||
|
apt:
|
||||||
|
name: make, curl, git
|
||||||
|
state: absent
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
- name: Configure SSO Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Maj-Auto
|
||||||
|
command: Maj-Auto
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: eole-lemonldap
|
||||||
|
state: present
|
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
- name: Instance EOLE image
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Installation de pexpect
|
||||||
|
package:
|
||||||
|
name: python-pexpect
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Instancier le module EOLE
|
||||||
|
expect:
|
||||||
|
command: /usr/bin/instance
|
||||||
|
# Attention, les mots de passe sont en clairs dans le playbook !
|
||||||
|
# Il serait préférable d'utiliser le mécanisme ansible_vault ici
|
||||||
|
responses:
|
||||||
|
"Nouveau mot de passe:":
|
||||||
|
- "NotSoSecret;21"
|
||||||
|
- "NotSoSecret;21"
|
||||||
|
"Confirmation du mot de passe:":
|
||||||
|
- "NotSoSecret;21"
|
||||||
|
- "NotSoSecret;21"
|
||||||
|
'\[non\]':
|
||||||
|
- non
|
||||||
|
'\[oui\]':
|
||||||
|
- non
|
||||||
|
'(.*)Un red(.)marrage(.*)\[oui\]':
|
||||||
|
- non
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Désactivation du Maj-Auto
|
||||||
|
command: /usr/share/eole/sbin/manage_schedule -d majauto
|
|
@ -0,0 +1,68 @@
|
||||||
|
---
|
||||||
|
- name: Installation Jorani
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Install mariadb
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- mariadb-server
|
||||||
|
- python-mysqldb
|
||||||
|
- unzip
|
||||||
|
- apache2
|
||||||
|
- php
|
||||||
|
- openssl
|
||||||
|
- php-ldap
|
||||||
|
- libapache2-mod-php
|
||||||
|
- php-pear
|
||||||
|
- php-cgi
|
||||||
|
- php-cli
|
||||||
|
- php-common
|
||||||
|
- php-fpm
|
||||||
|
- php-gd
|
||||||
|
- php-json
|
||||||
|
- php-mysql
|
||||||
|
- php-readline
|
||||||
|
- php-curl
|
||||||
|
- php-intl
|
||||||
|
- php-mcrypt
|
||||||
|
- php-xml
|
||||||
|
- php-mbstring
|
||||||
|
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create a new database with name 'jorani'
|
||||||
|
mysql_db:
|
||||||
|
name: jorani
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create mysql user
|
||||||
|
mysql_user:
|
||||||
|
name: jorani
|
||||||
|
password: 'FWUiVANngFqcIvcY8C7XWA=='
|
||||||
|
priv: 'jorani.*:ALL,GRANT'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create directory Jorani
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /var/www/html/jorani
|
||||||
|
state: directory
|
||||||
|
owner: www-data
|
||||||
|
group: www-data
|
||||||
|
mode: '0750'
|
||||||
|
|
||||||
|
- name: Download Jorani
|
||||||
|
unarchive:
|
||||||
|
src: https://github.com/bbalet/jorani/releases/download/v1.0.0/jorani-1.0.0.zip
|
||||||
|
dest: /var/www/html/jorani/
|
||||||
|
remote_src: yes
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
- name: Preparation des serveurs d'applications web
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setting EOLE Dev apt repository
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Installing ninegate
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- eole-limesurvey
|
||||||
|
- limesurvey-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Back to normal EOLE apt repository
|
||||||
|
command: Query-Auto
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
- name: Preparation des serveurs d'applications web
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setting EOLE Dev apt repository
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Installing Nextcloud
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- eole-nextcloud
|
||||||
|
- nextcloud-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Back to normal EOLE apt repository
|
||||||
|
command: Query-Auto
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
- name: Preparation des serveurs d'applications web
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setting EOLE Dev apt repository
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Installing ninegate
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- eole-nineboard
|
||||||
|
- nineboard-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Back to normal EOLE apt repository
|
||||||
|
command: Query-Auto
|
||||||
|
|
||||||
|
- name: Generate patch
|
||||||
|
command: gen_patch
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
- name: Configure Portal Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setting EOLE Dev apt repository
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Installing ninegate
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- eole-ninegate
|
||||||
|
- ninegate-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Back to normal EOLE apt repository
|
||||||
|
command: Query-Auto
|
|
@ -0,0 +1,29 @@
|
||||||
|
---
|
||||||
|
- name: Preparation des serveurs d'applications web
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Setting EOLE Dev apt repository
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- name: Installing ninegate
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- eole-piwigo
|
||||||
|
- piwigo-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Back to normal EOLE apt repository
|
||||||
|
command: Query-Auto
|
|
@ -0,0 +1,40 @@
|
||||||
|
---
|
||||||
|
- name: Configure Portal Server
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Maj-Auto
|
||||||
|
command: Maj-Auto
|
||||||
|
|
||||||
|
- name: Query-Auto Dev
|
||||||
|
expect:
|
||||||
|
command: Query-Auto -D
|
||||||
|
responses:
|
||||||
|
'\[non\]':
|
||||||
|
- "oui"
|
||||||
|
echo: yes
|
||||||
|
timeout: 900
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: eole-ninegate
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- apt:
|
||||||
|
name: ninegate-apps
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Query-Auto
|
||||||
|
command: Query-Auto
|
||||||
|
|
||||||
|
- name: Reconfigure
|
||||||
|
command: reconfigure
|
|
@ -0,0 +1,107 @@
|
||||||
|
---
|
||||||
|
- name: Prepare data disk
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
vars:
|
||||||
|
fsconf:
|
||||||
|
vgn: "{{ lookup('env', 'vgname') }}"
|
||||||
|
lvs: "{{ lookup('env', 'lvnames').split(' ') }}"
|
||||||
|
szs: "{{ lookup('env', 'lvsizes').split(' ') }}"
|
||||||
|
fss: "{{ lookup('env', 'lvfssys').split(' ') }}"
|
||||||
|
mps: "{{ lookup('env', 'lvmntps').split(' ') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Create the "datavg" Volume group.
|
||||||
|
lvg:
|
||||||
|
pvs: "/dev/vdb"
|
||||||
|
vg: "{{ fsconf.vgn }}"
|
||||||
|
pesize: "16"
|
||||||
|
pv_options: '-Z y'
|
||||||
|
force: no
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create logical volumes.
|
||||||
|
lvol:
|
||||||
|
vg: "datavg"
|
||||||
|
lv: "{{ item }}"
|
||||||
|
size: "{{ fsconf.szs[idx] }}"
|
||||||
|
active: yes
|
||||||
|
force: no
|
||||||
|
state: present
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Create filesystems
|
||||||
|
filesystem:
|
||||||
|
fstype: "{{ fsconf.fss[idx] }}"
|
||||||
|
dev: "/dev/datavg/{{ item }}"
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Find what to backup
|
||||||
|
stat:
|
||||||
|
path: "{{ item }}"
|
||||||
|
with_items: "{{ fsconf.mps }}"
|
||||||
|
register: mountPoints
|
||||||
|
|
||||||
|
|
||||||
|
- name: Create mount points
|
||||||
|
file:
|
||||||
|
path: "{{ fsconf.mps[idx] }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Create temporary mount points
|
||||||
|
file:
|
||||||
|
path: "/tmp{{ fsconf.mps[idx] }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Mount fs in temporary mount points
|
||||||
|
command: mount /dev/datavg/"{{ item }}" "/tmp{{ fsconf.mps[idx] }}"
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Configure filesystems create entry in fstab
|
||||||
|
mount:
|
||||||
|
path: "{{ fsconf.mps[idx] }}"
|
||||||
|
src: /dev/datavg/{{ item }}
|
||||||
|
state: present
|
||||||
|
fstype: "{{ fsconf.fss[idx] }}"
|
||||||
|
loop: "{{ fsconf.lvs }}"
|
||||||
|
loop_control:
|
||||||
|
index_var: idx
|
||||||
|
|
||||||
|
- name: Fill new mount points if exists
|
||||||
|
become: true
|
||||||
|
delegate_to: "{{ inventory_hostname }}"
|
||||||
|
synchronize:
|
||||||
|
mode: push
|
||||||
|
src: "{{ item.item }}/"
|
||||||
|
dest: "/tmp{{ item.item }}/"
|
||||||
|
times: yes
|
||||||
|
perms: yes
|
||||||
|
owner: yes
|
||||||
|
group: yes
|
||||||
|
links: yes
|
||||||
|
recursive: yes
|
||||||
|
with_items: "{{ mountPoints.results }}"
|
||||||
|
when: item.stat.exists
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,73 @@
|
||||||
|
---
|
||||||
|
- name: Prepare disk
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
vars:
|
||||||
|
ds: "{{ lookup('env', 'disk') }}"
|
||||||
|
vg: "{{ lookup('env', 'vgname') }}"
|
||||||
|
lv: "{{ lookup('env', 'lvname') }}"
|
||||||
|
fs: "{{ lookup('env', 'fstype') }}"
|
||||||
|
sz: "{{ lookup('env', 'size') }}"
|
||||||
|
mp: "{{ lookup('env', 'mountp') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Create the volume group.
|
||||||
|
lvg:
|
||||||
|
pvs: "{{ ds }}"
|
||||||
|
vg: "{{ vg }}"
|
||||||
|
pesize: "16"
|
||||||
|
pv_options: '-Z y'
|
||||||
|
force: no
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create logical volume
|
||||||
|
lvol:
|
||||||
|
vg: "{{ vg }}"
|
||||||
|
lv: "{{ lv }}"
|
||||||
|
size: "{{ sz }}"
|
||||||
|
active: yes
|
||||||
|
force: no
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create filesystem
|
||||||
|
filesystem:
|
||||||
|
fstype: "ext4"
|
||||||
|
dev: "/dev/{{ vg }}/{{ lv }}"
|
||||||
|
opts: -cc
|
||||||
|
|
||||||
|
- name: Create temporary mount points
|
||||||
|
file:
|
||||||
|
path: "/tmp{{ mp }}"
|
||||||
|
state: directory
|
||||||
|
mode: '0755'
|
||||||
|
|
||||||
|
- name: Mount fs in temporary mount points
|
||||||
|
command: mount /dev/"{{ vg }}"/"{{ lv }}" "/tmp{{ mp }}"
|
||||||
|
|
||||||
|
- name: Configure filesystems create entry in fstab
|
||||||
|
mount:
|
||||||
|
path: "{{ mp }}"
|
||||||
|
src: /dev/{{ vg }}/{{ lv }}
|
||||||
|
state: present
|
||||||
|
fstype: "{{ fs }}"
|
||||||
|
|
||||||
|
- name: Fill new mount points if exists
|
||||||
|
become: true
|
||||||
|
delegate_to: "{{ inventory_hostname }}"
|
||||||
|
synchronize:
|
||||||
|
mode: push
|
||||||
|
src: "{{ mp }}/"
|
||||||
|
dest: "/tmp{{ mp }}/"
|
||||||
|
times: yes
|
||||||
|
perms: yes
|
||||||
|
owner: yes
|
||||||
|
group: yes
|
||||||
|
links: yes
|
||||||
|
recursive: yes
|
|
@ -0,0 +1,66 @@
|
||||||
|
---
|
||||||
|
- name: Installation Syspass
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
environment:
|
||||||
|
http_proxy: "{{ lookup('env','http_proxy') }}"
|
||||||
|
https_proxy: "{{ lookup('env','https_proxy') }}"
|
||||||
|
HTTPS_PROXY: "{{ lookup('env','HTTPS_PROXY') }}"
|
||||||
|
HTTP_PROXY: "{{ lookup('env','HTTP_PROXY') }}"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Update package cache
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Install mariadb
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- mariadb-server
|
||||||
|
- python-mysqldb
|
||||||
|
- unzip
|
||||||
|
- apache2
|
||||||
|
- libapache2-mod-php
|
||||||
|
- php-pear
|
||||||
|
- php
|
||||||
|
- php-cgi
|
||||||
|
- php-cli
|
||||||
|
- php-common
|
||||||
|
- php-fpm
|
||||||
|
- php-gd
|
||||||
|
- php-json
|
||||||
|
- php-mysql
|
||||||
|
- php-readline
|
||||||
|
- php-curl
|
||||||
|
- php-intl
|
||||||
|
- php-ldap
|
||||||
|
- php-mcrypt
|
||||||
|
- php-xml
|
||||||
|
- php-mbstring
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create a new database with name 'syspass'
|
||||||
|
mysql_db:
|
||||||
|
name: syspass
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create mysql user
|
||||||
|
mysql_user:
|
||||||
|
name: spadmin
|
||||||
|
password: '63ApD2E0xVJlNi9+hqsZUQ=='
|
||||||
|
priv: 'syspass.*:ALL,GRANT'
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Create directory syspass
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: /var/www/html/syspass
|
||||||
|
state: directory
|
||||||
|
owner: www-data
|
||||||
|
group: www-data
|
||||||
|
mode: '0750'
|
||||||
|
|
||||||
|
- name: Download Syspass
|
||||||
|
unarchive:
|
||||||
|
src: https://github.com/nuxsmin/sysPass/archive/3.2.1.zip
|
||||||
|
dest: /var/www/html/syspass
|
||||||
|
remote_src: yes
|
|
@ -0,0 +1,49 @@
|
||||||
|
-----BEGIN OPENSSH PRIVATE KEY-----
|
||||||
|
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
|
||||||
|
-----END OPENSSH PRIVATE KEY-----
|
|
@ -0,0 +1 @@
|
||||||
|
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDx7qAsa44Gz3OnSoUN78va/vDdmZmEj6ggMokjLSZVKrHffMe7sQ0UJL/kuE7aoS2gEtkITi+ZpyyLzvLTlIIi5WRdgS8YOZhcmL8avtueW7wN0XADrk4kj9GuWdfjn9osm0aNx4EFMhKdxUjFTTsuBUZW3JWQEhzYgqE/n7SqnLvXKVqvHjkbb1CXX9ndl0IB4zHrpapSV6DgkZ8XvbbbfoDDxBeoayEl6G5SbpvH0tBDzimuNmAAqboxRQIlf0hN2vSXO14M+wi3Y46zAmplPrCH3KEV+bgNLj9G4AdxbpILOaT8eZJBMskSuBQjGIWo82BxLjvaAGok9kHuH6xfGtF3LTAQ+aX7hO5gjJSSH0/t5bKoJzDCHYmIuuN2V+Kt0Y6Kip0zeb24Fa8kIJa/U6cRpvVvg098FqT3TRKhIOK6cnIk5dqEGHshZuHw2qkRYf7da7QI1Z7y9w+0XMuxAYhNdrXz2M4XRPwgOlFBGWqrJTbHLa54dpV885eRnyBWkG4M9FLxiHS4HRi4wsYRzpDH58Uc8td1qZTP+kaR6AEv7GmmWvfdOSzQUaI7emeASNkMByzadfZKoVsxbHL9wBTI+Vp2lu1gW4niJ+9fd/HzgO+P0JKTeMoPLAFo6IaErYpULVH3pxyNXRAwRbTs6gKxF3BWXT05UybSrUUj6Q== Cadoles-VM-Deployement-KEY
|
Binary file not shown.
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEsTCCA5mgAwIBAgIQCKWiRs1LXIyD1wK0u6tTSTANBgkqhkiG9w0BAQsFADBh
|
||||||
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||||
|
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
|
||||||
|
QTAeFw0xNzExMDYxMjIzMzNaFw0yNzExMDYxMjIzMzNaMF4xCzAJBgNVBAYTAlVT
|
||||||
|
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
||||||
|
b20xHTAbBgNVBAMTFFJhcGlkU1NMIFJTQSBDQSAyMDE4MIIBIjANBgkqhkiG9w0B
|
||||||
|
AQEFAAOCAQ8AMIIBCgKCAQEA5S2oihEo9nnpezoziDtx4WWLLCll/e0t1EYemE5n
|
||||||
|
+MgP5viaHLy+VpHP+ndX5D18INIuuAV8wFq26KF5U0WNIZiQp6mLtIWjUeWDPA28
|
||||||
|
OeyhTlj9TLk2beytbtFU6ypbpWUltmvY5V8ngspC7nFRNCjpfnDED2kRyJzO8yoK
|
||||||
|
MFz4J4JE8N7NA1uJwUEFMUvHLs0scLoPZkKcewIRm1RV2AxmFQxJkdf7YN9Pckki
|
||||||
|
f2Xgm3b48BZn0zf0qXsSeGu84ua9gwzjzI7tbTBjayTpT+/XpWuBVv6fvarI6bik
|
||||||
|
KB859OSGQuw73XXgeuFwEPHTIRoUtkzu3/EQ+LtwznkkdQIDAQABo4IBZjCCAWIw
|
||||||
|
HQYDVR0OBBYEFFPKF1n8a8ADIS8aruSqqByCVtp1MB8GA1UdIwQYMBaAFAPeUDVW
|
||||||
|
0Uy7ZvCj4hsbw5eyPdFVMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEF
|
||||||
|
BQcDAQYIKwYBBQUHAwIwEgYDVR0TAQH/BAgwBgEB/wIBADA0BggrBgEFBQcBAQQo
|
||||||
|
MCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBCBgNVHR8E
|
||||||
|
OzA5MDegNaAzhjFodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRHbG9i
|
||||||
|
YWxSb290Q0EuY3JsMGMGA1UdIARcMFowNwYJYIZIAYb9bAECMCowKAYIKwYBBQUH
|
||||||
|
AgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCwYJYIZIAYb9bAEBMAgG
|
||||||
|
BmeBDAECATAIBgZngQwBAgIwDQYJKoZIhvcNAQELBQADggEBAH4jx/LKNW5ZklFc
|
||||||
|
YWs8Ejbm0nyzKeZC2KOVYR7P8gevKyslWm4Xo4BSzKr235FsJ4aFt6yAiv1eY0tZ
|
||||||
|
/ZN18bOGSGStoEc/JE4ocIzr8P5Mg11kRYHbmgYnr1Rxeki5mSeb39DGxTpJD4kG
|
||||||
|
hs5lXNoo4conUiiJwKaqH7vh2baryd8pMISag83JUqyVGc2tWPpO0329/CWq2kry
|
||||||
|
qv66OSMjwulUz0dXf4OHQasR7CNfIr+4KScc6ABlQ5RDF86PGeE6kdwSQkFiB/cQ
|
||||||
|
ysNyq0jEDQTkfa2pjmuWtMCNbBnhFXBYejfubIhaUbEv2FOQB3dCav+FPg5eEveX
|
||||||
|
TVyMnGo=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,21 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY
|
||||||
|
MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo
|
||||||
|
R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx
|
||||||
|
MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
|
||||||
|
Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp
|
||||||
|
ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
|
||||||
|
AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9
|
||||||
|
AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA
|
||||||
|
ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0
|
||||||
|
7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W
|
||||||
|
kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI
|
||||||
|
mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G
|
||||||
|
A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ
|
||||||
|
KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1
|
||||||
|
6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
|
||||||
|
4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K
|
||||||
|
oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj
|
||||||
|
UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU
|
||||||
|
AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,22 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
|
||||||
|
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
||||||
|
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
|
||||||
|
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
|
||||||
|
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
|
||||||
|
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
|
||||||
|
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
|
||||||
|
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
|
||||||
|
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
|
||||||
|
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
|
||||||
|
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
|
||||||
|
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
|
||||||
|
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
|
||||||
|
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
|
||||||
|
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
|
||||||
|
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
|
||||||
|
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
|
||||||
|
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
|
||||||
|
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
|
||||||
|
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,70 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGETCCA/mgAwIBAgISESAecjUG2O9kiX/A/O1ocueQMA0GCSqGSIb3DQEBCwUA
|
||||||
|
MIGaMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMg
|
||||||
|
VGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE0MDIG
|
||||||
|
A1UEAwwrQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gUmFjaW5lIEFOVFMvQSBW
|
||||||
|
MzEKMAgGA1UEBRMBMTAeFw0xNjA1MjQwMDAwMDBaFw0yMjA1MjQwMDAwMDBaMIGe
|
||||||
|
MQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0
|
||||||
|
cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE4MDYGA1UE
|
||||||
|
AwwvQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gU2VydmljZXMgQXBwbGljYXRp
|
||||||
|
ZnMxCjAIBgNVBAUTATIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDe
|
||||||
|
uXSRwETXe+9+ylXVk8BRElcJzlLIbl8mPRIvD0SOojFTMlwMGGCgFlDiPmDGR9te
|
||||||
|
pHOVU9GfeiF3eT1o9xfBxLsRQdnC/1j68fgRm0qovYN5rXaB+wNPUuWtgZNwPgZK
|
||||||
|
dc4R6430xIAQpU9dHgcusWXxWMD3b7WJJmifwtlhEBKazEZcMgPS1irH+pPRH56+
|
||||||
|
AEd+l+ir7PrRd5TGfNrT/aCT+ASE+auul9Q2OrSEgBEFb2mxNmfBf9rOc+Bpueir
|
||||||
|
KProsAH+XXNXrC/4uiBVEKkGslFBIkkuPpj0wuTUZR+upT/e9GRDo+iM0UhFdy7+
|
||||||
|
oNNxa4EITghk8Rup2Mz/AgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
|
||||||
|
MA4GA1UdDwEB/wQEAwIBBjARBgNVHSAECjAIMAYGBFUdIAAwSAYDVR0fBEEwPzA9
|
||||||
|
oDugOYY3aHR0cDovL2NybC5hbnRzLmdvdXYuZnIvYW50c2F2My9hY19yYWNpbmVf
|
||||||
|
YW50c2F2M18xLmNybDCBgQYIKwYBBQUHAQEEdTBzMEIGCCsGAQUFBzAChjZodHRw
|
||||||
|
Oi8vc3AuYW50cy5nb3V2LmZyL2FudHNhdjMvY2FfcmFjaW5lX2FudHNhdjNfMS5j
|
||||||
|
ZXIwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vY3NwLmFudHMuZ291di5mci9hbnRzYXYz
|
||||||
|
LzAdBgNVHQ4EFgQUHIkSEyXD64D3jxXvqHfoIekNCZcwHwYDVR0jBBgwFoAUXAPV
|
||||||
|
d5g1UCpNf49vmlbblvgV4OMwDQYJKoZIhvcNAQELBQADggIBAJoyslCRpqW7qigT
|
||||||
|
plNwVyio41tKS6QD73Mz9Rz4a3YQyvozidSdyLOb3eYw9RFP+0LOTvdAQYvyjtvR
|
||||||
|
EsmqddFauTxBFebZYOy39ItoO4NWCoGSd8pclu7rPXyS/8D+Sfcb/juE3XLfjQvC
|
||||||
|
CuktXVoYC1s0LGVu/XSaM0Hn+g8d/dvvEeJH2wiQV1fCcDam1j8T8kuAbVOoZcGH
|
||||||
|
/vOvXvTH3jHXqL61JsytNonLMYtmV/0ZT3K2wF16Q6t0MQWSSHO3cwzwhzWnX3wz
|
||||||
|
122RoaFBjURrINwwJZpMSbY5UIL84MUR9Vl1KA9JEX9SY2ZIYC8nslHlo/fdLKjT
|
||||||
|
vFZ8n6N6VotreblAMS1EkkavN2KS+hg2MP9pSN3717kXuFlRe7p3KbUf60Uju+ci
|
||||||
|
LfQg2zkcmL3PQcEcVPjJdLQRjtOjy4gzGtLpSZ+BMkGRlfNWBfuatWpq1AcxZHXw
|
||||||
|
dgSwCYmuU7/YhO6NZINERuwOAH7EVPfIjK52O2w8BP5YDpHnFw2+d5qLp6w4WF9q
|
||||||
|
kvhgwl9/KPN47znzZbTvZ6nOk78Rkw9F6ZJ3ipn8mRSeBg8xrN9zRMOCmBanqT/b
|
||||||
|
NWMyIFkyE+dlfcGYsqAAjNTA8k3h5uJeqLIWJmPdiQ+6kDLfPvl8iRFsUUuNa3ip
|
||||||
|
9ud8JMaCHv5JiZCCrKoYzB8L3rO9
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,70 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIGETCCA/mgAwIBAgISESB0DFgpC97mZ9Nh3ruNBL2qMA0GCSqGSIb3DQEBCwUA
|
||||||
|
MIGaMQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMg
|
||||||
|
VGl0cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE0MDIG
|
||||||
|
A1UEAwwrQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gUmFjaW5lIEFOVFMvQSBW
|
||||||
|
MzEKMAgGA1UEBRMBMTAeFw0xMzA3MDQwMDAwMDBaFw0xOTA3MDQwMDAwMDBaMIGe
|
||||||
|
MQswCQYDVQQGEwJGUjEwMC4GA1UECgwnQWdlbmNlIE5hdGlvbmFsZSBkZXMgVGl0
|
||||||
|
cmVzIFPDqWN1cmlzw6lzMRcwFQYDVQQLDA4wMDAyIDEzMDAwMzI2MjE4MDYGA1UE
|
||||||
|
AwwvQXV0b3JpdMOpIGRlIENlcnRpZmljYXRpb24gU2VydmljZXMgQXBwbGljYXRp
|
||||||
|
ZnMxCjAIBgNVBAUTATEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh
|
||||||
|
AFZdLGRoaYnMv+8VxDyg1uj3ES/auX+XaXIciJK4QFzudRsu6XjS9E8N/sECZsdx
|
||||||
|
uzYZzw6CIwb8Cz/gucL7H4ITN2CUDiiMCCBobuBfSXYiY4BV7efqYE9Hx2fmQjeK
|
||||||
|
9FLHVbjJBsCjn9IIFGbqHIqCcHRH0kLyIZrnM9fG9lXJxTCqWPNzMkuTISgm9pb3
|
||||||
|
VrsBwADcoklUKeTUHkbyz+qsqwipqqrO+SJQp5Lz3Sxsx8xVNlkvKgGLn0JOidVK
|
||||||
|
PFtUPrHvd0sXzqkvaUKdAOV1SBkFJ1Oya6LBQjuDNIzdSkTyQ5h7K5p4xDUfSBU3
|
||||||
|
bZVD0ZFYnnzPo8tCYqsjAgMBAAGjggFJMIIBRTASBgNVHRMBAf8ECDAGAQH/AgEA
|
||||||
|
MA4GA1UdDwEB/wQEAwIBBjARBgNVHSAECjAIMAYGBFUdIAAwSAYDVR0fBEEwPzA9
|
||||||
|
oDugOYY3aHR0cDovL2NybC5hbnRzLmdvdXYuZnIvYW50c2F2My9hY19yYWNpbmVf
|
||||||
|
YW50c2F2M18xLmNybDCBgQYIKwYBBQUHAQEEdTBzMEIGCCsGAQUFBzAChjZodHRw
|
||||||
|
Oi8vc3AuYW50cy5nb3V2LmZyL2FudHNhdjMvY2FfcmFjaW5lX2FudHNhdjNfMS5j
|
||||||
|
ZXIwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vY3NwLmFudHMuZ291di5mci9hbnRzYXYz
|
||||||
|
LzAdBgNVHQ4EFgQUM5+7zx89GVrXKHmoSv1jfL8AMi8wHwYDVR0jBBgwFoAUXAPV
|
||||||
|
d5g1UCpNf49vmlbblvgV4OMwDQYJKoZIhvcNAQELBQADggIBAFGR3FQ/DSv7k5ZM
|
||||||
|
n97UhitA5RT+iwT7gnGMnwZ7N2CSahmxulyNSIk2UUUpmBXd/dlBTB5W4BxupgJM
|
||||||
|
21O+32dwZwfhLxT92nVlTlG+5ow0W4aXHy3ZCso+90oFBoFuZvuVt2w3XROWxqsp
|
||||||
|
Emvoot0uZjHA81hFvZEL/B8N4yoPB4olI4HCBPVAp8oBxeljYxbc/QhB5q/PqCww
|
||||||
|
lv0K4j7r2/yiUQbml5H9YZZKSETi8MW4IaIoSUh0A0IWQH4nBR7b+cwGvfgZXw43
|
||||||
|
ymE01oW2fAEAl+6nHYXEDA7q4o6VCGMqlb7FDY6ZvQ/V7oM1veVqj0nYyVTYBQ7p
|
||||||
|
Lp3hs0RuF5LJCFYhnaM9TLoDEh86tKG/YONJUXUYgUaBgFmYyBm2Rdj3A+GXpd9+
|
||||||
|
8+8ihI/mRiWPNKfX9GANN67mSOlMXbUFyZkG30CwCBZdlng+EmcZnfDNNteWxOPe
|
||||||
|
gnm816k96+zR6ZbBPRz6Vkw6nN2OB9z3GfmoaWffHXaA6jmBPn62bfCC6PzEpebp
|
||||||
|
do7X/dfB7rvRRay3Ewe/aUnzc2ze5w5z3taT5bQEj5SgBEYCMnGekmJkdMOBf/c2
|
||||||
|
mUfPtqWPDU7Mp7nO2HbMbH9Ly/EyTPh3lwFRyU3tgei0rBEN/Dq2sXt37OcfmWxy
|
||||||
|
ni/uwutaK6dn+u1i0CCQS/qDcWk0
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,14 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQsw
|
||||||
|
CQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2gg
|
||||||
|
R3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00
|
||||||
|
MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVTMSkwJwYDVQQKEyBJbnRlcm5ldCBT
|
||||||
|
ZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNSRyBSb290IFgyMHYw
|
||||||
|
EAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0HttwW
|
||||||
|
+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9
|
||||||
|
ItgKbppbd9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
|
||||||
|
AQH/BAUwAwEB/zAdBgNVHQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZI
|
||||||
|
zj0EAwMDaAAwZQIwe3lORlCEwkSHRhtFcP9Ymd70/aTSVaYgLXTWNLxBo1BfASdW
|
||||||
|
tL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5U6VR5CmD1/iQMVtCnwr1
|
||||||
|
/q4AaOeMSQ+2b1tbFfLn
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,31 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
|
||||||
|
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
||||||
|
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
|
||||||
|
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
|
||||||
|
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
|
||||||
|
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
|
||||||
|
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
|
||||||
|
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
|
||||||
|
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
|
||||||
|
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
|
||||||
|
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
|
||||||
|
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
|
||||||
|
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
|
||||||
|
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
|
||||||
|
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
|
||||||
|
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
|
||||||
|
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
|
||||||
|
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
|
||||||
|
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
|
||||||
|
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
|
||||||
|
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
|
||||||
|
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
|
||||||
|
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
|
||||||
|
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
|
||||||
|
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
|
||||||
|
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
|
||||||
|
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
|
||||||
|
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
|
||||||
|
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,31 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,30 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
nLRbwHOoq7hHwg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc6bLEeMfizANBgkqhkiG9w0BAQsFADA/
|
||||||
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
|
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDEwMloXDTIxMDMxNzE2NDEwMlow
|
||||||
|
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
|
||||||
|
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFg0MIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||||
|
AQ8AMIIBCgKCAQEA4SR0Qnu3kTHZc/84qtjORFy3OQrcRK4NvUW5lzdnr71QT1/T
|
||||||
|
EFRr90HajmPmbVvA6ECpjEH80QOJ/2JhCWDWBwV4mpC9GmQ+T9zPdy+Ja8tnr0FN
|
||||||
|
xY0AwGv+jYTctfKVMajo9pCgQ0qTdFyzPkNpS4kiR3RRPplkw80kAfmELyh3FyKn
|
||||||
|
3cNsCExmLzd0xW+TjrBGNxZh0VCYyLAPT1hTfKz22i2WYVCtQ9wKpk+etVK5nI7v
|
||||||
|
Tt9GszHcIPxpwqMgdT7sOBs2TmZm0t/1ZqSTL3umDpQ+YD1KSxxvurRNHDyRWG4v
|
||||||
|
TcTacNvtATl2wEnn6TW1FAaQweWS4hD9a7m0hQIDAQABo4IBfTCCAXkwEgYDVR0T
|
||||||
|
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
|
||||||
|
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
|
||||||
|
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
|
||||||
|
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
|
||||||
|
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
|
||||||
|
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
|
||||||
|
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
|
||||||
|
Y3JsMB0GA1UdDgQWBBTFsatOTLHNZDCTfsGEmQWr5gPiJTANBgkqhkiG9w0BAQsF
|
||||||
|
AAOCAQEANlaeSdstfAtqFN3jdRZJFjx9X+Ob3PIDlekPYQ1OQ1Uw43rE1FUj7hUw
|
||||||
|
g2MJKfs9b7M0WoQg7C20nJY/ajsg7pWhUG3J6rlkDTfVY9faeWi0qsPYXE6BpBDr
|
||||||
|
5BrW/Xv8yT8U2BiEAmNggWq8dmFl82fghmLzHBM8X8NZ3ZwA1fGePA53AP5IoD+0
|
||||||
|
ArpW8Ik1sSuQBjZ8oQLfN+G8OoY7MNRopyLyQQCNy4aWfE+xYnoVoa5+yr+aPiX0
|
||||||
|
7YQrY/cKawAn7QB4PyF5//IKSAVs7mAuB68wbMdE3FKfOHfJ24W4z/bIJTrTY8Y5
|
||||||
|
Sr4AUhtzf8oVDrHZYWRrP4joIcOu/Q==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,32 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw
|
||||||
|
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
||||||
|
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1
|
||||||
|
WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
|
||||||
|
RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi
|
||||||
|
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX
|
||||||
|
NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf
|
||||||
|
89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl
|
||||||
|
Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc
|
||||||
|
Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz
|
||||||
|
uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB
|
||||||
|
AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU
|
||||||
|
BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB
|
||||||
|
FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo
|
||||||
|
SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
|
||||||
|
LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF
|
||||||
|
BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG
|
||||||
|
AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD
|
||||||
|
VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB
|
||||||
|
ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx
|
||||||
|
A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM
|
||||||
|
UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2
|
||||||
|
DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1
|
||||||
|
eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu
|
||||||
|
OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw
|
||||||
|
p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY
|
||||||
|
2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0
|
||||||
|
ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR
|
||||||
|
PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b
|
||||||
|
rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,32 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw
|
||||||
|
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
|
||||||
|
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1
|
||||||
|
WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
|
||||||
|
RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi
|
||||||
|
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX
|
||||||
|
NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf
|
||||||
|
89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl
|
||||||
|
Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc
|
||||||
|
Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz
|
||||||
|
uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB
|
||||||
|
AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU
|
||||||
|
BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB
|
||||||
|
FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo
|
||||||
|
SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
|
||||||
|
LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF
|
||||||
|
BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG
|
||||||
|
AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD
|
||||||
|
VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB
|
||||||
|
ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx
|
||||||
|
A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM
|
||||||
|
UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2
|
||||||
|
DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1
|
||||||
|
eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu
|
||||||
|
OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw
|
||||||
|
p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY
|
||||||
|
2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0
|
||||||
|
ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR
|
||||||
|
PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b
|
||||||
|
rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,30 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
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
|
||||||
|
aNieo2Uw0oyYjOfiqjgqwmQ4Og==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4WWRNeZeda6tJ
|
||||||
|
dMoq2BaVTTn9dPxv7PXmMAbyV4BBF0OjNiJiWcMUtTR2UEmnVLzDgaIs09jwsz/O
|
||||||
|
NgjlEjM0t3bUOX6DiZg5GCE454JzMNSJAbiBTmCIQmPK3G/T6ZCGxCIIVVhBQ6IY
|
||||||
|
ZjZWVnULtwtTy4k4Ib8lD0XHZKo7vX5+2pycXAB0ndK8UoEDJf8Ld7OatFaNC4J3
|
||||||
|
/D3qUvNVQufGUgxZPp5ETKSEDnxrl67A/coea54pP73cHyArdL97QRgT0UAT2Nuw
|
||||||
|
n/It6a5xdE/5gl24RqwjN3XivgKyRhA5UeHw4tQBWIi6mou9Ttt0ky16vAsXWjt1
|
||||||
|
OXxIfi8ZAgMBAAECggEBAKfFGsZzYSrvwNvCAPcK30qTFLJ41AAcfBE4JipIvbz/
|
||||||
|
KhwP+Szeme5vlsYR/WXedUfL40a+qZEs4GWPwXqPnLBeQzOS+3NENpfHQPzjnFGu
|
||||||
|
382sFjj/llSLbvxArzkBN/md54cD/KSwo4VnCA588lpuBE4HTuMZuzZD9vImx9JC
|
||||||
|
75oGD1Acct+AFAxqf4aLDAf7XawNMTXYFmMICUtzJ/TlP4XiuSJgyt6tUvbE0SPq
|
||||||
|
PEP1iEohJCBVZrN1F1/rxW1AYKdXtso97iszObbTiHFIYyqqvBGMofgKiZXhtsLg
|
||||||
|
UCm7umD5SMeDEZWD+gGjtThepWbi+1eQezgolUMF/fECgYEA32S+VzgVwd5YNql/
|
||||||
|
8/rYKys7asacR6MZ6MP3zTpu8JU4NhuEnRi97J2nm/r4iwCO+TI1YC72r47iImp0
|
||||||
|
BQhs/4BMizZurMbEc7lvfgiDVZKCnV0iyfmi1k/K4IgVHUAFFX8JG5zSrT1eKXdh
|
||||||
|
cGrPU5UHO2F8iqaX2e6a/haha30CgYEA00G6m+v8gj2vb5h3bXnY+WPBatRdbpqn
|
||||||
|
DoLA/tASWhioY0lisiiOiziIFpeRjOQ6JEqgt+ro0yTKksHX54ti0yHL2QFi8acM
|
||||||
|
wXHTEHNo2S22DAe1fbUQuwbYzexxdscgqK+u2OBTQb9Ji7SzyMfPRZ5QdgRrri83
|
||||||
|
1Fo7+N86TM0CgYAB1Jh+rHX5LbI5WHA09pQ43lTRTilPqPV4Y8qvAtCP5hkc0GLo
|
||||||
|
yqAbxTrvW0IYGXwSbKflTt00mQ4fTBIBTI1gFpQJ+/syLTrE2/se5ED3PYkWcwHq
|
||||||
|
98Gu0d6Osm7B25lvEKhpcoKDauJPoqvIuQdT3v+9K9JSbIUIAx2AAX13HQKBgECN
|
||||||
|
ozImCEDcDJGzKzs+snhybRXx0qMLiuS6O7MhbZouUrYUJJ6AGh6cpakRo55D1yhj
|
||||||
|
zXylwYNTiLsTlJ/iTc5qU1n6PHvPKeyqlW4/ddh3SVuft2u0OmqMCw/RolJDQs2I
|
||||||
|
8Yq/8XDzvMt96jn+JG4HlFqbuzO8pfizogPIYo45AoGBAIkCD7iW7TMI38npwgbt
|
||||||
|
nnA/DiMdNorsUzp/zQdzGb4QGGldVSsIk+sgJkNMAMC9zJ2ih4jh2M/Lr1N3FsOC
|
||||||
|
PVReoeF9/PMjy0Hbdyyzd6XQhW+KLiyibgwMkdRYrAD0jXaSgDnwzIff2aPS1n/m
|
||||||
|
7eRMhYiUVDxVVO8REWVlEmlr
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,56 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFHzCCBAegAwIBAgISBCjkb2j6sMEhSJmFWzQLY9ZFMA0GCSqGSIb3DQEBCwUA
|
||||||
|
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
|
||||||
|
EwJSMzAeFw0yMTAyMTcxMjA3MTZaFw0yMTA1MTgxMjA3MTZaMBgxFjAUBgNVBAMM
|
||||||
|
DSouYmVyLmFzc28uZnIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4
|
||||||
|
WWRNeZeda6tJdMoq2BaVTTn9dPxv7PXmMAbyV4BBF0OjNiJiWcMUtTR2UEmnVLzD
|
||||||
|
gaIs09jwsz/ONgjlEjM0t3bUOX6DiZg5GCE454JzMNSJAbiBTmCIQmPK3G/T6ZCG
|
||||||
|
xCIIVVhBQ6IYZjZWVnULtwtTy4k4Ib8lD0XHZKo7vX5+2pycXAB0ndK8UoEDJf8L
|
||||||
|
d7OatFaNC4J3/D3qUvNVQufGUgxZPp5ETKSEDnxrl67A/coea54pP73cHyArdL97
|
||||||
|
QRgT0UAT2Nuwn/It6a5xdE/5gl24RqwjN3XivgKyRhA5UeHw4tQBWIi6mou9Ttt0
|
||||||
|
ky16vAsXWjt1OXxIfi8ZAgMBAAGjggJHMIICQzAOBgNVHQ8BAf8EBAMCBaAwHQYD
|
||||||
|
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O
|
||||||
|
BBYEFIPQnxhiMLua8dlOGgyjElFFSq9JMB8GA1UdIwQYMBaAFBQusxe3WFbLrlAJ
|
||||||
|
QOYfr52LFMLGMFUGCCsGAQUFBwEBBEkwRzAhBggrBgEFBQcwAYYVaHR0cDovL3Iz
|
||||||
|
Lm8ubGVuY3Iub3JnMCIGCCsGAQUFBzAChhZodHRwOi8vcjMuaS5sZW5jci5vcmcv
|
||||||
|
MBgGA1UdEQQRMA+CDSouYmVyLmFzc28uZnIwTAYDVR0gBEUwQzAIBgZngQwBAgEw
|
||||||
|
NwYLKwYBBAGC3xMBAQEwKDAmBggrBgEFBQcCARYaaHR0cDovL2Nwcy5sZXRzZW5j
|
||||||
|
cnlwdC5vcmcwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQCUILwejtWNbIhzH4KL
|
||||||
|
IiwN0dpNXmxPlD1h204vWE2iwgAAAXewGhhfAAAEAwBGMEQCIC88mMBZPXR5wDuV
|
||||||
|
Q3+TNOafkGYD1RZMp88tiTI4j/EAAiAi8HdR5aYRkcjgVKsB8Dc/yA36dkQ9V/MH
|
||||||
|
3+50rvef4gB2AH0+8viP/4hVaCTCwMqeUol5K8UOeAl/LmqXaJl+IvDXAAABd7Aa
|
||||||
|
GQgAAAQDAEcwRQIhAIFWNgftG1lP3bFEMx90k9PGZyEQnAgt/I0rmUMFRsJVAiAT
|
||||||
|
y92UzhyUcE5ylL0ef33/f+y5Fk3TemdFDnWguX56CzANBgkqhkiG9w0BAQsFAAOC
|
||||||
|
AQEACiz/1Na1pfXd78CZ8jN65EcbhE8Z9JMUb8v4uOOf5whK6oHlkUgAvjIUzL5A
|
||||||
|
xfmUPUXdceSLOttgT6+wx5X8zyPSiUNQDEre8RMqGtRTX0uix5Gxp2nyQAOf7BdS
|
||||||
|
knzYkQ90HM5XHyXci0yqImT+g1XUz404DTXi4TtunVXaHTsnVK4VvJCMbitmwEjR
|
||||||
|
8u3xQrbqqBAkhVMeiywgNdSpkhDZz1Vl7NQgv0QmkdDfs2UM2cOt/XPlzyzYQ/DG
|
||||||
|
sRyJ+ItEm5XMlrh21ISmnHzeBNGLGnPBBNBYMX8ReLIw1VjQ+98adWs+jL6/Ac9Q
|
||||||
|
aNieo2Uw0oyYjOfiqjgqwmQ4Og==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/
|
||||||
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
|
DkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFow
|
||||||
|
MjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMT
|
||||||
|
AlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLs
|
||||||
|
jVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKp
|
||||||
|
Tm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnB
|
||||||
|
U840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7
|
||||||
|
gcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkel
|
||||||
|
/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1R
|
||||||
|
oYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E
|
||||||
|
BAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5p
|
||||||
|
ZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTE
|
||||||
|
p7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEE
|
||||||
|
AYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2Vu
|
||||||
|
Y3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0
|
||||||
|
LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYf
|
||||||
|
r52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B
|
||||||
|
AQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kH
|
||||||
|
ejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8
|
||||||
|
S8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfL
|
||||||
|
qjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9p
|
||||||
|
O5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2Tw
|
||||||
|
UdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,27 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
|
||||||
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
|
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
|
||||||
|
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
|
||||||
|
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
|
||||||
|
AQ8AMIIBCgKCAQEAnNMM8FrlLke3cl03g7NoYzDq1zUmGSXhvb418XCSL7e4S0EF
|
||||||
|
q6meNQhY7LEqxGiHC6PjdeTm86dicbp5gWAf15Gan/PQeGdxyGkOlZHP/uaZ6WA8
|
||||||
|
SMx+yk13EiSdRxta67nsHjcAHJyse6cF6s5K671B5TaYucv9bTyWaN8jKkKQDIZ0
|
||||||
|
Z8h/pZq4UmEUEz9l6YKHy9v6Dlb2honzhT+Xhq+w3Brvaw2VFn3EK6BlspkENnWA
|
||||||
|
a6xK8xuQSXgvopZPKiAlKQTGdMDQMc2PMTiVFrqoM7hD8bEfwzB/onkxEz0tNvjj
|
||||||
|
/PIzark5McWvxI0NHWQWM6r6hCm21AvA2H3DkwIDAQABo4IBfTCCAXkwEgYDVR0T
|
||||||
|
AQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwfwYIKwYBBQUHAQEEczBxMDIG
|
||||||
|
CCsGAQUFBzABhiZodHRwOi8vaXNyZy50cnVzdGlkLm9jc3AuaWRlbnRydXN0LmNv
|
||||||
|
bTA7BggrBgEFBQcwAoYvaHR0cDovL2FwcHMuaWRlbnRydXN0LmNvbS9yb290cy9k
|
||||||
|
c3Ryb290Y2F4My5wN2MwHwYDVR0jBBgwFoAUxKexpHsscfrb4UuQdf/EFWCFiRAw
|
||||||
|
VAYDVR0gBE0wSzAIBgZngQwBAgEwPwYLKwYBBAGC3xMBAQEwMDAuBggrBgEFBQcC
|
||||||
|
ARYiaHR0cDovL2Nwcy5yb290LXgxLmxldHNlbmNyeXB0Lm9yZzA8BgNVHR8ENTAz
|
||||||
|
MDGgL6AthitodHRwOi8vY3JsLmlkZW50cnVzdC5jb20vRFNUUk9PVENBWDNDUkwu
|
||||||
|
Y3JsMB0GA1UdDgQWBBSoSmpjBH3duubRObemRWXv86jsoTANBgkqhkiG9w0BAQsF
|
||||||
|
AAOCAQEA3TPXEfNjWDjdGBX7CVW+dla5cEilaUcne8IkCJLxWh9KEik3JHRRHGJo
|
||||||
|
uM2VcGfl96S8TihRzZvoroed6ti6WqEBmtzw3Wodatg+VyOeph4EYpr/1wXKtx8/
|
||||||
|
wApIvJSwtmVi4MFU5aMqrSDE6ea73Mj2tcMyo5jMd6jmeWUHK8so/joWUoHOUgwu
|
||||||
|
X4Po1QYz+3dszkDqMp4fklxBwXRsW10KXzPMTZ+sOPAveyxindmjkW8lGy+QsRlG
|
||||||
|
PfZ+G6Z6h7mjem0Y+iWlkYcV4PIWL1iwBi8saCbGS5jN2p8M+X+Q7UNKEkROb3N6
|
||||||
|
KOqkqm57TH2H3eDJAkSnh6/DNFu0Qg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,26 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEZTCCA02gAwIBAgIQQAF1BIMUpMghjISpDBbN3zANBgkqhkiG9w0BAQsFADA/
|
||||||
|
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
|
||||||
|
DkRTVCBSb290IENBIFgzMB4XDTIwMTAwNzE5MjE0MFoXDTIxMDkyOTE5MjE0MFow
|
||||||
|
MjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxCzAJBgNVBAMT
|
||||||
|
AlIzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuwIVKMz2oJTTDxLs
|
||||||
|
jVWSw/iC8ZmmekKIp10mqrUrucVMsa+Oa/l1yKPXD0eUFFU1V4yeqKI5GfWCPEKp
|
||||||
|
Tm71O8Mu243AsFzzWTjn7c9p8FoLG77AlCQlh/o3cbMT5xys4Zvv2+Q7RVJFlqnB
|
||||||
|
U840yFLuta7tj95gcOKlVKu2bQ6XpUA0ayvTvGbrZjR8+muLj1cpmfgwF126cm/7
|
||||||
|
gcWt0oZYPRfH5wm78Sv3htzB2nFd1EbjzK0lwYi8YGd1ZrPxGPeiXOZT/zqItkel
|
||||||
|
/xMY6pgJdz+dU/nPAeX1pnAXFK9jpP+Zs5Od3FOnBv5IhR2haa4ldbsTzFID9e1R
|
||||||
|
oYvbFQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E
|
||||||
|
BAMCAYYwSwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5p
|
||||||
|
ZGVudHJ1c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTE
|
||||||
|
p7Gkeyxx+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEE
|
||||||
|
AYLfEwEBATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2Vu
|
||||||
|
Y3J5cHQub3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0
|
||||||
|
LmNvbS9EU1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYf
|
||||||
|
r52LFMLGMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjANBgkqhkiG9w0B
|
||||||
|
AQsFAAOCAQEA2UzgyfWEiDcx27sT4rP8i2tiEmxYt0l+PAK3qB8oYevO4C5z70kH
|
||||||
|
ejWEHx2taPDY/laBL21/WKZuNTYQHHPD5b1tXgHXbnL7KqC401dk5VvCadTQsvd8
|
||||||
|
S8MXjohyc9z9/G2948kLjmE6Flh9dDYrVYA9x2O+hEPGOaEOa1eePynBgPayvUfL
|
||||||
|
qjBstzLhWVQLGAkXXmNs+5ZnPBxzDJOLxhF2JIbeQAcH5H0tZrUlo5ZYyOqA7s9p
|
||||||
|
O5b85o3AM/OJ+CktFBQtfvBhcJVd9wvlwPsk+uyOy2HI7mNxKKgsBTt375teA2Tw
|
||||||
|
UdHkhVNcsAKX1H7GNNLOEADksd86wuoXvg==
|
||||||
|
-----END CERTIFICATE-----
|
|
@ -0,0 +1,28 @@
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4WWRNeZeda6tJ
|
||||||
|
dMoq2BaVTTn9dPxv7PXmMAbyV4BBF0OjNiJiWcMUtTR2UEmnVLzDgaIs09jwsz/O
|
||||||
|
NgjlEjM0t3bUOX6DiZg5GCE454JzMNSJAbiBTmCIQmPK3G/T6ZCGxCIIVVhBQ6IY
|
||||||
|
ZjZWVnULtwtTy4k4Ib8lD0XHZKo7vX5+2pycXAB0ndK8UoEDJf8Ld7OatFaNC4J3
|
||||||
|
/D3qUvNVQufGUgxZPp5ETKSEDnxrl67A/coea54pP73cHyArdL97QRgT0UAT2Nuw
|
||||||
|
n/It6a5xdE/5gl24RqwjN3XivgKyRhA5UeHw4tQBWIi6mou9Ttt0ky16vAsXWjt1
|
||||||
|
OXxIfi8ZAgMBAAECggEBAKfFGsZzYSrvwNvCAPcK30qTFLJ41AAcfBE4JipIvbz/
|
||||||
|
KhwP+Szeme5vlsYR/WXedUfL40a+qZEs4GWPwXqPnLBeQzOS+3NENpfHQPzjnFGu
|
||||||
|
382sFjj/llSLbvxArzkBN/md54cD/KSwo4VnCA588lpuBE4HTuMZuzZD9vImx9JC
|
||||||
|
75oGD1Acct+AFAxqf4aLDAf7XawNMTXYFmMICUtzJ/TlP4XiuSJgyt6tUvbE0SPq
|
||||||
|
PEP1iEohJCBVZrN1F1/rxW1AYKdXtso97iszObbTiHFIYyqqvBGMofgKiZXhtsLg
|
||||||
|
UCm7umD5SMeDEZWD+gGjtThepWbi+1eQezgolUMF/fECgYEA32S+VzgVwd5YNql/
|
||||||
|
8/rYKys7asacR6MZ6MP3zTpu8JU4NhuEnRi97J2nm/r4iwCO+TI1YC72r47iImp0
|
||||||
|
BQhs/4BMizZurMbEc7lvfgiDVZKCnV0iyfmi1k/K4IgVHUAFFX8JG5zSrT1eKXdh
|
||||||
|
cGrPU5UHO2F8iqaX2e6a/haha30CgYEA00G6m+v8gj2vb5h3bXnY+WPBatRdbpqn
|
||||||
|
DoLA/tASWhioY0lisiiOiziIFpeRjOQ6JEqgt+ro0yTKksHX54ti0yHL2QFi8acM
|
||||||
|
wXHTEHNo2S22DAe1fbUQuwbYzexxdscgqK+u2OBTQb9Ji7SzyMfPRZ5QdgRrri83
|
||||||
|
1Fo7+N86TM0CgYAB1Jh+rHX5LbI5WHA09pQ43lTRTilPqPV4Y8qvAtCP5hkc0GLo
|
||||||
|
yqAbxTrvW0IYGXwSbKflTt00mQ4fTBIBTI1gFpQJ+/syLTrE2/se5ED3PYkWcwHq
|
||||||
|
98Gu0d6Osm7B25lvEKhpcoKDauJPoqvIuQdT3v+9K9JSbIUIAx2AAX13HQKBgECN
|
||||||
|
ozImCEDcDJGzKzs+snhybRXx0qMLiuS6O7MhbZouUrYUJJ6AGh6cpakRo55D1yhj
|
||||||
|
zXylwYNTiLsTlJ/iTc5qU1n6PHvPKeyqlW4/ddh3SVuft2u0OmqMCw/RolJDQs2I
|
||||||
|
8Yq/8XDzvMt96jn+JG4HlFqbuzO8pfizogPIYo45AoGBAIkCD7iW7TMI38npwgbt
|
||||||
|
nnA/DiMdNorsUzp/zQdzGb4QGGldVSsIk+sgJkNMAMC9zJ2ih4jh2M/Lr1N3FsOC
|
||||||
|
PVReoeF9/PMjy0Hbdyyzd6XQhW+KLiyibgwMkdRYrAD0jXaSgDnwzIff2aPS1n/m
|
||||||
|
7eRMhYiUVDxVVO8REWVlEmlr
|
||||||
|
-----END PRIVATE KEY-----
|
|
@ -0,0 +1,95 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"alpine_provisionning": "{{ user `provisionning_dir`}}/alpine",
|
||||||
|
"al_mirror": "http://dl-cdn.alpinelinux.org/alpine",
|
||||||
|
"al_release": "3.10.2",
|
||||||
|
"al_version": "3.10",
|
||||||
|
"al_flavour": "alpine-virt",
|
||||||
|
"vm_name": "alpine-310",
|
||||||
|
"root_password": "cadoles",
|
||||||
|
"disk_size": "10240",
|
||||||
|
"headless": "true"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ user `al_mirror` }}/v{{ user `al_version` }}/releases/x86_64/{{ user `al_flavour` }}-{{ user `al_release` }}-x86_64.iso",
|
||||||
|
"iso_checksum": "file:{{ user `alpine_provisionning` }}/sums/{{ user `al_flavour` }}-{{ user `al_release` }}-x86_64.iso.sha256",
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{user `disk_size`}}",
|
||||||
|
"disk_compression": false,
|
||||||
|
"skip_compaction": true,
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "{{user `root_password`}}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"headless": "{{user `headless`}}",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"boot_command": [
|
||||||
|
"<wait5s>root<enter>",
|
||||||
|
"<wait1s><enter>",
|
||||||
|
"<wait1s>passwd<enter><wait1s>cadoles<enter><wait1s>cadoles<enter>",
|
||||||
|
"<wait1s>setup-interfaces<enter><wait1s><enter><wait1s><enter><wait1s><enter>",
|
||||||
|
"<wait1s>ifup eth0<enter>",
|
||||||
|
"<wait1s>setup-sshd<enter>",
|
||||||
|
"<wait1s><enter><wait1s>",
|
||||||
|
"<wait1s>echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config<enter>",
|
||||||
|
"<wait1s>rc-service sshd stop<enter>",
|
||||||
|
"<wait1s>rc-service sshd start<enter>",
|
||||||
|
"<wait1s><enter>"
|
||||||
|
],
|
||||||
|
"ssh_wait_timeout": "20m",
|
||||||
|
"output_directory": "{{ template_dir }}/../../../images/alpine/{{user `al_version`}}/{{ user `al_flavour` }}",
|
||||||
|
"vm_name": "{{ build_name }}-{{ isotime \"20060102\" }}.img"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"source":"{{ user `provisionning_dir`}}/ssl",
|
||||||
|
"destination":"/usr/local/share/ca-certificates/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"expect_disconnect": true,
|
||||||
|
"script": "{{ user `alpine_provisionning` }}/setup-alpine.sh",
|
||||||
|
"environment_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}",
|
||||||
|
"ROOT_PASSWORD={{user `root_password`}}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pause_before": "30s",
|
||||||
|
"type": "shell",
|
||||||
|
"scripts": [
|
||||||
|
"{{ user `alpine_provisionning` }}/configure-onecontext.sh",
|
||||||
|
"{{ user `alpine_provisionning` }}/finalize.sh"
|
||||||
|
],
|
||||||
|
"environment_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}",
|
||||||
|
"ROOT_PASSWORD={{user `root_password`}}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [ "sleep 5","qemu-img convert -O qcow2 -c {{ template_dir }}/../../../images/alpine/{{ user `al_version` }}/{{ user `al_flavour` }}/{{ build_name }}-{{ isotime \"20060102\" }}.img {{ template_dir }}/../../../images/alpine/{{ user `al_version` }}/{{ user `al_flavour` }}/{{ user `al_flavour` }}-{{ user `al_version` }}.img" ,
|
||||||
|
"rm -rf {{ template_dir }}/../../../images/alpine/{{ user `al_version` }}/{{ user `al_flavour` }}/{{ build_name }}-{{ isotime \"20060102\" }}.img" ]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,94 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"headless": "true",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"alpine_provisionning": "{{ user `provisionning_dir`}}/alpine",
|
||||||
|
"root_password": "cadoles",
|
||||||
|
"al_flavour": "alpine-virt",
|
||||||
|
"al_mirror": "http://dl-cdn.alpinelinux.org/alpine",
|
||||||
|
"al_release": "3.12.0",
|
||||||
|
"al_version": "3.12",
|
||||||
|
"disk_size": "10240",
|
||||||
|
"vm_name": "alpine-312"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"boot_command": [
|
||||||
|
"<wait5s>root<enter>",
|
||||||
|
"<wait1s><enter>",
|
||||||
|
"<wait1s>passwd<enter><wait1s>cadoles<enter><wait1s>cadoles<enter>",
|
||||||
|
"<wait1s>setup-interfaces<enter><wait1s><enter><wait1s><enter><wait1s><enter>",
|
||||||
|
"<wait1s>ifup eth0<enter>",
|
||||||
|
"<wait1s>setup-sshd<enter>",
|
||||||
|
"<wait1s><enter><wait1s>",
|
||||||
|
"<wait1s>echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config<enter>",
|
||||||
|
"<wait1s>rc-service sshd stop<enter>",
|
||||||
|
"<wait1s>rc-service sshd start<enter>",
|
||||||
|
"<wait1s><enter>"
|
||||||
|
],
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"disk_compression": false,
|
||||||
|
"disk_size": "{{user `disk_size`}}",
|
||||||
|
"format": "qcow2",
|
||||||
|
"headless": "{{user `headless`}}",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"iso_checksum": "file:{{ user `alpine_provisionning` }}/sums/{{ user `al_flavour` }}-{{ user `al_release` }}-x86_64.iso.sha256",
|
||||||
|
"iso_url": "{{ user `al_mirror` }}/v{{ user `al_version` }}/releases/x86_64/{{ user `al_flavour` }}-{{ user `al_release` }}-x86_64.iso",
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"output_directory": "{{ template_dir }}/../../../images/alpine/{{user `al_version`}}/{{ user `al_flavour` }}",
|
||||||
|
"skip_compaction": true,
|
||||||
|
"ssh_password": "{{user `root_password`}}",
|
||||||
|
"ssh_timeout": "20m",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"type": "qemu",
|
||||||
|
"vm_name": "{{ build_name }}-{{ isotime \"20060102\" }}.img"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"environment_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}",
|
||||||
|
"ROOT_PASSWORD={{user `root_password`}}"
|
||||||
|
],
|
||||||
|
"expect_disconnect": true,
|
||||||
|
"script": "{{ user `alpine_provisionning` }}/setup-alpine.sh",
|
||||||
|
"type": "shell"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"environment_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}",
|
||||||
|
"ROOT_PASSWORD={{user `root_password`}}"
|
||||||
|
],
|
||||||
|
"pause_before": "30s",
|
||||||
|
"scripts": [
|
||||||
|
"{{ user `alpine_provisionning` }}/configure-onecontext.sh",
|
||||||
|
"{{ user `alpine_provisionning` }}/finalize.sh"
|
||||||
|
],
|
||||||
|
"type": "shell"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ template_dir }}/../../../images/alpine/{{ user `al_version` }}/{{ user `al_flavour` }}/{{ build_name }}-{{ isotime \"20060102\" }}.img {{ template_dir }}/../../../images/alpine/{{ user `al_version` }}/{{ user `al_flavour` }}/{{ user `al_flavour` }}-{{ user `al_version` }}.img",
|
||||||
|
"rm -rf {{ template_dir }}/../../../images/alpine/{{ user `al_version` }}/{{ user `al_flavour` }}/{{ build_name }}-{{ isotime \"20060102\" }}.img"
|
||||||
|
],
|
||||||
|
"type": "shell-local"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "amon",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "amon-2.7.2",
|
||||||
|
"image_size": "40960",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/eole/{{user `eole_version`}}/eolebase/eolebase-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/partitions.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}",
|
||||||
|
"vgname=main",
|
||||||
|
"lvnames=var",
|
||||||
|
"lvsizes=80%FREE",
|
||||||
|
"lvfssys=ext4",
|
||||||
|
"lvmntps=/var"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [ "reboot" ],
|
||||||
|
"expect_disconnect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/{{ user `module_name` }}.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "eolebase",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "eolebase-2.7.2",
|
||||||
|
"image_size": "10240",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/ubuntu/{{user `ubuntu_version`}}/ubuntu-{{ user `ubuntu_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{ user `eole_provisionning` }}/onecontext/net-99-eole",
|
||||||
|
"destination": "/root/net-99-eole"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{ user `eole_provisionning` }}/{{ user `eole_version` }}/modif/00-eole.yaml",
|
||||||
|
"destination": "/root/00-eole.yaml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{ user `eole_provisionning` }}/{{ user `eole_version` }}/netplan/01-netcfg.yaml",
|
||||||
|
"destination": "/etc/netplan/01-netcfg.yaml"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"source":"{{user `provisionning_dir` }}/ssl",
|
||||||
|
"destination":"/usr/local/share/ca-certificates/rapidssl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{user `eole_playbooks`}}/eole.yml",
|
||||||
|
"extra_arguments": [ "-vvvv", "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"ansible",
|
||||||
|
"playbook_file":"{{ user `eole_playbooks` }}/provision.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "lemonldap",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "lemonldap-2.7.2",
|
||||||
|
"image_size": "20480",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/eole/{{user `eole_version`}}/eolebase/eolebase-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/partitions.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}",
|
||||||
|
"vgname=main",
|
||||||
|
"lvnames=var",
|
||||||
|
"lvsizes=80%FREE",
|
||||||
|
"lvfssys=ext4",
|
||||||
|
"lvmntps=/var"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [ "reboot" ],
|
||||||
|
"expect_disconnect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/{{ user `module_name` }}.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O vdi {{ user `output_dir` }}/{{ user `vm_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.vdi"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "minio",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "minio-2.7.2",
|
||||||
|
"image_size": "102400",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/eole/{{user `eole_version`}}/eolebase/eolebase-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/partitions.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}",
|
||||||
|
"vgname=main",
|
||||||
|
"lvnames=ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8",
|
||||||
|
"lvsizes=10G 10G 10G 10G 10G 10G 10G 10G",
|
||||||
|
"lvfssys=ext4 ext4 ext4 ext4 ext4 ext4 ext4 ext4",
|
||||||
|
"lvmntps=/srv/ds1 /srv/ds2 /srv/ds3 /srv/ds4 /srv/ds5 /srv/ds6 /srv/ds7 /srv/ds8"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [ "reboot" ],
|
||||||
|
"expect_disconnect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/{{ user `module_name` }}.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O vdi {{ user `output_dir` }}/{{ user `vm_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.vdi"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
openssh-server/permit-root-login boolean true
|
||||||
|
|
||||||
|
d-i preseed/late_command string in-target /bin/bash -c "chpasswd -c SHA512 <<<'root:cadoles'"
|
||||||
|
d-i preseed/late_command string in-target /bin/bash -c "sed -i 's/^#PermitRootLogin.*\$/PermitRootLogin yes/g' /etc/ssh/sshd_config";
|
|
@ -0,0 +1,76 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
set -xeo pipefail
|
||||||
|
|
||||||
|
export DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
# Download OpenNebula context package
|
||||||
|
ONE_CONTEXT_VERSION=5.8.0
|
||||||
|
ONE_CONTEXT_BUILD_SUFFIX=-1
|
||||||
|
ONE_CONTEXT_SHASUM=cfcc8aa2e51396935e8d2a507f996838201515b5
|
||||||
|
ONE_CONTEXT_URL="https://github.com/OpenNebula/addon-context-linux/releases/download/v${ONE_CONTEXT_VERSION}/one-context_${ONE_CONTEXT_VERSION}${ONE_CONTEXT_BUILD_SUFFIX}.deb"
|
||||||
|
ONE_CONTEXT_PACKAGE_DEST=/tmp/one-context.deb
|
||||||
|
|
||||||
|
wget -O- "${ONE_CONTEXT_URL}" > "${ONE_CONTEXT_PACKAGE_DEST}"
|
||||||
|
echo "${ONE_CONTEXT_SHASUM} ${ONE_CONTEXT_PACKAGE_DEST}" | shasum -c
|
||||||
|
|
||||||
|
# Purge cloud-init
|
||||||
|
#apt-get purge -y cloud-init
|
||||||
|
|
||||||
|
# Install onecontext
|
||||||
|
Query-Auto
|
||||||
|
dpkg -i "${ONE_CONTEXT_PACKAGE_DEST}" || apt-get install -fy
|
||||||
|
|
||||||
|
# Ajout script de compat contextualisation OpenNebula/EOLE
|
||||||
|
apt-get install -y jq
|
||||||
|
mv /root/net-99-eole /etc/one-context.d/net-99-eole
|
||||||
|
chmod +x /etc/one-context.d/net-99-eole
|
||||||
|
|
||||||
|
# Allow TCP Forwarding to ease GenConfig usage
|
||||||
|
sed 's/^AllowTcpForwarding.*$/AllowTcpForwarding yes/' /usr/share/eole/creole/distrib/sshd_config > /usr/share/eole/creole/modif/sshd_config
|
||||||
|
|
||||||
|
# Ajout patch configuration DHCPv6
|
||||||
|
mv /root/00-eole.yaml /usr/share/eole/creole/modif/00-eole.yaml
|
||||||
|
|
||||||
|
gen_patch
|
||||||
|
|
||||||
|
# Update hostname
|
||||||
|
hostnamectl set-hostname "${VM_NAME}"
|
||||||
|
|
||||||
|
# Disable root login with password
|
||||||
|
# sed -i 's/^PermitRootLogin.*$/PermitRootLogin without-password/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f "${ONE_CONTEXT_PACKAGE_DEST}"
|
||||||
|
apt-get -y clean
|
||||||
|
|
||||||
|
# Update image with latest packages
|
||||||
|
Maj-Auto -i
|
||||||
|
|
||||||
|
# Clean all apt cache
|
||||||
|
apt clean
|
||||||
|
|
||||||
|
# TEMP Prevent EOLE 2.7.0 fucking bugs
|
||||||
|
systemctl disable gpm # Allow fucking login in VNC
|
||||||
|
|
||||||
|
# Disable nut-(driver|monitor)
|
||||||
|
systemctl mask nut-driver
|
||||||
|
systemctl disable nut-monitor
|
||||||
|
|
||||||
|
# Disable IPv6 to allow the VM to fucking boot
|
||||||
|
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*$/GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"/' /etc/default/grub
|
||||||
|
update-grub
|
||||||
|
|
||||||
|
# TRIM command to reduce disk size
|
||||||
|
fstrim -av
|
||||||
|
|
||||||
|
# Zero out the disk (could be very long)
|
||||||
|
set +e
|
||||||
|
FILE=/mytempfile
|
||||||
|
dd if=/dev/zero of=${FILE}
|
||||||
|
rm -rf ${FILE}
|
||||||
|
sync
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Force sync
|
||||||
|
sync
|
|
@ -0,0 +1,85 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "seth",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "seth-2.7.2",
|
||||||
|
"image_size": "51200",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/eole/{{user `eole_version`}}/eolebase/eolebase-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/partitions.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}",
|
||||||
|
"vgname=main",
|
||||||
|
"lvnames=home var tmp",
|
||||||
|
"lvsizes=80%FREE 90%FREE 100%FREE",
|
||||||
|
"lvfssys=ext4 ext4 ext4",
|
||||||
|
"lvmntps=/home /var /tmp"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [ "reboot" ],
|
||||||
|
"expect_disconnect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/{{ user `module_name` }}.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,92 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "tenjin",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "tenjin-2.7.2",
|
||||||
|
"image_size": "100G",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/eole/{{user `eole_version`}}/eolebase/eolebase-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/partitions.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}",
|
||||||
|
"vgname=main",
|
||||||
|
"lvnames=var home",
|
||||||
|
"lvsizes=10%FREE 90%FREE",
|
||||||
|
"lvfssys=ext4 ext4",
|
||||||
|
"lvmntps=/var /home"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [ "reboot" ],
|
||||||
|
"expect_disconnect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/{{ user `module_name` }}.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O vdi {{ user `output_dir` }}/{{ user `vm_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.vdi"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"eole_provisionning": "{{ user `provisionning_dir`}}/eole",
|
||||||
|
"eole_playbooks": "{{ user `provisionning_dir` }}/playbooks/eole",
|
||||||
|
"module_name": "zephir",
|
||||||
|
"ubuntu_version": "18.04",
|
||||||
|
"eole_version": "2.7.2",
|
||||||
|
"vm_name": "{{ user `module_name` }}-2.7.2",
|
||||||
|
"image_size": "40960",
|
||||||
|
"output_dir": "{{ template_dir }}/../../../images/eole/2.7.2/{{ user `module_name` }}",
|
||||||
|
"image_name": "{{ user `vm_name` }}-{{ isotime \"20060102\" }}"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_url": "{{ template_dir }}/../../../images/eole/{{user `eole_version`}}/eolebase/eolebase-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"disk_size": "{{ user `image_size` }}",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"net_device": "virtio-net",
|
||||||
|
"disk_interface": "virtio",
|
||||||
|
"ssh_wait_timeout": "5m",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"output_directory": "{{ user `output_dir` }}",
|
||||||
|
"vm_name": "{{ user `image_name` }}.img",
|
||||||
|
"headless": true,
|
||||||
|
"qemuargs": [
|
||||||
|
[
|
||||||
|
"-m",
|
||||||
|
"2048"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/partitions.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}",
|
||||||
|
"vgname=main",
|
||||||
|
"lvnames=home var",
|
||||||
|
"lvsizes=5%FREE 80%FREE",
|
||||||
|
"lvfssys=ext4 ext4",
|
||||||
|
"lvmntps=/home /var"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"inline": [ "reboot" ],
|
||||||
|
"expect_disconnect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"pause_before": "45s",
|
||||||
|
"playbook_file": "{{ user `eole_playbooks` }}/{{ user `module_name` }}.yml",
|
||||||
|
"extra_arguments": [ "--extra-vars", "VM_NAME={{ user `vm_name` }} HTTP_PROXY={{ user `HTTP_PROXY` }} HTTPS_PROXY={{ user `HTTPS_PROXY` }} http_proxy={{ user `http_proxy` }} https_proxy={{ user `https_proxy` }}"]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"inline": [
|
||||||
|
"sleep 5",
|
||||||
|
"qemu-img convert -O qcow2 -c {{ user `output_dir` }}/{{ user `image_name` }}.img {{ user `output_dir` }}/{{ user `vm_name` }}.img",
|
||||||
|
"rm -rf {{ user `output_dir` }}/{{ user `image_name` }}.img"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,117 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"domain": "{{ env `DOMAIN` }}",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../../provisioning",
|
||||||
|
"playbooks_dir": "{{ user `provisionning_dir` }}/playbooks",
|
||||||
|
"infra_provisionning": "{{ user `provisionning_dir`}}/infra/{{ user `domain` }}",
|
||||||
|
"infra_playbooks": "{{ user `provisionning_dir` }}/playbooks/infra/{{ user `domain` }}",
|
||||||
|
"vm_name": "{{ env `VM_NAME` }}",
|
||||||
|
"image_output_directory": "{{ template_dir }}/../../../images/infra/cadoles.com/production/{{ user `vm_name`}}/system",
|
||||||
|
"syst_image_file": "{{ user `image_output_directory` }}/{{ user `vm_name` }}.img",
|
||||||
|
"eole_module" : "eolebase",
|
||||||
|
"image_version": "0.0.1",
|
||||||
|
"eole_version" : "2.7.2"
|
||||||
|
},
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_urls": "{{ template_dir }}/../../../../images/eole/{{user `eole_version`}}/{{user `eole_module`}}/{{user `eole_module`}}-{{ user `eole_version` }}.img",
|
||||||
|
"iso_checksum": "none",
|
||||||
|
"disk_image": true,
|
||||||
|
"format": "qcow2",
|
||||||
|
"cpus": "2",
|
||||||
|
"memory": "2048",
|
||||||
|
"disk_size": "20480",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"http_directory": "{{ template_dir }}",
|
||||||
|
"ssh_wait_timeout": "20m",
|
||||||
|
"boot_wait": "15s",
|
||||||
|
"skip_compaction": true,
|
||||||
|
"headless": true,
|
||||||
|
"shutdown_command": "shutdown -P now",
|
||||||
|
"output_directory": "{{ user `image_output_directory` }}",
|
||||||
|
"vm_name": "{{ build_name }}.img"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "file",
|
||||||
|
"source": "{{user `provisionning_dir`}}/ssh",
|
||||||
|
"destination": "/root/.ssh/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"source":"{{ user `provisionning_dir` }}/../provisioning/ssl/ca/",
|
||||||
|
"destination":"/usr/local/share/ca-certificates/rapidssl"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"source":"{{ user `provisionning_dir` }}/../provisioning/ssl/certs/",
|
||||||
|
"destination":"/etc/ssl/certs/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type":"file",
|
||||||
|
"source":"{{ user `provisionning_dir` }}/../provisioning/ssl/private/",
|
||||||
|
"destination":"/etc/ssl/private/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"pause_before": "30s",
|
||||||
|
"playbook_file": "{{ user `playbooks_dir` }}/get_conf_from_zephir.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"zephir_server=zephir.cadoles.com",
|
||||||
|
"zephir_login=pacer",
|
||||||
|
"zephir_password=9+N7c2#vqV",
|
||||||
|
"create_server=non",
|
||||||
|
"code_rne=00004242",
|
||||||
|
"zephir_id=26",
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"playbook_file": "{{ user `infra_playbooks` }}/sso.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "ansible",
|
||||||
|
"pause_before": "10s",
|
||||||
|
"playbook_file": "{{ user `playbooks_dir` }}/instance.yml",
|
||||||
|
"ansible_env_vars": [
|
||||||
|
"VM_NAME={{ user `vm_name` }}",
|
||||||
|
"HTTP_PROXY={{ user `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY={{ user `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy={{ user `http_proxy` }}",
|
||||||
|
"https_proxy={{ user `https_proxy` }}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"post-processors": [
|
||||||
|
{
|
||||||
|
"type": "shell-local",
|
||||||
|
"script": "{{ template_dir }}/../../../../post-processors/compress-qcow2.sh",
|
||||||
|
"execute_command": [
|
||||||
|
"/bin/bash",
|
||||||
|
"-c",
|
||||||
|
"{{.Vars}} {{.Script}} {{ user `image_output_directory` }}/../ {{ user `vm_name` }} {{ user `image_version` }}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,174 @@
|
||||||
|
### Preseed for Ubuntu 18.04
|
||||||
|
# Derived from: https://help.ubuntu.com/lts/installation-guide/example-preseed.txt
|
||||||
|
|
||||||
|
### Compatibility
|
||||||
|
# Tested with the netboot image:
|
||||||
|
# http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso
|
||||||
|
# Might work with the regular image (not tested):
|
||||||
|
# http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04-server-amd64.iso
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
# We recommend to use public key authentication and therefore disabled the root
|
||||||
|
# password. The build-iso.sh script will do all the hard work for you.
|
||||||
|
#
|
||||||
|
# In case you still want to use password authentication, you need to set the
|
||||||
|
# passwd/root-password-crypted variable. See below for further instructions.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
# We recommend to use the build-iso.sh script to build an image with embedded
|
||||||
|
# preseed and other required files. In that case the preseed file gets loaded
|
||||||
|
# automatically and all additional files are available to the installer.
|
||||||
|
#
|
||||||
|
# In case you want to use a vanilla ISO image, please use the following boot
|
||||||
|
# instructions to load the preseed file (press ESC and enter in boot prompt):
|
||||||
|
#
|
||||||
|
# install auto=true priority=critical url=https://raw.githubusercontent.com/core-process/linux-unattended-installation/master/ubuntu/18.04/custom/preseed.cfg
|
||||||
|
#
|
||||||
|
# Note: you will need to adjust the "preseed/late_command" variable to match
|
||||||
|
# your environment in case you do not use the build-iso.sh script.
|
||||||
|
|
||||||
|
|
||||||
|
### Unattended Installation
|
||||||
|
d-i auto-install/enable boolean true
|
||||||
|
d-i debconf/priority select critical
|
||||||
|
|
||||||
|
### Localization
|
||||||
|
d-i debian-installer/locale string fr_FR.UTF-8
|
||||||
|
d-i localechooser/supported-locales multiselect en_US.UTF-8, fr_FR.UTF-8
|
||||||
|
d-i console-setup/ask_detect boolean false
|
||||||
|
d-i keyboard-configuration/xkb-keymap select fr
|
||||||
|
|
||||||
|
### Network configuration
|
||||||
|
d-i netcfg/choose_interface select auto
|
||||||
|
d-i netcfg/hostname string ubt1804
|
||||||
|
d-i netcfg/get_hostname string ubt1804
|
||||||
|
d-i netcfg/get_domain string cadol.es
|
||||||
|
d-i hw-detect/load_firmware boolean true
|
||||||
|
|
||||||
|
### Mirror settings
|
||||||
|
d-i mirror/country string manual
|
||||||
|
d-i mirror/http/hostname string archive.ubuntu.com
|
||||||
|
d-i mirror/http/directory string /ubuntu
|
||||||
|
d-i mirror/http/proxy string
|
||||||
|
|
||||||
|
### Account setup
|
||||||
|
d-i passwd/root-login boolean true
|
||||||
|
d-i passwd/root-password-crypted password $1$41q22ku0$lM57h3xPuGwoiBHD4Neqg.
|
||||||
|
d-i passwd/make-user boolean false
|
||||||
|
|
||||||
|
# The root password is disabled by default. In case you want to use a root
|
||||||
|
# password, please generate a password with the following command
|
||||||
|
# printf "please-change-password" | mkpasswd -s -m sha-512
|
||||||
|
# and update the passwd/root-password-crypted variable accordingly. Furthermore
|
||||||
|
# you need to remove the call to "usermod" below.
|
||||||
|
|
||||||
|
### Normal account setup
|
||||||
|
d-i passwd/user-fullname string Cadoles User
|
||||||
|
d-i passwd/username string cadoles
|
||||||
|
d-i passwd/user-password-crypted password $1$41q22ku0$lM57h3xPuGwoiBHD4Neqg.
|
||||||
|
d-i passwd/user-uid string 1000
|
||||||
|
d-i passwd/user-default-groups string wheel
|
||||||
|
|
||||||
|
### Clock and time zone setup
|
||||||
|
d-i clock-setup/utc boolean true
|
||||||
|
d-i time/zone string Europe/Paris
|
||||||
|
d-i clock-setup/ntp boolean true
|
||||||
|
d-i clock-setup/ntp-server string ntp.ubuntu.com
|
||||||
|
|
||||||
|
### Partitioning
|
||||||
|
d-i preseed/early_command string umount /media || true
|
||||||
|
d-i partman-auto/disk string /dev/vda
|
||||||
|
d-i partman-auto/method string lvm
|
||||||
|
d-i partman-auto-lvm/guided_size string max
|
||||||
|
d-i partman-lvm/device_remove_lvm boolean true
|
||||||
|
d-i partman-lvm/confirm boolean true
|
||||||
|
d-i partman-lvm/confirm_nooverwrite boolean true
|
||||||
|
d-i partman-auto-lvm/new_vg_name string main
|
||||||
|
d-i partman-md/device_remove_md boolean true
|
||||||
|
d-i partman-md/confirm boolean true
|
||||||
|
d-i partman-partitioning/confirm_write_new_label boolean true
|
||||||
|
d-i partman/choose_partition select finish
|
||||||
|
d-i partman/confirm boolean true
|
||||||
|
d-i partman/confirm_nooverwrite boolean true
|
||||||
|
d-i partman-basicmethods/method_only boolean false
|
||||||
|
|
||||||
|
### GPT
|
||||||
|
d-i partman-basicfilesystems/choose_label string gpt
|
||||||
|
d-i partman-basicfilesystems/default_label string gpt
|
||||||
|
d-i partman-partitioning/choose_label string gpt
|
||||||
|
d-i partman-partitioning/default_label string gpt
|
||||||
|
d-i partman/choose_label string gpt
|
||||||
|
d-i partman/default_label string gpt
|
||||||
|
|
||||||
|
### EFI
|
||||||
|
d-i partman-efi/non_efi_system boolean true
|
||||||
|
|
||||||
|
### Grub
|
||||||
|
d-i grub-installer/bootdev string /dev/vda
|
||||||
|
d-i grub-installer/only_debian boolean true
|
||||||
|
d-i grub-installer/with_other_os boolean true
|
||||||
|
|
||||||
|
### Disk layout
|
||||||
|
|
||||||
|
# Use entire disk
|
||||||
|
d-i partman-auto/expert_recipe string \
|
||||||
|
boot-root :: \
|
||||||
|
1 1 1 free \
|
||||||
|
$bios_boot{ } \
|
||||||
|
method{ biosgrub } \
|
||||||
|
. \
|
||||||
|
256 256 256 fat32 \
|
||||||
|
$primary{ } \
|
||||||
|
$iflabel{ gpt } \
|
||||||
|
$reusemethod{ } \
|
||||||
|
method{ efi } format{ } \
|
||||||
|
mountpoint{ /boot/efi } \
|
||||||
|
. \
|
||||||
|
512 512 512 ext4 \
|
||||||
|
$primary{ } \
|
||||||
|
$bootable{ } \
|
||||||
|
method{ format } format{ } \
|
||||||
|
use_filesystem{ } filesystem{ ext4 } \
|
||||||
|
mountpoint{ /boot } \
|
||||||
|
. \
|
||||||
|
1024 102400000 1000000000 ext4 \
|
||||||
|
$lvmok{ } \
|
||||||
|
method{ format } format{ } \
|
||||||
|
use_filesystem{ } filesystem{ ext4 } \
|
||||||
|
mountpoint{ / } \
|
||||||
|
lv_name{ root } \
|
||||||
|
. \
|
||||||
|
200% 200% 200% linux-swap \
|
||||||
|
$lvmok{ } \
|
||||||
|
method{ swap } format{ } \
|
||||||
|
lv_name{ swap } \
|
||||||
|
.
|
||||||
|
|
||||||
|
### Base system installation
|
||||||
|
d-i base-installer/install-recommends boolean true
|
||||||
|
d-i base-installer/kernel/image string linux-generic
|
||||||
|
|
||||||
|
### Apt setup
|
||||||
|
d-i apt-setup/restricted boolean true
|
||||||
|
d-i apt-setup/universe boolean true
|
||||||
|
d-i apt-setup/backports boolean true
|
||||||
|
d-i apt-setup/use_mirror boolean false
|
||||||
|
d-i apt-setup/services-select multiselect security, updates
|
||||||
|
d-i apt-setup/security_host string security.ubuntu.com
|
||||||
|
d-i apt-setup/security_path string /ubuntu
|
||||||
|
|
||||||
|
### Package selection
|
||||||
|
d-i tasksel/first multiselect none
|
||||||
|
d-i pkgsel/include string openssh-server python
|
||||||
|
d-i pkgsel/upgrade select full-upgrade
|
||||||
|
d-i pkgsel/update-policy select unattended-upgrades
|
||||||
|
|
||||||
|
### Finishing up the installation
|
||||||
|
d-i preseed/late_command string \
|
||||||
|
in-target sh -c "sed -i '/PermitRootLogin/c PermitRootLogin yes' /etc/ssh/sshd_config"; \
|
||||||
|
in-target sh -c 'echo "IPv4: \\\4" >> /etc/issue && echo "IPv6: \\\6" >> /etc/issue && echo "" >> /etc/issue';
|
||||||
|
d-i debian-installer/splash boolean false
|
||||||
|
d-i cdrom-detect/eject boolean true
|
||||||
|
|
||||||
|
### Shutdown machine
|
||||||
|
d-i finish-install/reboot_in_progress note
|
|
@ -0,0 +1,70 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"vm_name": "ubuntu-18.04",
|
||||||
|
"packer_images_output_dir": "{{ template_dir }}/../../../images/ubuntu/18.04",
|
||||||
|
"cpus": "2",
|
||||||
|
"memory": "4096",
|
||||||
|
"ubuntu_codename": "bionic",
|
||||||
|
"ubuntu_mirror": "http://archive.ubuntu.com/ubuntu/dists/",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"preseed_file_name": "preseed-minimal.cfg",
|
||||||
|
"disk_size": "10240",
|
||||||
|
"headless": "true"
|
||||||
|
},
|
||||||
|
|
||||||
|
"builders":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"vm_name": "{{ user `vm_name` }}.img",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_checksum": "file:{{ user `ubuntu_mirror` }}{{ user `ubuntu_codename` }}-updates/main/installer-amd64/current/images/SHA256SUMS",
|
||||||
|
"iso_urls": [ "{{ user `ubuntu_mirror` }}{{ user `ubuntu_codename` }}-updates/main/installer-amd64/current/images/netboot/mini.iso" ],
|
||||||
|
"ssh_username": "{{ user `ssh_username` }}",
|
||||||
|
"ssh_password": "{{ user `ssh_password` }}",
|
||||||
|
"ssh_wait_timeout": "60m",
|
||||||
|
"headless": "{{ user `headless` }}",
|
||||||
|
"output_directory": "{{ template_dir }}/../../../images/ubuntu/18.04",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"cpus": "{{ user `cpus` }}",
|
||||||
|
"memory": "{{user `memory`}}",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"boot_command":
|
||||||
|
[
|
||||||
|
"<tab>",
|
||||||
|
"url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{ user `preseed_file_name` }} ",
|
||||||
|
"auto=true ",
|
||||||
|
"language=fr ",
|
||||||
|
"country=FR ",
|
||||||
|
"locale=fr_FR.UTF-8 ",
|
||||||
|
"method=fr ",
|
||||||
|
"net.ifnames=0 ",
|
||||||
|
"hostname={{user `vm_name` }} ",
|
||||||
|
"<enter>"
|
||||||
|
],
|
||||||
|
"disk_size": "{{ user `disk_size` }}",
|
||||||
|
"disk_additional_size": [ "10G", "20G", "30G", "40G", "50G", "60G" ],
|
||||||
|
"http_directory": "{{template_dir}}/http"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"scripts": [
|
||||||
|
"{{ template_dir }}/scripts/provision-minimal.sh"
|
||||||
|
],
|
||||||
|
"environment_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
set -xeo pipefail
|
||||||
|
|
||||||
|
# For SHASUM
|
||||||
|
apt-get -y install perl ifupdown
|
||||||
|
|
||||||
|
# Download OpenNebula context package
|
||||||
|
ONE_CONTEXT_VERSION=5.8.0
|
||||||
|
ONE_CONTEXT_BUILD_SUFFIX=-1
|
||||||
|
ONE_CONTEXT_SHASUM=cfcc8aa2e51396935e8d2a507f996838201515b5
|
||||||
|
ONE_CONTEXT_URL="https://github.com/OpenNebula/addon-context-linux/releases/download/v${ONE_CONTEXT_VERSION}/one-context_${ONE_CONTEXT_VERSION}${ONE_CONTEXT_BUILD_SUFFIX}.deb"
|
||||||
|
ONE_CONTEXT_PACKAGE_DEST=/tmp/one-context.deb
|
||||||
|
|
||||||
|
wget -O- "${ONE_CONTEXT_URL}" > "${ONE_CONTEXT_PACKAGE_DEST}"
|
||||||
|
echo "${ONE_CONTEXT_SHASUM} ${ONE_CONTEXT_PACKAGE_DEST}" | shasum -c
|
||||||
|
|
||||||
|
# Purge cloud-init
|
||||||
|
apt-get purge -y cloud-init perl
|
||||||
|
|
||||||
|
# Install onecontext
|
||||||
|
dpkg -i "${ONE_CONTEXT_PACKAGE_DEST}" || apt-get install -fy
|
||||||
|
|
||||||
|
# Update hostname
|
||||||
|
hostnamectl set-hostname "${VM_NAME}"
|
||||||
|
|
||||||
|
# Disable root login with password
|
||||||
|
# sed -i 's/^PermitRootLogin.*$/PermitRootLogin without-password/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
# Run dhclient on one-context service failure
|
||||||
|
mkdir -p /etc/systemd/system/one-context.service.d
|
||||||
|
cat > /etc/systemd/system/one-context.service.d/dhclient-on-fail.conf <<EOF
|
||||||
|
[Unit]
|
||||||
|
OnFailure=one-dhclient.service
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /etc/systemd/system/one-dhclient.service <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Execute dhclient
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/sbin/dhclient
|
||||||
|
EOF
|
||||||
|
chmod 664 /etc/systemd/system/one-dhclient.service
|
||||||
|
|
||||||
|
# Disable auto-upgrade
|
||||||
|
systemctl disable unattended-upgrades
|
||||||
|
systemctl disable apt-daily
|
||||||
|
systemctl disable apt-daily.timer
|
||||||
|
systemctl disable apt-daily-upgrade
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f "${ONE_CONTEXT_PACKAGE_DEST}"
|
||||||
|
apt-get -y clean
|
||||||
|
|
||||||
|
# Force sync
|
||||||
|
sync
|
|
@ -0,0 +1,174 @@
|
||||||
|
### Preseed for Ubuntu 18.04
|
||||||
|
# Derived from: https://help.ubuntu.com/lts/installation-guide/example-preseed.txt
|
||||||
|
|
||||||
|
### Compatibility
|
||||||
|
# Tested with the netboot image:
|
||||||
|
# http://archive.ubuntu.com/ubuntu/dists/bionic/main/installer-amd64/current/images/netboot/mini.iso
|
||||||
|
# Might work with the regular image (not tested):
|
||||||
|
# http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04-server-amd64.iso
|
||||||
|
|
||||||
|
### Authentication
|
||||||
|
# We recommend to use public key authentication and therefore disabled the root
|
||||||
|
# password. The build-iso.sh script will do all the hard work for you.
|
||||||
|
#
|
||||||
|
# In case you still want to use password authentication, you need to set the
|
||||||
|
# passwd/root-password-crypted variable. See below for further instructions.
|
||||||
|
|
||||||
|
### Usage
|
||||||
|
# We recommend to use the build-iso.sh script to build an image with embedded
|
||||||
|
# preseed and other required files. In that case the preseed file gets loaded
|
||||||
|
# automatically and all additional files are available to the installer.
|
||||||
|
#
|
||||||
|
# In case you want to use a vanilla ISO image, please use the following boot
|
||||||
|
# instructions to load the preseed file (press ESC and enter in boot prompt):
|
||||||
|
#
|
||||||
|
# install auto=true priority=critical url=https://raw.githubusercontent.com/core-process/linux-unattended-installation/master/ubuntu/18.04/custom/preseed.cfg
|
||||||
|
#
|
||||||
|
# Note: you will need to adjust the "preseed/late_command" variable to match
|
||||||
|
# your environment in case you do not use the build-iso.sh script.
|
||||||
|
|
||||||
|
|
||||||
|
### Unattended Installation
|
||||||
|
d-i auto-install/enable boolean true
|
||||||
|
d-i debconf/priority select critical
|
||||||
|
|
||||||
|
### Localization
|
||||||
|
d-i debian-installer/locale string fr_FR.UTF-8
|
||||||
|
d-i localechooser/supported-locales multiselect en_US.UTF-8, fr_FR.UTF-8
|
||||||
|
d-i console-setup/ask_detect boolean false
|
||||||
|
d-i keyboard-configuration/xkb-keymap select fr
|
||||||
|
|
||||||
|
### Network configuration
|
||||||
|
d-i netcfg/choose_interface select auto
|
||||||
|
d-i netcfg/hostname string ubt2004
|
||||||
|
d-i netcfg/get_hostname string ubt2004
|
||||||
|
d-i netcfg/get_domain string cadol.es
|
||||||
|
d-i hw-detect/load_firmware boolean true
|
||||||
|
|
||||||
|
### Mirror settings
|
||||||
|
d-i mirror/country string manual
|
||||||
|
d-i mirror/http/hostname string archive.ubuntu.com
|
||||||
|
d-i mirror/http/directory string /ubuntu
|
||||||
|
d-i mirror/http/proxy string
|
||||||
|
|
||||||
|
### Account setup
|
||||||
|
d-i passwd/root-login boolean true
|
||||||
|
d-i passwd/root-password-crypted password $1$41q22ku0$lM57h3xPuGwoiBHD4Neqg.
|
||||||
|
d-i passwd/make-user boolean false
|
||||||
|
|
||||||
|
# The root password is disabled by default. In case you want to use a root
|
||||||
|
# password, please generate a password with the following command
|
||||||
|
# printf "please-change-password" | mkpasswd -s -m sha-512
|
||||||
|
# and update the passwd/root-password-crypted variable accordingly. Furthermore
|
||||||
|
# you need to remove the call to "usermod" below.
|
||||||
|
|
||||||
|
### Normal account setup
|
||||||
|
d-i passwd/user-fullname string Cadoles User
|
||||||
|
d-i passwd/username string cadoles
|
||||||
|
d-i passwd/user-password-crypted password $1$41q22ku0$lM57h3xPuGwoiBHD4Neqg.
|
||||||
|
d-i passwd/user-uid string 1000
|
||||||
|
d-i passwd/user-default-groups string wheel
|
||||||
|
|
||||||
|
### Clock and time zone setup
|
||||||
|
d-i clock-setup/utc boolean true
|
||||||
|
d-i time/zone string Europe/Paris
|
||||||
|
d-i clock-setup/ntp boolean true
|
||||||
|
d-i clock-setup/ntp-server string ntp.ubuntu.com
|
||||||
|
|
||||||
|
### Partitioning
|
||||||
|
d-i preseed/early_command string umount /media || true
|
||||||
|
d-i partman-auto/disk string /dev/vda
|
||||||
|
d-i partman-auto/method string lvm
|
||||||
|
d-i partman-auto-lvm/guided_size string max
|
||||||
|
d-i partman-lvm/device_remove_lvm boolean true
|
||||||
|
d-i partman-lvm/confirm boolean true
|
||||||
|
d-i partman-lvm/confirm_nooverwrite boolean true
|
||||||
|
d-i partman-auto-lvm/new_vg_name string main
|
||||||
|
d-i partman-md/device_remove_md boolean true
|
||||||
|
d-i partman-md/confirm boolean true
|
||||||
|
d-i partman-partitioning/confirm_write_new_label boolean true
|
||||||
|
d-i partman/choose_partition select finish
|
||||||
|
d-i partman/confirm boolean true
|
||||||
|
d-i partman/confirm_nooverwrite boolean true
|
||||||
|
d-i partman-basicmethods/method_only boolean false
|
||||||
|
|
||||||
|
### GPT
|
||||||
|
d-i partman-basicfilesystems/choose_label string gpt
|
||||||
|
d-i partman-basicfilesystems/default_label string gpt
|
||||||
|
d-i partman-partitioning/choose_label string gpt
|
||||||
|
d-i partman-partitioning/default_label string gpt
|
||||||
|
d-i partman/choose_label string gpt
|
||||||
|
d-i partman/default_label string gpt
|
||||||
|
|
||||||
|
### EFI
|
||||||
|
d-i partman-efi/non_efi_system boolean true
|
||||||
|
|
||||||
|
### Grub
|
||||||
|
d-i grub-installer/bootdev string /dev/vda
|
||||||
|
d-i grub-installer/only_debian boolean true
|
||||||
|
d-i grub-installer/with_other_os boolean true
|
||||||
|
|
||||||
|
### Disk layout
|
||||||
|
|
||||||
|
# Use entire disk
|
||||||
|
d-i partman-auto/expert_recipe string \
|
||||||
|
boot-root :: \
|
||||||
|
1 1 1 free \
|
||||||
|
$bios_boot{ } \
|
||||||
|
method{ biosgrub } \
|
||||||
|
. \
|
||||||
|
256 256 256 fat32 \
|
||||||
|
$primary{ } \
|
||||||
|
$iflabel{ gpt } \
|
||||||
|
$reusemethod{ } \
|
||||||
|
method{ efi } format{ } \
|
||||||
|
mountpoint{ /boot/efi } \
|
||||||
|
. \
|
||||||
|
512 512 512 ext4 \
|
||||||
|
$primary{ } \
|
||||||
|
$bootable{ } \
|
||||||
|
method{ format } format{ } \
|
||||||
|
use_filesystem{ } filesystem{ ext4 } \
|
||||||
|
mountpoint{ /boot } \
|
||||||
|
. \
|
||||||
|
1024 102400000 1000000000 ext4 \
|
||||||
|
$lvmok{ } \
|
||||||
|
method{ format } format{ } \
|
||||||
|
use_filesystem{ } filesystem{ ext4 } \
|
||||||
|
mountpoint{ / } \
|
||||||
|
lv_name{ root } \
|
||||||
|
. \
|
||||||
|
200% 200% 200% linux-swap \
|
||||||
|
$lvmok{ } \
|
||||||
|
method{ swap } format{ } \
|
||||||
|
lv_name{ swap } \
|
||||||
|
.
|
||||||
|
|
||||||
|
### Base system installation
|
||||||
|
d-i base-installer/install-recommends boolean true
|
||||||
|
d-i base-installer/kernel/image string linux-generic
|
||||||
|
|
||||||
|
### Apt setup
|
||||||
|
d-i apt-setup/restricted boolean true
|
||||||
|
d-i apt-setup/universe boolean true
|
||||||
|
d-i apt-setup/backports boolean true
|
||||||
|
d-i apt-setup/use_mirror boolean false
|
||||||
|
d-i apt-setup/services-select multiselect security, updates
|
||||||
|
d-i apt-setup/security_host string security.ubuntu.com
|
||||||
|
d-i apt-setup/security_path string /ubuntu
|
||||||
|
|
||||||
|
### Package selection
|
||||||
|
d-i tasksel/first multiselect none
|
||||||
|
d-i pkgsel/include string openssh-server python
|
||||||
|
d-i pkgsel/upgrade select full-upgrade
|
||||||
|
d-i pkgsel/update-policy select unattended-upgrades
|
||||||
|
|
||||||
|
### Finishing up the installation
|
||||||
|
d-i preseed/late_command string \
|
||||||
|
in-target sh -c "sed -i '/PermitRootLogin/c PermitRootLogin yes' /etc/ssh/sshd_config"; \
|
||||||
|
in-target sh -c 'echo "IPv4: \\\4" >> /etc/issue && echo "IPv6: \\\6" >> /etc/issue && echo "" >> /etc/issue';
|
||||||
|
d-i debian-installer/splash boolean false
|
||||||
|
d-i cdrom-detect/eject boolean true
|
||||||
|
|
||||||
|
### Shutdown machine
|
||||||
|
d-i finish-install/reboot_in_progress note
|
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"variables": {
|
||||||
|
"HTTP_PROXY": "{{ env `HTTP_PROXY` }}",
|
||||||
|
"HTTPS_PROXY": "{{ env `HTTPS_PROXY` }}",
|
||||||
|
"http_proxy": "{{ env `http_proxy` }}",
|
||||||
|
"https_proxy": "{{ env `https_proxy` }}",
|
||||||
|
"packer_images_output_dir": "{{ template_dir }}/../../../images/ubuntu/20.04",
|
||||||
|
"provisionning_dir": "{{ template_dir }}/../../../provisioning",
|
||||||
|
"cpus": "2",
|
||||||
|
"memory": "4096",
|
||||||
|
"ubuntu_codename": "focal",
|
||||||
|
"ubuntu_version": "20.04",
|
||||||
|
"ubuntu_mirror": "http://archive.ubuntu.com/ubuntu/dists/",
|
||||||
|
"ssh_username": "root",
|
||||||
|
"ssh_password": "cadoles",
|
||||||
|
"preseed_file_name": "preseed-minimal.cfg",
|
||||||
|
"disk_size": "10240",
|
||||||
|
"headless": "true",
|
||||||
|
"vm_name": "ubuntu-{{ user `ubuntu_version` }}"
|
||||||
|
},
|
||||||
|
|
||||||
|
"builders":
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "{{ user `vm_name` }}",
|
||||||
|
"vm_name": "{{ user `vm_name` }}.img",
|
||||||
|
"type": "qemu",
|
||||||
|
"iso_checksum": "file:{{ user `ubuntu_mirror` }}{{ user `ubuntu_codename` }}-updates/main/installer-amd64/current/legacy-images/SHA256SUMS",
|
||||||
|
"iso_urls": [ "{{ user `ubuntu_mirror` }}{{ user `ubuntu_codename` }}-updates/main/installer-amd64/current/legacy-images/netboot/mini.iso" ],
|
||||||
|
"ssh_username": "{{ user `ssh_username` }}",
|
||||||
|
"ssh_password": "{{ user `ssh_password` }}",
|
||||||
|
"ssh_wait_timeout": "60m",
|
||||||
|
"headless": "{{ user `headless` }}",
|
||||||
|
"output_directory": "{{ template_dir }}/../../../images/ubuntu/20.04",
|
||||||
|
"accelerator": "kvm",
|
||||||
|
"cpus": "{{ user `cpus` }}",
|
||||||
|
"memory": "{{user `memory`}}",
|
||||||
|
"boot_wait": "5s",
|
||||||
|
"boot_command":
|
||||||
|
[
|
||||||
|
"<tab>",
|
||||||
|
"url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{ user `preseed_file_name` }} ",
|
||||||
|
"auto=true ",
|
||||||
|
"language=fr ",
|
||||||
|
"country=FR ",
|
||||||
|
"locale=fr_FR.UTF-8 ",
|
||||||
|
"method=fr ",
|
||||||
|
"net.ifnames=0 ",
|
||||||
|
"hostname={{user `vm_name` }} ",
|
||||||
|
"<enter>"
|
||||||
|
],
|
||||||
|
"disk_size": "{{ user `disk_size` }}",
|
||||||
|
"disk_additional_size": [ "10G", "20G", "30G", "40G", "50G", "60G" ],
|
||||||
|
"http_directory": "{{template_dir}}/http"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "shell",
|
||||||
|
"scripts": [
|
||||||
|
"{{ user `provisionning_dir` }}/ubuntu/{{ user `ubuntu_version` }}/provision-minimal.sh"
|
||||||
|
],
|
||||||
|
"environment_vars": [
|
||||||
|
"VM_NAME={{user `vm_name`}}",
|
||||||
|
"HTTP_PROXY={{user `HTTP_PROXY`}}",
|
||||||
|
"HTTPS_PROXY={{user `HTTPS_PROXY`}}",
|
||||||
|
"http_proxy={{user `http_proxy`}}",
|
||||||
|
"https_proxy={{user `https_proxy`}}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
set -xeo pipefail
|
||||||
|
|
||||||
|
# For SHASUM
|
||||||
|
apt-get -y install perl ifupdown
|
||||||
|
|
||||||
|
# Download OpenNebula context package
|
||||||
|
ONE_CONTEXT_VERSION=5.8.0
|
||||||
|
ONE_CONTEXT_BUILD_SUFFIX=-1
|
||||||
|
ONE_CONTEXT_SHASUM=cfcc8aa2e51396935e8d2a507f996838201515b5
|
||||||
|
ONE_CONTEXT_URL="https://github.com/OpenNebula/addon-context-linux/releases/download/v${ONE_CONTEXT_VERSION}/one-context_${ONE_CONTEXT_VERSION}${ONE_CONTEXT_BUILD_SUFFIX}.deb"
|
||||||
|
ONE_CONTEXT_PACKAGE_DEST=/tmp/one-context.deb
|
||||||
|
|
||||||
|
wget -O- "${ONE_CONTEXT_URL}" > "${ONE_CONTEXT_PACKAGE_DEST}"
|
||||||
|
echo "${ONE_CONTEXT_SHASUM} ${ONE_CONTEXT_PACKAGE_DEST}" | shasum -c
|
||||||
|
|
||||||
|
# Purge cloud-init
|
||||||
|
apt-get purge -y cloud-init perl
|
||||||
|
|
||||||
|
# Install onecontext
|
||||||
|
dpkg -i "${ONE_CONTEXT_PACKAGE_DEST}" || apt-get install -fy
|
||||||
|
|
||||||
|
# Update hostname
|
||||||
|
hostnamectl set-hostname "${VM_NAME}"
|
||||||
|
|
||||||
|
# Disable root login with password
|
||||||
|
# sed -i 's/^PermitRootLogin.*$/PermitRootLogin without-password/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
# Run dhclient on one-context service failure
|
||||||
|
mkdir -p /etc/systemd/system/one-context.service.d
|
||||||
|
cat > /etc/systemd/system/one-context.service.d/dhclient-on-fail.conf <<EOF
|
||||||
|
[Unit]
|
||||||
|
OnFailure=one-dhclient.service
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > /etc/systemd/system/one-dhclient.service <<EOF
|
||||||
|
[Unit]
|
||||||
|
Description=Execute dhclient
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/sbin/dhclient
|
||||||
|
EOF
|
||||||
|
chmod 664 /etc/systemd/system/one-dhclient.service
|
||||||
|
|
||||||
|
# Disable auto-upgrade
|
||||||
|
systemctl disable unattended-upgrades
|
||||||
|
systemctl disable apt-daily
|
||||||
|
systemctl disable apt-daily.timer
|
||||||
|
systemctl disable apt-daily-upgrade
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -f "${ONE_CONTEXT_PACKAGE_DEST}"
|
||||||
|
apt-get -y clean
|
||||||
|
|
||||||
|
# Force sync
|
||||||
|
sync
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
PACKER_TEMPLATE=$1
|
||||||
|
shift
|
||||||
|
|
||||||
|
if [ -f '.env' ]; then
|
||||||
|
set -a
|
||||||
|
source .env
|
||||||
|
set +a
|
||||||
|
fi
|
||||||
|
|
||||||
|
export PACKER_KEY_INTERVAL=10ms
|
||||||
|
export PATH="$PATH:.bin"
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
cat<<EOF
|
||||||
|
Usage: $0 </chemin/vers/template/packer>
|
||||||
|
Construit l'image correspondante au template Packer donné
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -z "${PACKER_TEMPLATE}" ] && usage
|
||||||
|
|
||||||
|
# Validate template
|
||||||
|
packer validate ${PACKER_TEMPLATE}
|
||||||
|
[[ $? -ne 0 ]] && exit 123
|
||||||
|
|
||||||
|
packer build $@ ${PACKER_TEMPLATE}
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||||
|
|
||||||
|
rm -rf "${DIR}/../images"
|
||||||
|
rm -rf "${DIR}/../.bin"
|
||||||
|
rm -rf "${DIR}/../packer_cache"
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#set -eo pipefail
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||||
|
|
||||||
|
sparsify=$(which virt-sparsify)
|
||||||
|
if [ $? -ne 0 ]
|
||||||
|
then
|
||||||
|
echo "!!!"
|
||||||
|
echo "!!! Warning : virt-sparsify is not present, you may encounter build issues with cadoles recipes !"
|
||||||
|
echo "!!! Please install libguestfs if you want to build cadoles production images"
|
||||||
|
echo "!!!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install a local copy of packer
|
||||||
|
PACKER_VERSION=1.6.6
|
||||||
|
PACKER_ARCH=amd64
|
||||||
|
#PACKER_ARCHIVE_SHA256SUM=30da8dab9c526a6d15b037e2234f6f12cf3accfad77eb2c130738ec1a54cab6d
|
||||||
|
#PACKER_ARCHIVE_SHA256SUM=a678c995cb8dc232db3353881723793da5acc15857a807d96c52e96e671309d9
|
||||||
|
PACKER_ARCHIVE_SHA256SUM=721d119fd70e38d6f2b4ccd8a39daf6b4d36bf5f7640036acafcaaa967b00c3b
|
||||||
|
|
||||||
|
wget -O- https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_${PACKER_ARCH}.zip > packer.zip
|
||||||
|
echo "${PACKER_ARCHIVE_SHA256SUM} packer.zip" | sha256sum -c
|
||||||
|
|
||||||
|
mkdir -p "${DIR}/../.bin"
|
||||||
|
unzip -o -d "${DIR}/../.bin" packer.zip
|
||||||
|
rm -f packer.zip
|
||||||
|
|
||||||
|
# Cadoles Packer plugins
|
||||||
|
|
||||||
|
# OpenNebula - Post-Processor Image Template
|
||||||
|
PLUGIN_ARCHIVE=https://forge.cadoles.com/Cadoles/packer-opennebula/releases/download/4fa5cbc782/packer-post-processor-opennebula-image-template-rev.4fa5cbc-linux-amd64.tar.gz
|
||||||
|
wget -O- "$PLUGIN_ARCHIVE" > plugin.tar.gz
|
||||||
|
tar -C "$DIR/../.bin" --strip=1 --wildcards -xzf plugin.tar.gz --wildcards packer-*/packer-post-processor-opennebula-image-template
|
||||||
|
rm -f plugin.tar.gz
|
|
@ -0,0 +1,131 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#
|
||||||
|
# Publish builed images to OpenNebula
|
||||||
|
# Based on the work of "Julien Marchetti" from here : https://dev-eole.ac-dijon.fr/projects/packer/repository
|
||||||
|
#
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
function help ()
|
||||||
|
{
|
||||||
|
|
||||||
|
cat <<EO
|
||||||
|
Usage : ${0} [options]
|
||||||
|
|
||||||
|
Add images to OpenNebula (market or datastore) using XMLRPC.
|
||||||
|
Options:
|
||||||
|
|
||||||
|
EO
|
||||||
|
|
||||||
|
cat <<EO | column -s\& -t
|
||||||
|
-h & print help message
|
||||||
|
-u [user] & user with correct privileges to push images into OpenNebula or OpenNebula market
|
||||||
|
-U [url] & URL du service XMLRPC OpenNebula (http://127.0.0.1:2633/RPC2)
|
||||||
|
-n [name] & Name for the image
|
||||||
|
-p [path] & Path of the image to upload
|
||||||
|
-t [type] & Image type (OS,CDROM)
|
||||||
|
-d [id|name] & Datastore id or name
|
||||||
|
-m [id|name] & Market id or name
|
||||||
|
-M [mode] & Tell the script what to do (datastore,market,all)
|
||||||
|
datastore: publish only in the datastore
|
||||||
|
market: publish only in the market
|
||||||
|
all: publish in datastore and in market
|
||||||
|
EO
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function errorMsg(){
|
||||||
|
echo
|
||||||
|
echo "ERROR: $1"
|
||||||
|
echo
|
||||||
|
[[ -n ${3} ]] && help
|
||||||
|
exit $2
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Publish an image to the datastore
|
||||||
|
#
|
||||||
|
function datastorePush()
|
||||||
|
{
|
||||||
|
[[ -z ${datastore} ]] && errorMsg "You must specify a datastore id" 3 "help"
|
||||||
|
|
||||||
|
local cmd="oneimage"
|
||||||
|
local act="create"
|
||||||
|
local opt="--name ${name}"
|
||||||
|
opt="${opt} --path ${path}"
|
||||||
|
opt="${opt} --type ${itype}"
|
||||||
|
[[ -n ${user} ]] && opt="${opt} --user '${user}'"
|
||||||
|
opt="${opt} --driver ${driver}"
|
||||||
|
opt="${opt} --prefix ${prefix}"
|
||||||
|
opt="${opt} --endpoint ${url}"
|
||||||
|
opt="${opt} -d ${datastore}"
|
||||||
|
opt="${opt} -v"
|
||||||
|
|
||||||
|
${cmd} ${act} ${opt} --description "${desc}"
|
||||||
|
return ${?}
|
||||||
|
}
|
||||||
|
|
||||||
|
function marketPush()
|
||||||
|
{
|
||||||
|
[[ -z ${datastore} ]] && errorMsg "You must specify a datastore id" 3 "help"
|
||||||
|
[[ -z ${market} ]] && errorMsg "You must specify a market id" 3 "help"
|
||||||
|
|
||||||
|
ENDING=${1}
|
||||||
|
|
||||||
|
cmd="onemarketapp"
|
||||||
|
action="create"
|
||||||
|
file=$(mktemp)
|
||||||
|
|
||||||
|
datastorePush
|
||||||
|
|
||||||
|
echo "TEMPLATE" >> ${file}
|
||||||
|
echo ${cmd} ${action} ${file}
|
||||||
|
rm ${file}
|
||||||
|
|
||||||
|
if [[ ${ENDING} == "CLEAN" ]]
|
||||||
|
then
|
||||||
|
echo "MUST CLEAN IMAGE FROM DATASTORE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
[ $# -eq 0 ] && help && exit 1
|
||||||
|
while getopts ":hU:u:n:D:p:t:P:d:m:M:" opt; do
|
||||||
|
case $opt in
|
||||||
|
U) url="${OPTARG}" >&2 ;;
|
||||||
|
u) user="${OPTARG}" >&2 ;;
|
||||||
|
n) name="${OPTARG}" >&2 ;;
|
||||||
|
D) desc="${OPTARG}" >&2 ;;
|
||||||
|
p) path="${OPTARG}" >&2 ;;
|
||||||
|
t) itype="${OPTARG}" >&2 ;;
|
||||||
|
P) prefix="${OPTARG}" >&2 ;;
|
||||||
|
d) datastore="${OPTARG}" >&2 ;;
|
||||||
|
m) market="${OPTARG}" >&2 ;;
|
||||||
|
M) mode="${OPTARG}" >&2 ;;
|
||||||
|
\?)
|
||||||
|
echo "Invalid option : -'${OPTARG}'" >&2
|
||||||
|
help
|
||||||
|
;;
|
||||||
|
h) help ; exit >&2 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
[[ -z ${mode} ]] && errorMsg "Missing option -M" 2 "help"
|
||||||
|
[[ -z ${path} ]] && errorMsg "Missing option -p" 2 "help"
|
||||||
|
[[ -z ${name} ]] && name=$(basename ${path})
|
||||||
|
[[ -z ${desc} ]] && desc="Image ${name} ..."
|
||||||
|
[[ -z ${itype} ]] && itype="OS"
|
||||||
|
[[ -z ${prefix} ]] && prefix="vd"
|
||||||
|
[[ -z ${driver} ]] && driver="qcow2"
|
||||||
|
[[ -z ${url} ]] && url="http://127.0.0.1:2633/XMLRPC2"
|
||||||
|
|
||||||
|
case ${mode} in
|
||||||
|
all)
|
||||||
|
marketPush "KEEP"
|
||||||
|
;;
|
||||||
|
datastore) datastorePush ;;
|
||||||
|
market)
|
||||||
|
marketPush "CLEAN" ;;
|
||||||
|
esac
|
|
@ -0,0 +1,55 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
|
||||||
|
ORIG_DISK_IMAGE=$1
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
cat<<EOF
|
||||||
|
Usage: $0 </chemin/vers/image_disque>
|
||||||
|
Éxecute l'image disque donnée avec Qemu
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function find_available_port {
|
||||||
|
read lower_port upper_port < /proc/sys/net/ipv4/ip_local_port_range
|
||||||
|
while :; do
|
||||||
|
for (( port = lower_port ; port <= upper_port ; port++ )); do
|
||||||
|
(echo > /dev/tcp/0.0.0.0/$port) 2>/dev/null >/dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo $port
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
[ -z "$ORIG_DISK_IMAGE" ] && usage
|
||||||
|
|
||||||
|
DISK_IMAGE_DIR="$DIR/../.run/$(dirname $ORIG_DISK_IMAGE)"
|
||||||
|
ORIG_DISK_IMAGE=$(readlink -f "$ORIG_DISK_IMAGE")
|
||||||
|
DISK_IMAGE_NAME=$(date -r "$ORIG_DISK_IMAGE" | shasum - | cut -f1 -d ' ').img
|
||||||
|
DISK_IMAGE="$DISK_IMAGE_DIR/$DISK_IMAGE_NAME"
|
||||||
|
|
||||||
|
if [ -f "$DISK_IMAGE" ]; then
|
||||||
|
echo "Using existing qcow2 image '$DISK_IMAGE'..."
|
||||||
|
else
|
||||||
|
mkdir -p "$(dirname $DISK_IMAGE)"
|
||||||
|
rm -f "$DISK_IMAGE_DIR"/*.img
|
||||||
|
cd "$(dirname $DISK_IMAGE)"
|
||||||
|
echo "Generating qcow2 image '$DISK_IMAGE'..."
|
||||||
|
qemu-img create -f qcow2 -b "$ORIG_DISK_IMAGE" "$(basename $DISK_IMAGE)"
|
||||||
|
cd -
|
||||||
|
fi
|
||||||
|
|
||||||
|
SSH_PORT=$(find_available_port)
|
||||||
|
echo "Starting VM... SSH will be available on '127.0.0.1:${SSH_PORT}'"
|
||||||
|
|
||||||
|
qemu-system-x86_64 -boot once=d \
|
||||||
|
-device virtio-net,netdev=user.0 \
|
||||||
|
-m 1024M -machine type=pc,accel=kvm \
|
||||||
|
-display sdl \
|
||||||
|
-hda "${DISK_IMAGE}" \
|
||||||
|
-netdev user,id=user.0,hostfwd=tcp::${SSH_PORT}-:22
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Images Alpine
|
||||||
|
ALPINE_DEPS=images/alpine/3.10/alpine-virt/alpine-virt-3.10.img images/alpine/3.12/alpine-virt/alpine-virt-3.12.img
|
||||||
|
|
||||||
|
build: alpine
|
||||||
|
deploy: deploy-alpine
|
||||||
|
|
||||||
|
alpine: $(ALPINE_DEPS)
|
||||||
|
deploy-alpine: deploy-alpine-virt
|
||||||
|
deploy-alpine-virt: deploy-alpine-virt-3.10 deploy-alpine-virt-3.12
|
||||||
|
|
||||||
|
images/alpine/3.10/alpine-virt/alpine-virt-3.10.img:
|
||||||
|
rm -rf images/alpine/3.10/alpine-virt
|
||||||
|
script/build recipes/alpine/3.10/virt.json
|
||||||
|
|
||||||
|
images/alpine/3.12/alpine-virt/alpine-virt-3.12.img:
|
||||||
|
rm -rf images/alpine/3.12/alpine-virt
|
||||||
|
script/build recipes/alpine/3.12/virt.json
|
||||||
|
|
||||||
|
deploy-alpine-virt-3.10:
|
||||||
|
IMAGE_NAME=alpine-virt-3.10 \
|
||||||
|
IMAGE_HTTP_PATH=alpine/3.10/alpine-virt/alpine-virt-3.10.img \
|
||||||
|
script/build recipes/deploy.json
|
||||||
|
|
||||||
|
deploy-alpine-virt-3.12: images/alpine/3.12/alpine-virt/alpine-virt-3.12.img
|
||||||
|
IMAGE_NAME=alpine-virt-3.12 \
|
||||||
|
IMAGE_HTTP_PATH=alpine/3.12/alpine-virt/alpine-virt-3.12.img \
|
||||||
|
script/build recipes/deploy.json
|
|
@ -0,0 +1,54 @@
|
||||||
|
# Images EOLE 2.7.2
|
||||||
|
EOLE_2.7.2_DEPS=images/eole/2.7.2/eolebase/eolebase-2.7.2.img
|
||||||
|
AMON_2.7.2_DEPS=images/eole/2.7.2/amon/amon-2.7.2.img
|
||||||
|
SETH_2.7.2_DEPS=images/eole/2.7.2/seth/seth-2.7.2.img
|
||||||
|
MINIO_2.7.2_DEPS=images/eole/2.7.2/minio/minio-2.7.2.img
|
||||||
|
LEMON_2.7.2_DEPS=images/eole/2.7.2/lemonldap/lemonldap-2.7.2.img
|
||||||
|
TENJIN_2.7.2_DEPS=images/eole/2.7.2/tenjin/tenjin-2.7.2.img
|
||||||
|
ZEPHIR_2.7.2_DEPS=images/eole/2.7.2/zephir/zephir-2.7.2.img
|
||||||
|
UBUNTU=images/ubuntu/18.04/ubuntu-18.04.img
|
||||||
|
EOLEBASE272=images/eole/2.7.2/eolebase/eolebase-2.7.2.img
|
||||||
|
|
||||||
|
build: eole-2.7.2
|
||||||
|
|
||||||
|
eole-2.7.2: $(EOLE_2.7.2_DEPS)
|
||||||
|
|
||||||
|
amon-2.7.2: $(AMON_2.7.2_DEPS)
|
||||||
|
|
||||||
|
seth-2.7.2: $(SETH_2.7.2_DEPS)
|
||||||
|
|
||||||
|
minio-2.7.2: $(MINIO_2.7.2_DEPS)
|
||||||
|
|
||||||
|
lemonldap-2.7.2: $(LEMON_2.7.2_DEPS)
|
||||||
|
|
||||||
|
tenjin-2.7.2: $(TENJIN_2.7.2_DEPS)
|
||||||
|
|
||||||
|
zephir-2.7.2: $(ZEPHIR_2.7.2_DEPS)
|
||||||
|
|
||||||
|
images/eole/2.7.2/eolebase/eolebase-2.7.2.img: $(UBUNTU)
|
||||||
|
rm -rf images/eole/2.7.2/eolebase
|
||||||
|
script/build recipes/eole/2.7.2/eolebase.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
images/eole/2.7.2/amon/amon-2.7.2.img: $(EOLEBASE272)
|
||||||
|
rm -rf images/eole/2.7.2/amon
|
||||||
|
script/build recipes/eole/2.7.2/amon.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
images/eole/2.7.2/seth/seth-2.7.2.img: $(EOLEBASE272)
|
||||||
|
rm -rf images/eole/2.7.2/seth
|
||||||
|
script/build recipes/eole/2.7.2/seth.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
images/eole/2.7.2/minio/minio-2.7.2.img: $(EOLEBASE272)
|
||||||
|
rm -rf images/eole/2.7.2/minio
|
||||||
|
script/build recipes/eole/2.7.2/minio.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
images/eole/2.7.2/lemonldap/lemonldap-2.7.2.img: $(EOLEBASE272)
|
||||||
|
rm -rf images/eole/2.7.2/lemonldap
|
||||||
|
script/build recipes/eole/2.7.2/lemonldap.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
images/eole/2.7.2/tenjin/tenjin-2.7.2.img: $(EOLEBASE272)
|
||||||
|
rm -rf images/eole/2.7.2/tenjin
|
||||||
|
script/build recipes/eole/2.7.2/tenjin.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
images/eole/2.7.2/zephir/zephir-2.7.2.img: $(EOLEBASE272)
|
||||||
|
rm -rf images/eole/2.7.2/zephir
|
||||||
|
script/build recipes/eole/2.7.2/zephir.json ${BUILD_OPTS} ${BUILD_OPT}
|
|
@ -0,0 +1,47 @@
|
||||||
|
|
||||||
|
DOMAIN ?= cadoles.com
|
||||||
|
OUTPUT_DIR = images/infra/$(DOMAIN)/production
|
||||||
|
SYSDIR = $(OUTPUT_DIR)/$*.$(DOMAIN)/system
|
||||||
|
DATADIR = $(OUTPUT_DIR)/$*.$(DOMAIN)/data
|
||||||
|
SYSSIZE ?= 10240
|
||||||
|
DATASIZE ?= 20480
|
||||||
|
EOLEBASE = images/eole/2.7.2/eolebase/eolebase-2.7.2.img
|
||||||
|
SETHBASE = images/eole/2.7.2/seth/seth-2.7.2.img
|
||||||
|
AMONBASE = images/eole/2.7.2/amon/amon-2.7.2.img
|
||||||
|
|
||||||
|
PSOURCE ?= ./images/infra/$(DOMAIN)/production
|
||||||
|
PUBDIR ?= /var/www/html/market/master/ber/
|
||||||
|
PROVDIR ?= ./recipes/provisioning/infra
|
||||||
|
|
||||||
|
build: infra
|
||||||
|
|
||||||
|
infra: dns.$(DOMAIN).img \
|
||||||
|
amon.$(DOMAIN).img \
|
||||||
|
dc.$(DOMAIN).img \
|
||||||
|
sso.$(DOMAIN).img \
|
||||||
|
ninegate.$(DOMAIN).img \
|
||||||
|
limesurvey.$(DOMAIN).img \
|
||||||
|
dokuwiki.$(DOMAIN).img \
|
||||||
|
dolibarr.$(DOMAIN).img \
|
||||||
|
nextcloud.$(DOMAIN).img \
|
||||||
|
nineboard.$(DOMAIN).img \
|
||||||
|
piwigo.$(DOMAIN).img \
|
||||||
|
syspass.$(DOMAIN).img \
|
||||||
|
jorani.$(DOMAIN).img
|
||||||
|
|
||||||
|
%.$(DOMAIN): %.$(DOMAIN).img
|
||||||
|
@echo Building : $*
|
||||||
|
|
||||||
|
%.$(DOMAIN).img: $(EOLEBASE) $(SETHBASE) $(AMONBASE)
|
||||||
|
@rm -rf $(SYSDIR)
|
||||||
|
@mkdir -p $(PROVDIR)/$*.$(DOMAIN)/eole-db
|
||||||
|
VM_NAME=$*.$(DOMAIN) DOMAIN=$(DOMAIN) SYS_DISK_SIZE=$(SYSSIZE) \
|
||||||
|
script/build recipes/infra/$(DOMAIN)/production/$*.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
%.$(DOMAIN)-publish:
|
||||||
|
@echo cp -r $(PSOURCE)/$*.$(DOMAIN) $(PUBDIR)production/
|
||||||
|
@cp -r $(PSOURCE)/$*.$(DOMAIN) $(PUBDIR)production/
|
||||||
|
|
||||||
|
ber-publish:
|
||||||
|
@echo cp -r $(PSOURCE) $(PUBDIR)
|
||||||
|
@cp -r $(PSOURCE) $(PUBDIR)
|
|
@ -0,0 +1,34 @@
|
||||||
|
|
||||||
|
SDOMAIN = services
|
||||||
|
SOUTPUT_DIR = images/services
|
||||||
|
SSYSSIZE ?= 10240
|
||||||
|
SEOLEBASE = images/eole/2.7.2/eolebase/eolebase-2.7.2.img
|
||||||
|
SALPINEBASE = images/alpine/3.12/alpine-virt/alpine-virt-3.12.img
|
||||||
|
|
||||||
|
SPUBUSER ?= root
|
||||||
|
SPSERVER ?= hephy.service
|
||||||
|
SPSOURCE ?= ./images/cadoles/services
|
||||||
|
SPUBDIR ?= /var/www/html/market/master/cadoles/
|
||||||
|
SPROVDIR ?= ./recipes/cadoles/production/provisioning
|
||||||
|
|
||||||
|
build: services
|
||||||
|
deploy: deploy-services
|
||||||
|
|
||||||
|
services: bitwarden.services.img
|
||||||
|
|
||||||
|
|
||||||
|
%.$(SDOMAIN): %.services.img
|
||||||
|
@echo Building : $*
|
||||||
|
|
||||||
|
%.$(SDOMAIN).img: $(SEOLEBASE) $(SALPINEBASE)
|
||||||
|
@rm -rf $(SOUTPUT_DIR)
|
||||||
|
VM_NAME=$*.$(SDOMAIN) SYS_DISK_SIZE=$(SSYSSIZE) \
|
||||||
|
script/build recipes/services/$*.json ${BUILD_OPTS} ${BUILD_OPT}
|
||||||
|
|
||||||
|
%.$(SDOMAIN)-publish:
|
||||||
|
@echo scp -r $(SPSOURCE)/$*.$(SDOMAIN) $(SPUBUSER)@$(SPSERVER):$(SPUBDIR)production/
|
||||||
|
@scp -r $(SPSOURCE)/$*.$(SDOMAIN) $(SPUBUSER)@$(SPSERVER):$(SPUBDIR)production/
|
||||||
|
|
||||||
|
services-publish:
|
||||||
|
@echo scp -r $(SPSOURCE) $(SPUBUSER)@$(SPSERVER):$(PUBDIR)
|
||||||
|
@scp -r $(SPSOURCE) $(SPUBUSER)@$(SPSERVER):$(SPUBDIR)
|
|
@ -0,0 +1,15 @@
|
||||||
|
# Images Ubuntu
|
||||||
|
UBUNTU_DEPS=images/ubuntu/20.04/ubuntu-20.04.img images/ubuntu/18.04/ubuntu-18.04.img
|
||||||
|
|
||||||
|
build: ubuntu
|
||||||
|
deploy: deploy-ubuntu
|
||||||
|
|
||||||
|
ubuntu: $(UBUNTU_DEPS)
|
||||||
|
|
||||||
|
images/ubuntu/20.04/ubuntu-20.04.img:
|
||||||
|
rm -rf images/ubuntu/20.04
|
||||||
|
script/build recipes/ubuntu/20.04/packer.json
|
||||||
|
|
||||||
|
images/ubuntu/18.04/ubuntu-18.04.img:
|
||||||
|
rm -rf images/ubuntu/18.04
|
||||||
|
script/build recipes/ubuntu/18.04/packer.json
|
Loading…
Reference in New Issue