diff --git a/roles/bootstrap_puppetmaster/files/hiera/fqdn/gerrit.yaml b/roles/bootstrap_puppetmaster/files/hiera/fqdn/gerrit.yaml new file mode 100644 index 0000000..b367a9d --- /dev/null +++ b/roles/bootstrap_puppetmaster/files/hiera/fqdn/gerrit.yaml @@ -0,0 +1,2 @@ +--- +roles: infra-ansible::roles::gerrit diff --git a/roles/bootstrap_puppetmaster/files/hiera/fqdn/jenkins.yaml b/roles/bootstrap_puppetmaster/files/hiera/fqdn/jenkins.yaml new file mode 100644 index 0000000..19c816b --- /dev/null +++ b/roles/bootstrap_puppetmaster/files/hiera/fqdn/jenkins.yaml @@ -0,0 +1,2 @@ +--- +roles: infra-ansible::roles::jenkins diff --git a/roles/bootstrap_puppetmaster/files/hiera/fqdn/zuul.yaml b/roles/bootstrap_puppetmaster/files/hiera/fqdn/zuul.yaml new file mode 100644 index 0000000..15a98d6 --- /dev/null +++ b/roles/bootstrap_puppetmaster/files/hiera/fqdn/zuul.yaml @@ -0,0 +1,2 @@ +--- +roles: infra-ansible::roles::zuul diff --git a/roles/bootstrap_puppetmaster/files/hiera.yaml b/roles/bootstrap_puppetmaster/files/hiera/hiera.yaml similarity index 100% rename from roles/bootstrap_puppetmaster/files/hiera.yaml rename to roles/bootstrap_puppetmaster/files/hiera/hiera.yaml diff --git a/roles/bootstrap_puppetmaster/files/site.pp b/roles/bootstrap_puppetmaster/files/site.pp index c6c29ab..8bedb94 100644 --- a/roles/bootstrap_puppetmaster/files/site.pp +++ b/roles/bootstrap_puppetmaster/files/site.pp @@ -1 +1 @@ -hiera_include('classes', []) +hiera_include('roles', []) diff --git a/roles/bootstrap_puppetmaster/tasks/main.yml b/roles/bootstrap_puppetmaster/tasks/main.yml index ed5272e..4847d98 100644 --- a/roles/bootstrap_puppetmaster/tasks/main.yml +++ b/roles/bootstrap_puppetmaster/tasks/main.yml @@ -32,28 +32,67 @@ - name: Create /etc/puppet/hieradata/production folder file: path=/etc/puppet/hieradata/production state=directory -- name: Create /etc/puppet/hieradata/production/fqdn folder - file: path=/etc/puppet/hieradata/production/fqdn state=directory - - name: Copy hiera.yaml to /etc/puppet/ - copy: src=hiera.yaml dest=/etc/puppet + copy: src=hiera/hiera.yaml dest=/etc/puppet - name: Run generate_hiera_common.py to populate common.yaml script: generate_hiera_common.py -- name: Deploy Gerrit server template for hiera +- name: Create /etc/puppet/hieradata/production/fqdn folder + file: path=/etc/puppet/hieradata/production/fqdn state=directory + +- name: Create infra-ansible modules folder for roles and profiles + file: path=/etc/puppet/modules/infra-ansible/manifests state=directory + +- name: Create infra-ansible roles folder + file: path=/etc/puppet/modules/infra-ansible/manifests/roles state=directory + +- name: Create infra-ansible profiles folder + file: path=/etc/puppet/modules/infra-ansible/manifests/profiles state=directory + +- name: Deploy Gerrit puppet role module template: > - src=gerrit.yaml.j2 + src=puppet_roles/gerrit.pp.j2 + dest=/etc/puppet/modules/infra-ansible/manifests/roles/gerrit.pp + +- name: Deploy Zuul puppet role module + template: > + src=puppet_roles/zuul.pp.j2 + dest=/etc/puppet/modules/infra-ansible/manifests/roles/zuul.pp + +- name: Deploy Jenkins puppet role module + template: > + src=puppet_roles/jenkins.pp.j2 + dest=/etc/puppet/modules/infra-ansible/manifests/roles/jenkins.pp + +- name: Deploy Gerrit puppet profile template + template: > + src=puppet_profiles/gerrit.pp.j2 + dest=/etc/puppet/modules/infra-ansible/manifests/profiles/gerrit.pp + +- name: Deploy Zuul puppet profile template + template: > + src=puppet_profiles/zuul.pp.j2 + dest=/etc/puppet/modules/infra-ansible/manifests/profiles/zuul.pp + +- name: Deploy Jenkins puppet profile template + template: > + src=puppet_profiles/jenkins.pp.j2 + dest=/etc/puppet/modules/infra-ansible/manifests/profiles/jenkins.pp + +- name: Deploy Gerrit fqdn hiera file + copy: > + src=hiera/fqdn/gerrit.yaml dest=/etc/puppet/hieradata/production/fqdn/{{ groups['meta-infra_type_gerrit'][0] }}.yaml -- name: Deploy Zuul server template for hiera - template: > - src=zuul.yaml.j2 +- name: Deploy Zuul fqdn hiera file + copy: > + src=hiera/fqdn/zuul.yaml dest=/etc/puppet/hieradata/production/fqdn/{{ groups['meta-infra_type_zuul'][0] }}.yaml -- name: Deploy Jenkins master server template for hiera - template: > - src=jenkins.yaml.j2 +- name: Deploy Jenkins fqdn hiera file + copy: > + src=hiera/fqdn/jenkins.yaml dest=/etc/puppet/hieradata/production/fqdn/{{ groups['meta-infra_type_jenkins'][0] }}.yaml - name: Start puppet agent service diff --git a/roles/bootstrap_puppetmaster/templates/gerrit.yaml.j2 b/roles/bootstrap_puppetmaster/templates/gerrit.yaml.j2 deleted file mode 100644 index bd163cb..0000000 --- a/roles/bootstrap_puppetmaster/templates/gerrit.yaml.j2 +++ /dev/null @@ -1,8 +0,0 @@ ---- -classes: - - gerrit - -gerrit::mysql_password: "%{hiera('gerrit_mysql_password')}" -gerrit::gerrit_auth_type: DEVELOPMENT_BECOME_ANY_ACCOUNT -gerrit::war: http://tarballs.openstack.org/ci/gerrit/gerrit-v2.10.2.23.039a170.war -gerrit::secondary_index: true diff --git a/roles/bootstrap_puppetmaster/templates/jenkins.yaml.j2 b/roles/bootstrap_puppetmaster/templates/jenkins.yaml.j2 deleted file mode 100644 index 16dc933..0000000 --- a/roles/bootstrap_puppetmaster/templates/jenkins.yaml.j2 +++ /dev/null @@ -1,8 +0,0 @@ ---- -classes: - - jenkins::master - -jenkins::master::ssl_cert_file: /etc/ssl/certs/ssl-cert-snakeoil.pem -jenkins::master::ssl_key_file: /etc/ssl/private/ssl-cert-snakeoil.key -jenkins::master::jenkins_ssh_private_key: "%{hiera('jenkins_ssh_private_key')}" -jenkins::master::jenkins_ssh_public_key: "%{hiera('jenkins_ssh_public_key')}" diff --git a/roles/bootstrap_puppetmaster/templates/puppet_profiles/gerrit.pp.j2 b/roles/bootstrap_puppetmaster/templates/puppet_profiles/gerrit.pp.j2 new file mode 100644 index 0000000..164e656 --- /dev/null +++ b/roles/bootstrap_puppetmaster/templates/puppet_profiles/gerrit.pp.j2 @@ -0,0 +1,8 @@ +class infra-ansible::profiles::gerrit { + class { '::gerrit': + mysql_password => hiera('gerrit_mysql_password'), + gerrit_auth_type => 'DEVELOPMENT_BECOME_ANY_ACCOUNT', + war => 'http://tarballs.openstack.org/ci/gerrit/gerrit-v2.10.2.23.039a170.war', + secondary_index =>true + } +} diff --git a/roles/bootstrap_puppetmaster/templates/puppet_profiles/jenkins.pp.j2 b/roles/bootstrap_puppetmaster/templates/puppet_profiles/jenkins.pp.j2 new file mode 100644 index 0000000..ebe0b62 --- /dev/null +++ b/roles/bootstrap_puppetmaster/templates/puppet_profiles/jenkins.pp.j2 @@ -0,0 +1,18 @@ +class infra-ansible::profiles::jenkins { + class { '::project_config': + url => 'git://git.openstack.org/openstack-infra/project-config' + } + + class { 'jenkins::job_builder': + url => 'http://localhost:8080', + username => 'gerrig', + password => hiera('jenkins_jobs_password'), + config_dir => $::project_config::jenkins_job_builder_config_dir, + require => $::project_config::config_dir + } + + class { 'jenkins::master': + jenkins_ssh_private_key => hiera('jenkins_ssh_private_key'), + jenkins_ssh_public_key => hiera('jenkins_ssh_public_key'), + } +} diff --git a/roles/bootstrap_puppetmaster/templates/puppet_profiles/zuul.pp.j2 b/roles/bootstrap_puppetmaster/templates/puppet_profiles/zuul.pp.j2 new file mode 100644 index 0000000..772e972 --- /dev/null +++ b/roles/bootstrap_puppetmaster/templates/puppet_profiles/zuul.pp.j2 @@ -0,0 +1,16 @@ +class infra-ansible::profiles::zuul { + class { '::project_config': + url => 'git://git.openstack.org/openstack-infra/project-config' + } + + class { '::zuul': + gerrit_server => '{{ groups['meta-infra_type_gerrit'][0] }}', + gerrit_user => 'gerrit', + zuul_ssh_private_key => hiera('zuul_ssh_private_key_contents'), + zuul_url => 'http://{{ groups['meta-infra_type_zuul'][0] }}/p', + } + + class { '::zuul::server': + layout_dir => $::project_config::zuul_layout_dir + } +} diff --git a/roles/bootstrap_puppetmaster/templates/puppet_roles/gerrit.pp.j2 b/roles/bootstrap_puppetmaster/templates/puppet_roles/gerrit.pp.j2 new file mode 100644 index 0000000..9fd72b4 --- /dev/null +++ b/roles/bootstrap_puppetmaster/templates/puppet_roles/gerrit.pp.j2 @@ -0,0 +1,3 @@ +class infra-ansible::roles::gerrit { + include infra-ansible::profiles::gerrit +} diff --git a/roles/bootstrap_puppetmaster/templates/puppet_roles/jenkins.pp.j2 b/roles/bootstrap_puppetmaster/templates/puppet_roles/jenkins.pp.j2 new file mode 100644 index 0000000..7562969 --- /dev/null +++ b/roles/bootstrap_puppetmaster/templates/puppet_roles/jenkins.pp.j2 @@ -0,0 +1,3 @@ +class infra-ansible::roles::jenkins { + include infra-ansible::profiles::jenkins +} diff --git a/roles/bootstrap_puppetmaster/templates/puppet_roles/zuul.pp.j2 b/roles/bootstrap_puppetmaster/templates/puppet_roles/zuul.pp.j2 new file mode 100644 index 0000000..4e93932 --- /dev/null +++ b/roles/bootstrap_puppetmaster/templates/puppet_roles/zuul.pp.j2 @@ -0,0 +1,3 @@ +class infra-ansible::roles::zuul { + include infra-ansible::profiles::zuul +} diff --git a/roles/bootstrap_puppetmaster/templates/zuul.yaml.j2 b/roles/bootstrap_puppetmaster/templates/zuul.yaml.j2 deleted file mode 100644 index 30fbc69..0000000 --- a/roles/bootstrap_puppetmaster/templates/zuul.yaml.j2 +++ /dev/null @@ -1,12 +0,0 @@ ---- -classes: - - project_config - - zuul - - zuul::server - -project_config::url: git://git.openstack.org/openstack-infra/project-config -zuul::gerrit_server: {{ groups['meta-infra_type_gerrit'][0] }} -zuul::gerrit_user: gerrit -zuul::zuul_ssh_private_key: "%{hiera(zuul_ssh_private_key_contents)}" -zuul::zuul_url: http://{{ groups['meta-infra_type_zuul'][0] }}/p -zuul::server::layout_dir: "%{::project_config::zuul_layout_dir}"