-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcréerConteneurBase.sh
executable file
·57 lines (48 loc) · 2.67 KB
/
créerConteneurBase.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
conteneur='base-puppet'
locale='fr_FR.UTF-8'
cheminManifestsHote="${HOME}/Code/ci-wazuh-puppet/Manifests"
cheminManifestsInvite='root/Manifests/Wazuh'
cheminModuleHote="${HOME}/Code/wazuh-puppet"
cheminModuleInvite='etc/puppetlabs/code/environments/production/modules/wazuh'
# Préparation du conteneur
lxc-stop -n "${conteneur}"
lxc-destroy -n "$conteneur"
systemd-run --user --scope -p "Delegate=yes" -- lxc-create -n "${conteneur}" -t /usr/share/lxc/templates/lxc-download -- --dist debian --release buster --arch amd64
systemd-run --user --scope -p "Delegate=yes" -- lxc-start -n "${conteneur}"
executerDansConteneur="lxc-attach -n ${conteneur} -- "
sleep 2
# Configuration de la locale FR
$executerDansConteneur sed -E -i "s/# (${locale})/\1/" /etc/locale.gen
$executerDansConteneur locale-gen
# Installation paquets nécessaires
$executerDansConteneur apt -y update
$executerDansConteneur apt -y upgrade
$executerDansConteneur apt -y install wget
# Installation Puppet
cheminPaquetPuppet='/root/puppet6-release-buster.deb'
$executerDansConteneur wget -O "${cheminPaquetPuppet}" 'https://apt.puppet.com/puppet6-release-buster.deb'
$executerDansConteneur dpkg -i "${cheminPaquetPuppet}"
$executerDansConteneur rm "${cheminPaquetPuppet}"
$executerDansConteneur apt -y update
$executerDansConteneur apt install -y puppet-agent
# Configuration des points de montage
$executerDansConteneur mkdir -p "${cheminManifestsInvite}"
echo "lxc.mount.entry = ${cheminManifestsHote} ${cheminManifestsInvite} none bind 0 0" >> "${HOME}/.local/share/lxc/${conteneur}/config"
$executerDansConteneur mkdir -p "${cheminModuleInvite}"
echo "lxc.mount.entry = ${cheminModuleHote} ${cheminModuleInvite} none bind 0 0" >> "${HOME}/.local/share/lxc/${conteneur}/config"
# Dépendances puppet
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppetlabs-stdlib
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppet-archive
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppet-nodejs
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppet-selinux
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppetlabs-apt
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppetlabs-concat
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppetlabs-firewall
$executerDansConteneur /opt/puppetlabs/bin/puppet module install puppetlabs-powershell
$executerDansConteneur apt install -y lsb-release
$executerDansConteneur apt install -y curl
# Supporter nesting
echo 'lxc.include = /usr/share/lxc/config/nesting.conf' >> "${HOME}/.local/share/lxc/${conteneur}/config"
# Arrêt du conteneur avant sortie
lxc-stop -n "${conteneur}"