Page MenuHomePhabricator
Paste P10011

puppetvagrant.diff
ActivePublic

Authored by ema on Dec 23 2019, 2:12 PM.
Tags
None
Referenced Files
F31486563: raw.txt
Dec 23 2019, 2:12 PM
Subscribers
None
commit c389d5eed4ac8c9ee9ad4fd7d2f683f420163a21
Author: Emanuele Rocca <ema@wikimedia.org>
Date: Mon Dec 23 15:06:45 2019 +0100
WIP: puppetvagrant
Change-Id: Ie37d5a9258e56b7188ebca2f60314ba1433cf722
diff --git Vagrantfile Vagrantfile
new file mode 100644
index 0000000000..70a09c7ea3
--- /dev/null
+++ Vagrantfile
@@ -0,0 +1,9 @@
+Vagrant.configure("2") do |config|
+ config.vm.box = "debian/contrib-stretch64"
+ config.vm.provision "shell", path: "utils/vagrant-provision"
+
+ config.vm.define "puppetvagrant1001" do |m|
+ m.vm.hostname = "puppetvagrant1001.eqiad.wmnet"
+ m.vm.network "private_network", ip: "10.64.64.64", libvirt__dhcp_enabled: false
+ end
+end
diff --git hieradata/hosts/puppetvagrant1001.yaml hieradata/hosts/puppetvagrant1001.yaml
new file mode 100644
index 0000000000..189ad8a3e6
--- /dev/null
+++ hieradata/hosts/puppetvagrant1001.yaml
@@ -0,0 +1 @@
+profile::standard::enable_ip6_mapped: false
diff --git manifests/realm.pp manifests/realm.pp
index d0f5e0934d..02ec942225 100644
--- manifests/realm.pp
+++ manifests/realm.pp
@@ -8,6 +8,7 @@ $site = $facts['ipaddress'] ? {
/^208\.80\.15[23]\./ => 'codfw',
/^208\.80\.15[45]\./ => 'eqiad',
/^10\.6[48]\./ => 'eqiad',
+ /^10\.0\.2\./ => 'eqiad',
/^10\.19[26]\./ => 'codfw',
/^91\.198\.174\./ => 'esams',
/^198\.35\.26\./ => 'ulsfo',
diff --git utils/vagrant-provision utils/vagrant-provision
new file mode 100644
index 0000000000..98144b9e0f
--- /dev/null
+++ utils/vagrant-provision
@@ -0,0 +1,57 @@
+#!/bin/bash
+
+set -xeu
+
+# Similar to what happens after provisioning
+preflight() {
+ apt -yy -q install curl gnupg lsb-release
+}
+
+install_packages() {
+ apt -yy -q install git vim puppet puppet-master
+}
+
+wmf_apt_setup() {
+ curl -q http://apt.wikimedia.org/autoinstall/keyring/wikimedia-archive-keyring.gpg | apt-key add -
+ echo "deb http://apt.wikimedia.org/wikimedia $(lsb_release -cs)-wikimedia main" > /etc/apt/sources.list.d/wikimedia.list
+ install -d /etc/apt/sources.list.d /etc/apt/preferences.d
+ echo -e 'Package: *\nPin: release o=Wikimedia\nPin-Priority: 1001\n' > /etc/apt/preferences.d/wikimedia.pref
+ apt -q update
+}
+
+wmf_puppet_setup() {
+ (cd ~vagrant
+ git clone --depth=1 --recursive https://gerrit.wikimedia.org/r/labs/private
+ )
+
+ [ -L /etc/puppet/hiera.yaml ] || ( rm /etc/puppet/hiera.yaml ; ln -s /vagrant/modules/puppetmaster/files/production.hiera.yaml /etc/puppet/hiera.yaml )
+ [ -L /etc/puppet/hieradata ] || ln -s /vagrant/hieradata /etc/puppet/hieradata
+ [ -L /etc/puppet/private ] || ln -s ~vagrant/private /etc/puppet/private
+
+ # "network" module not found otherwise, /usr/share/modules is default 'modulepath' on debian
+ [ -L /usr/share/puppet/modules ] || (rm -fr /usr/share/puppet/modules ; ln -s ~vagrant/puppet/modules /usr/share/puppet )
+}
+
+#vagrant_setup() {
+# install -v -d -m555 /etc/ssh/userkeys
+# install -v -m444 ~vagrant/.ssh/authorized_keys /etc/ssh/userkeys/vagrant
+#}
+
+change_domain() {
+ sed -i "s/^127.0.1.1.*/127.0.1.1 ${HOSTNAME}.test1.wmnet ${HOSTNAME}/" /etc/hosts
+}
+
+preflight
+wmf_apt_setup
+
+# change domain to 'test1.wmnet' before installing puppet, so e.g. puppet certs
+# are already generated with the right fqdn
+#change_domain
+
+install_packages
+
+#vagrant_setup
+
+wmf_puppet_setup
+
+echo "to launch puppet: sudo /vagrant/utils/vagrant-run"
diff --git utils/vagrant-run utils/vagrant-run
new file mode 100755
index 0000000000..2ec268f076
--- /dev/null
+++ utils/vagrant-run
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+RUBYLIB=/vagrant/modules/wmflib/lib/ puppet apply --modulepath ~vagrant/private/modules:/vagrant/modules /vagrant/manifests