Merge "Create ansible roles to install puppet"
This commit is contained in:
commit
70730c0fe3
47
.zuul.yaml
47
.zuul.yaml
@ -41,27 +41,64 @@
|
||||
- job:
|
||||
name: system-config-zuul-role-integration-centos-7
|
||||
parent: system-config-zuul-role-integration
|
||||
nodeset: centos-7
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: base
|
||||
label: centos-7
|
||||
- name: puppet4
|
||||
label: centos-7
|
||||
groups:
|
||||
- name: puppet3
|
||||
nodes:
|
||||
- base
|
||||
|
||||
- job:
|
||||
name: system-config-zuul-role-integration-trusty
|
||||
parent: system-config-zuul-role-integration
|
||||
nodeset: ubuntu-trusty
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: base
|
||||
label: ubuntu-trusty
|
||||
- name: puppet4
|
||||
label: ubuntu-trusty
|
||||
groups:
|
||||
- name: puppet3
|
||||
nodes:
|
||||
- base
|
||||
|
||||
- job:
|
||||
name: system-config-zuul-role-integration-xenial
|
||||
parent: system-config-zuul-role-integration
|
||||
nodeset: ubuntu-xenial
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: base
|
||||
label: ubuntu-xenial
|
||||
- name: puppet4
|
||||
label: ubuntu-xenial
|
||||
groups:
|
||||
- name: puppet3
|
||||
nodes:
|
||||
- base
|
||||
|
||||
- job:
|
||||
name: system-config-zuul-role-integration-bionic
|
||||
parent: system-config-zuul-role-integration
|
||||
nodeset: ubuntu-bionic
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: base
|
||||
label: ubuntu-bionic
|
||||
groups:
|
||||
- name: puppet5
|
||||
nodes:
|
||||
- base
|
||||
|
||||
- job:
|
||||
name: system-config-zuul-role-integration-debian-stable
|
||||
parent: system-config-zuul-role-integration
|
||||
nodeset: debian-stable
|
||||
nodeset:
|
||||
nodes:
|
||||
- name: base
|
||||
label: debian-stretch
|
||||
|
||||
- project-template:
|
||||
name: system-config-zuul-role-integration
|
||||
|
@ -6,6 +6,12 @@
|
||||
# to run under Zuul (here) and also directly under Ansible for the
|
||||
# control-plane (see system-config-run-base)
|
||||
#
|
||||
# Note playbooks should by default use the "base" node (i.e. hosts:
|
||||
# base); some roles (like puppet) may also use another node if they're
|
||||
# testing an alternative path.
|
||||
|
||||
# Puppet installation
|
||||
- import_playbook: puppet-install.yaml
|
||||
|
||||
# Kerberos & afs roles
|
||||
- import_playbook: openafs-client.yaml
|
||||
- import_playbook: openafs-client.yaml
|
||||
|
@ -1,5 +1,5 @@
|
||||
- name: Kerberos and OpenAFS client installation
|
||||
hosts: all
|
||||
hosts: base
|
||||
roles:
|
||||
- role: kerberos-client
|
||||
kerberos_realm: 'OPENSTACK.ORG'
|
||||
|
17
roles-test/puppet-install.yaml
Normal file
17
roles-test/puppet-install.yaml
Normal file
@ -0,0 +1,17 @@
|
||||
- name: Install puppet3
|
||||
hosts: puppet3
|
||||
roles:
|
||||
- role: puppet-install
|
||||
puppet_install_version: 3
|
||||
|
||||
- name: Install puppet4
|
||||
hosts: puppet4
|
||||
roles:
|
||||
- role: puppet-install
|
||||
puppet_install_version: 4
|
||||
|
||||
- name: Install puppet5
|
||||
hosts: puppet5
|
||||
roles:
|
||||
- role: puppet-install
|
||||
puppet_install_version: 5
|
23
roles/puppet-install/README.rst
Normal file
23
roles/puppet-install/README.rst
Normal file
@ -0,0 +1,23 @@
|
||||
Install puppet on a host
|
||||
|
||||
.. note:: This role uses ``puppetlabs`` versions where available in
|
||||
preference to system packages.
|
||||
|
||||
This roles installs puppet on a host
|
||||
|
||||
**Role Variables**
|
||||
|
||||
.. zuul:rolevar:: puppet_install_version
|
||||
:default: 3
|
||||
|
||||
The puppet version to install. Platform support for various
|
||||
version varies.
|
||||
|
||||
.. zuul:rolevar:: puppet_install_system_config_modules
|
||||
:default: yes
|
||||
|
||||
If we should clone and run `install_modules.sh
|
||||
<https://git.openstack.org/cgit/openstack-infra/system-config/tree/install_modules.sh>`__
|
||||
from OpenStack Infra ``system-config`` repository to populate
|
||||
required puppet modules on the host.
|
||||
|
2
roles/puppet-install/defaults/main.yaml
Normal file
2
roles/puppet-install/defaults/main.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
puppet_install_version: 3
|
||||
puppet_install_system_config_modules: yes
|
32
roles/puppet-install/tasks/main.yaml
Normal file
32
roles/puppet-install/tasks/main.yaml
Normal file
@ -0,0 +1,32 @@
|
||||
- name: Install puppet packages
|
||||
include: "{{ lookup('first_found', params) }}"
|
||||
vars:
|
||||
params:
|
||||
files:
|
||||
- "{{ ansible_distribution_release }}.yaml"
|
||||
- "{{ ansible_distribution }}.yaml"
|
||||
- "{{ ansible_os_family }}.yaml"
|
||||
- "default.yaml"
|
||||
paths:
|
||||
- puppet-install
|
||||
|
||||
- name: Install system-config modules
|
||||
when: puppet_install_system_config_modules
|
||||
become: true
|
||||
block:
|
||||
- name: Make sure git is installed
|
||||
package:
|
||||
name: git
|
||||
state: present
|
||||
|
||||
- name: Make sure system-config repo is up to date
|
||||
git:
|
||||
repo: https://git.openstack.org/openstack-infra/system-config
|
||||
dest: /opt/system-config
|
||||
force: yes
|
||||
|
||||
- name: Clone puppet modules to /etc/puppet/modules
|
||||
command: ./install_modules.sh
|
||||
args:
|
||||
chdir: /opt/system-config
|
||||
|
49
roles/puppet-install/tasks/puppet-install/CentOS.yaml
Normal file
49
roles/puppet-install/tasks/puppet-install/CentOS.yaml
Normal file
@ -0,0 +1,49 @@
|
||||
- fail:
|
||||
msg: "Unsupported puppet version '{{ puppet_install_version }}' on this platform"
|
||||
when: puppet_install_version not in [3, 4]
|
||||
|
||||
- name: Install puppet 3 packages
|
||||
when: puppet_install_version == 3
|
||||
become: true
|
||||
block:
|
||||
- name: Install puppetlabs repo
|
||||
yum:
|
||||
name: https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm
|
||||
|
||||
- name: Install puppet packages
|
||||
yum:
|
||||
name:
|
||||
- puppet
|
||||
- ruby
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
# wipe out templatedir so we don't get warnings
|
||||
- name: Remove templatedir
|
||||
lineinfile:
|
||||
path: /etc/puppet/puppet.conf
|
||||
state: absent
|
||||
regexp: 'templatedir'
|
||||
|
||||
# wipe out server, as we don't have one
|
||||
- name: Remove server
|
||||
lineinfile:
|
||||
path: /etc/puppet/puppet.conf
|
||||
state: absent
|
||||
regexp: 'server'
|
||||
|
||||
- name: Install puppet 4 packages
|
||||
when: puppet_install_version == 4
|
||||
become: true
|
||||
block:
|
||||
- name: Install puppetlabs repo
|
||||
yum:
|
||||
name: https://yum.puppetlabs.com/puppetlabs-release-pc1-el-7.noarch.rpm
|
||||
|
||||
- name: Install puppet packages
|
||||
yum:
|
||||
name:
|
||||
- puppet-agent
|
||||
- ruby
|
||||
state: present
|
||||
update_cache: yes
|
26
roles/puppet-install/tasks/puppet-install/bionic.yaml
Normal file
26
roles/puppet-install/tasks/puppet-install/bionic.yaml
Normal file
@ -0,0 +1,26 @@
|
||||
# Prior versions not supported on Bionic
|
||||
- fail:
|
||||
msg: "Unsupported puppet version '{{ puppet_install_version }}' on this platform"
|
||||
when: puppet_install_version not in [5,]
|
||||
|
||||
- name: Install puppet 5 packages
|
||||
when: puppet_install_version == 5
|
||||
become: true
|
||||
block:
|
||||
- name: Install puppetlabs repo
|
||||
apt:
|
||||
deb: https://apt.puppetlabs.com/puppet5-release-bionic.deb
|
||||
|
||||
- name: Install puppet packages
|
||||
apt:
|
||||
name:
|
||||
- puppet-agent
|
||||
- ruby
|
||||
update_cache: yes
|
||||
|
||||
- name: Stop and disable puppet service
|
||||
service:
|
||||
name: puppet
|
||||
state: stopped
|
||||
enabled: no
|
||||
become: yes
|
2
roles/puppet-install/tasks/puppet-install/default.yaml
Normal file
2
roles/puppet-install/tasks/puppet-install/default.yaml
Normal file
@ -0,0 +1,2 @@
|
||||
- fail:
|
||||
msg: Platform not currently supported
|
57
roles/puppet-install/tasks/puppet-install/trusty.yaml
Normal file
57
roles/puppet-install/tasks/puppet-install/trusty.yaml
Normal file
@ -0,0 +1,57 @@
|
||||
- fail:
|
||||
msg: "Unsupported puppet version '{{ puppet_install_version }}' on this platform"
|
||||
when: puppet_install_version not in [3, 4]
|
||||
|
||||
- name: Install puppet 3 packages
|
||||
when: puppet_install_version == 3
|
||||
become: true
|
||||
block:
|
||||
# Note https doesn't work here due to certificate issues and
|
||||
# python versions and SNI etc; not worth the effort of workarounds
|
||||
# at this point.
|
||||
- name: Install puppetlabs repo
|
||||
apt:
|
||||
deb: http://apt.puppetlabs.com/puppetlabs-release-trusty.deb
|
||||
|
||||
- name: Install puppet packages
|
||||
package:
|
||||
state: present
|
||||
name: '{{ item }}'
|
||||
loop:
|
||||
- puppet
|
||||
- ruby
|
||||
# wipe out templatedir so we don't get warnings
|
||||
- name: Remove templatedir
|
||||
lineinfile:
|
||||
path: /etc/puppet/puppet.conf
|
||||
state: absent
|
||||
regexp: 'templatedir'
|
||||
# wipe out server, as we don't have one
|
||||
- name: Remove server
|
||||
lineinfile:
|
||||
path: /etc/puppet/puppet.conf
|
||||
state: absent
|
||||
regexp: 'server'
|
||||
|
||||
|
||||
- name: Install puppet 4 packages
|
||||
when: puppet_install_version == 4
|
||||
become: true
|
||||
block:
|
||||
- name: Install puppetlabs repo
|
||||
apt:
|
||||
deb: http://apt.puppetlabs.com/puppetlabs-release-pc1-trusty.deb
|
||||
|
||||
- name: Install puppet packages
|
||||
apt:
|
||||
name:
|
||||
- puppet-agent
|
||||
- ruby
|
||||
update_cache: yes
|
||||
|
||||
- name: Stop and disable puppet service
|
||||
service:
|
||||
name: puppet
|
||||
state: stopped
|
||||
enabled: no
|
||||
become: yes
|
53
roles/puppet-install/tasks/puppet-install/xenial.yaml
Normal file
53
roles/puppet-install/tasks/puppet-install/xenial.yaml
Normal file
@ -0,0 +1,53 @@
|
||||
- fail:
|
||||
msg: "Unsupported puppet version '{{ puppet_install_version }}' on this platform"
|
||||
when: puppet_install_version not in [3,4]
|
||||
|
||||
- name: Install puppet 3 packages
|
||||
when: puppet_install_version == 3
|
||||
become: true
|
||||
block:
|
||||
# Puppetlabs does not support Xenial for puppet 3, so we're using
|
||||
# system packages
|
||||
- name: Install puppet packages
|
||||
package:
|
||||
state: present
|
||||
name: '{{ item }}'
|
||||
loop:
|
||||
- puppet
|
||||
- ruby
|
||||
|
||||
# wipe out templatedir so we don't get warnings
|
||||
- name: Remove templatedir
|
||||
lineinfile:
|
||||
path: /etc/puppet/puppet.conf
|
||||
state: absent
|
||||
regexp: 'templatedir'
|
||||
|
||||
# wipe out server, as we don't have one
|
||||
- name: Remove server
|
||||
lineinfile:
|
||||
path: /etc/puppet/puppet.conf
|
||||
state: absent
|
||||
regexp: 'server'
|
||||
|
||||
- name: Install puppet 4 packages
|
||||
when: puppet_install_version == 4
|
||||
become: true
|
||||
block:
|
||||
- name: Install puppetlabs repo
|
||||
apt:
|
||||
deb: https://apt.puppetlabs.com/puppetlabs-release-pc1-xenial.deb
|
||||
|
||||
- name: Install puppet packages
|
||||
apt:
|
||||
name:
|
||||
- puppet-agent
|
||||
- ruby
|
||||
update_cache: yes
|
||||
|
||||
- name: Stop and disable puppet service
|
||||
service:
|
||||
name: puppet
|
||||
state: stopped
|
||||
enabled: no
|
||||
become: yes
|
Loading…
x
Reference in New Issue
Block a user