Skip to content
Snippets Groups Projects
Commit 5a4069dd authored by František Dvořák's avatar František Dvořák
Browse files

Switch puppet mode from master-less to master

parent c2ef32cc
No related branches found
No related tags found
No related merge requests found
...@@ -12,6 +12,7 @@ terraform { ...@@ -12,6 +12,7 @@ terraform {
locals { locals {
ord = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] ord = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
keyfile = "ssh-key.${var.domain}.txt" keyfile = "ssh-key.${var.domain}.txt"
master_fqdn = "${data.template_file.user_data_common[0].vars.host}.${var.domain}"
} }
data "openstack_compute_keypair_v2" "userkey" { data "openstack_compute_keypair_v2" "userkey" {
...@@ -82,11 +83,38 @@ users: ...@@ -82,11 +83,38 @@ users:
- ALL=(ALL) NOPASSWD:ALL - ALL=(ALL) NOPASSWD:ALL
%{ if count.index == 0 ~} %{ if count.index == 0 ~}
bootcmd:
- cloud-init-per once puppet-start systemctl mask puppet
- cloud-init-per once puppet-start systemctl mask puppet-master
- cloud-init-per once manifests-dir mkdir -p /etc/puppet/code/environments/production/manifests
packages:
- puppet-master
puppet:
conf:
agent:
server: ${local.master_fqdn}
write_files: write_files:
- path: /home/deployadm/.ssh/id_rsa - path: /home/deployadm/.ssh/id_rsa
permissions: '0600' permissions: '0600'
content: | content: |
${indent(6, openstack_compute_keypair_v2.localkey.private_key)~} ${indent(6, openstack_compute_keypair_v2.localkey.private_key)}
- path: /etc/puppet/autosign.conf
permissions: '0644'
content: |
${local.master_fqdn}
/^${var.node_hostname}\d+\.${var.domain}$$/
%{ else ~}
bootcmd:
- cloud-init-per once puppet-start systemctl mask puppet
puppet:
conf:
agent:
server: ${local.master_fqdn}
%{ endif ~} %{ endif ~}
runcmd: runcmd:
......
...@@ -6,14 +6,7 @@ class ComponentHadoopSingle(deployments.hadoop.plugin.ComponentHadoopCommon): ...@@ -6,14 +6,7 @@ class ComponentHadoopSingle(deployments.hadoop.plugin.ComponentHadoopCommon):
def action(self, action): def action(self, action):
if action == 'files': if action == 'files':
template = self.generate('deployments/hadoop-single/single.pp.tmpl', 'single.pp', 0o600) self.generate('deployments/hadoop-single/site.pp.tmpl', 'site.pp', 0o600)
if template:
self.params['hdfs_deployed'] = 'true'
result = template.substitute(self.params)
print('-> single2.pp')
with open('single2.pp', 'w') as f:
os.chmod('single2.pp', 0o600)
f.write(result)
self.generate('deployments/hadoop/adduser.sh.tmpl', 'hadoop-adduser.sh', 0o755) self.generate('deployments/hadoop/adduser.sh.tmpl', 'hadoop-adduser.sh', 0o755)
self.generate('deployments/hadoop/krb5.conf.tmpl', 'krb5.conf.hadoop', 0o644) self.generate('deployments/hadoop/krb5.conf.tmpl', 'krb5.conf.hadoop', 0o644)
...@@ -24,15 +17,17 @@ class ComponentHadoopSingle(deployments.hadoop.plugin.ComponentHadoopCommon): ...@@ -24,15 +17,17 @@ class ComponentHadoopSingle(deployments.hadoop.plugin.ComponentHadoopCommon):
sensitive = 'SENSITIVE=true ' sensitive = 'SENSITIVE=true '
return [ return [
['ansible', '-i', './inventory', '-m', 'copy', '-a', ['ansible', '-i', './inventory', '-m', 'copy', '-a',
'src=single.pp dest=/root mode=0600', 'all'], 'src=site.pp dest=/etc/puppet/code/environments/production/manifests mode=0600 ' +
['ansible', '-i', './inventory', '-m', 'copy', '-a', 'owner=puppet', 'master'],
'src=single2.pp dest=/root mode=0600', 'all'],
['ansible', '-i', './inventory', '-m', 'copy', '-a', ['ansible', '-i', './inventory', '-m', 'copy', '-a',
'src=hadoop-adduser.sh dest=/usr/local/sbin mode=0755', 'all'], 'src=hadoop-adduser.sh dest=/usr/local/sbin mode=0755', 'all'],
['ansible', '-i', './inventory', '-m', 'shell', '-a', ['ansible', '-i', './inventory', '-m', 'shell', '-a',
'puppet apply --test /root/single.pp >> stage1.log 2>&1; echo $?', 'all'], 'puppet agent --test >> stage1.log 2>&1; echo $?', 'all'],
['ansible', '-i', './inventory', '-m', 'shell', '-a',
r'sed -i "s/^\\(\$hdfs_deployed\\s*=\\s*\\).*/\\1true/" /etc/puppet/code/' +
'environments/production/manifests/site.pp', 'master'],
['ansible', '-i', './inventory', '-m', 'shell', '-a', ['ansible', '-i', './inventory', '-m', 'shell', '-a',
'puppet apply --test /root/single2.pp >> stage2.log 2>&1; echo $?', 'all'], 'puppet agent --test >> stage2.log 2>&1; echo $?', 'all'],
['ansible', '-i', './inventory', '-m', 'shell', '-a', ['ansible', '-i', './inventory', '-m', 'shell', '-a',
'%s/usr/local/sbin/hadoop-adduser.sh %s' % (sensitive, self.config['image_user']), '%s/usr/local/sbin/hadoop-adduser.sh %s' % (sensitive, self.config['image_user']),
'all'], 'all'],
......
...@@ -47,15 +47,8 @@ class ComponentHadoop(ComponentHadoopCommon): ...@@ -47,15 +47,8 @@ class ComponentHadoop(ComponentHadoopCommon):
def action(self, action): def action(self, action):
if action == 'files': if action == 'files':
template = self.generate('deployments/%s/site.pp.tmpl' % self.config['type'], self.generate('deployments/%s/site.pp.tmpl' % self.config['type'],
'site.pp', 0o600) 'site.pp', 0o600)
if template:
self.params['hdfs_deployed'] = 'true'
site = template.substitute(self.params)
print('-> site2.pp')
with open('site2.pp', 'w') as f:
os.chmod('site2.pp', 0o600)
f.write(site)
self.generate('deployments/hadoop/adduser.sh.tmpl', 'hadoop-adduser.sh', 0o755) self.generate('deployments/hadoop/adduser.sh.tmpl', 'hadoop-adduser.sh', 0o755)
self.generate('deployments/hadoop/krb5.conf.tmpl', 'krb5.conf.hadoop', 0o644) self.generate('deployments/hadoop/krb5.conf.tmpl', 'krb5.conf.hadoop', 0o644)
...@@ -66,15 +59,17 @@ class ComponentHadoop(ComponentHadoopCommon): ...@@ -66,15 +59,17 @@ class ComponentHadoop(ComponentHadoopCommon):
sensitive = 'SENSITIVE=true ' sensitive = 'SENSITIVE=true '
return [ return [
['ansible', '-i', './inventory', '-m', 'copy', '-a', ['ansible', '-i', './inventory', '-m', 'copy', '-a',
'src=site.pp dest=/root mode=0600', 'all'], 'src=site.pp dest=/etc/puppet/code/environments/production/manifests mode=0600 ' +
['ansible', '-i', './inventory', '-m', 'copy', '-a', 'owner=puppet', 'master'],
'src=site2.pp dest=/root mode=0600', 'all'],
['ansible', '-i', './inventory', '-m', 'copy', '-a', ['ansible', '-i', './inventory', '-m', 'copy', '-a',
'src=hadoop-adduser.sh dest=/usr/local/sbin mode=0755', 'all'], 'src=hadoop-adduser.sh dest=/usr/local/sbin mode=0755', 'all'],
['ansible', '-i', './inventory', '-m', 'shell', '-a', ['ansible', '-i', './inventory', '-m', 'shell', '-a',
'puppet apply --test /root/site.pp >> stage1.log 2>&1; echo $?', 'all'], 'puppet agent --test >> stage1.log 2>&1; echo $?', 'all'],
['ansible', '-i', './inventory', '-m', 'shell', '-a',
r'sed -i "s/^\\(\$hdfs_deployed\\s*=\\s*\\).*/\\1true/" /etc/puppet/code/' +
'environments/production/manifests/site.pp', 'master'],
['ansible', '-i', './inventory', '-m', 'shell', '-a', ['ansible', '-i', './inventory', '-m', 'shell', '-a',
'puppet apply --test /root/site2.pp >> stage2.log 2>&1; echo $?', 'all'], 'puppet agent --test >> stage2.log 2>&1; echo $?', 'all'],
['ansible', '-i', './inventory', '-m', 'shell', '-a', ['ansible', '-i', './inventory', '-m', 'shell', '-a',
'%s/usr/local/sbin/hadoop-adduser.sh %s' % (sensitive, self.config['image_user']), '%s/usr/local/sbin/hadoop-adduser.sh %s' % (sensitive, self.config['image_user']),
'all'], 'all'],
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
sed 's/MASTER=.*/MASTER="`hostname -f`"/' ../hadoop-adduser.sh > hadoop-adduser.sh sed 's/MASTER=.*/MASTER="`hostname -f`"/' ../hadoop-adduser.sh > hadoop-adduser.sh
chmod +x hadoop-adduser.sh chmod +x hadoop-adduser.sh
touch -r ../deployments/hadoop/adduser.sh.tmpl hadoop-adduser.sh touch -r ../deployments/hadoop/adduser.sh.tmpl hadoop-adduser.sh
touch -r ../deployments/hadoop-single/single.pp.tmpl ../single.pp ../single2.pp touch -r ../deployments/hadoop-single/site.pp.tmpl ../site.pp
sudo /usr/sbin/build-openstack-debian-image \ sudo /usr/sbin/build-openstack-debian-image \
--release stretch \ --release stretch \
......
...@@ -42,7 +42,9 @@ cp -vp Puppetfile $BODI_CHROOT_PATH/etc/puppet/code/ ...@@ -42,7 +42,9 @@ cp -vp Puppetfile $BODI_CHROOT_PATH/etc/puppet/code/
chroot $BODI_CHROOT_PATH bash -c 'cd /etc/puppet/code; librarian-puppet install' chroot $BODI_CHROOT_PATH bash -c 'cd /etc/puppet/code; librarian-puppet install'
cp -vp hadoop-adduser.sh $BODI_CHROOT_PATH/usr/local/sbin/ cp -vp hadoop-adduser.sh $BODI_CHROOT_PATH/usr/local/sbin/
cp -vp scripts/*.sh $BODI_CHROOT_PATH/usr/local/sbin/ cp -vp scripts/*.sh $BODI_CHROOT_PATH/usr/local/sbin/
cp -vp ../single.pp ../single2.pp $BODI_CHROOT_PATH/root/ mkdir -p $BODI_CHROOT_PATH/etc/puppet/code/environments/production/manifests
install -v -m 0600 ../site.pp $BODI_CHROOT_PATH/etc/puppet/code/environments/production/manifests/
chroot $BODI_CHROOT_PATH chown puppet /etc/puppet/code/environments/production/manifests/site.pp
cp -vp motd $BODI_CHROOT_PATH/etc/motd cp -vp motd $BODI_CHROOT_PATH/etc/motd
egrep '^\s*GSSAPIAuthentication\s+yes' $BODI_CHROOT_PATH/etc/ssh/sshd_config || echo 'GSSAPIAuthentication yes' >> $BODI_CHROOT_PATH/etc/ssh/sshd_config egrep '^\s*GSSAPIAuthentication\s+yes' $BODI_CHROOT_PATH/etc/ssh/sshd_config || echo 'GSSAPIAuthentication yes' >> $BODI_CHROOT_PATH/etc/ssh/sshd_config
......
...@@ -12,9 +12,16 @@ fi ...@@ -12,9 +12,16 @@ fi
mkdir /data 2>/dev/null || : mkdir /data 2>/dev/null || :
puppet apply --test /root/single.pp 2>&1 | tee stage1.log apt-get install -y puppet-master
hostname -f > /etc/puppet/autosign.conf
systemctl enable puppet-master
service puppet-master restart
puppet config set server `hostname -f`
puppet agent --test 2>&1 | tee stage1.log
if test $? = 0 -o $? = 2; then if test $? = 0 -o $? = 2; then
puppet apply --test /root/single2.pp 2>&1 | tee stage2.log sed -i "s/^\\(\$hdfs_deployed\\s*=\\s*\\).*/\\1true/" /etc/puppet/code/environments/production/manifests/site.pp
puppet agent --test 2>&1 | tee stage2.log
else else
echo "First stage setup failed" echo "First stage setup failed"
exit $? exit $?
......
...@@ -216,7 +216,13 @@ if 'wait' in args.actions: ...@@ -216,7 +216,13 @@ if 'wait' in args.actions:
if 'deployment' in args.actions: if 'deployment' in args.actions:
print('== deployment ==') print('== deployment ==')
commands = [] commands = [
['ansible', '-i', './inventory', '-m', 'command', '-a', 'systemctl enable puppet-master',
'master'],
# started with the old /etc/hosts
['ansible', '-i', './inventory', '-m', 'command', '-a', 'service puppet-master restart',
'master'],
]
perform_action('deployment', commands) perform_action('deployment', commands)
fperf.write('[%f] Elapsed time\n' % elapsed) fperf.write('[%f] Elapsed time\n' % elapsed)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment