Browse Source

More puppetry and inventory cleanups

This cleans up ask-staging which hasn't been a thing in a log time.
We remove some puppet stubs for nodepool builders (they are all ansible
now).

We also cleanup the inventory file to remove corvustest, lists-dev,
pbx, mirror-update*.openstack.org (is opendev.org now), and sort the
LE list.

Change-Id: I8da025640e16bf6e8aca1eb6ec7799d26bd03f12
changes/06/793506/1
Clark Boylan 2 months ago
parent
commit
399ade787b
  1. 8
      doc/source/askbot.rst
  2. 15
      inventory/service/groups.yaml
  3. 42
      manifests/site.pp
  4. 134
      modules/openstack_project/manifests/ask_staging.pp

8
doc/source/askbot.rst

@ -12,12 +12,10 @@ At a Glance
:Hosts:
* https://ask.openstack.org
* https://ask-staging.openstack.org
:Puppet:
* https://opendev.org/opendev/puppet-askbot
* https://github.com/vamsee/puppet-solr
* :git_file:`modules/openstack_project/manifests/ask.pp`
* :git_file:`modules/openstack_project/manifests/ask-staging.pp`
:Projects:
* https://askbot.com
* http://lucene.apache.org/solr
@ -30,12 +28,6 @@ The site ask.openstack.org based on the officially released askbot pip distribut
The stable deployment is extended with a custom OpenStack theme available at
https://opendev.org/opendev/askbot-theme.
The ask-staging.openstack.org site based on master branch of
https://github.com/askbot/askbot-devel repository, and deploys askbot
directly from github and consume the openstack theme from
openstack-infra/askbot-theme repository. The staging site is using
python virtualenv for proper pip dependency handling.
System Architecture
===================

15
inventory/service/groups.yaml

@ -43,9 +43,7 @@ groups:
control-plane-clouds:
- bridge.openstack.org
disabled:
- corvustest
- idp.openstackid.org
- lists-dev01.openstack.org
- wiki-dev01.openstack.org
- wiki-upgrade-test.openstack.org
dns:
@ -89,20 +87,20 @@ groups:
- etherpad[0-9]*.opendev.org
- ethercalc[0-9]*.open*.org
- gitea[0-9]*.opendev.org
- graphite[0-9]*.opendev.org
- grafana[0-9]*.opendev.org
- graphite[0-9]*.opendev.org
- insecure-ci-registry[0-9]*.opendev.org
- meetpad[0-9]*.opendev.org
- mirror[0-9]*.opendev.org
- nb[0-9]*.opendev.org
- openstackid[0-9]*.openstack.org
- refstack[0-9]*.openstack.org
- review[0-9]*.open*.org
- review-test.opendev.org
- static[0-9]*.opendev.org
- storyboard[0-9]*.opendev.org
- translate[0-9]*.open*.org
- zuul[0-9]*.opendev.org
- refstack[0-9]*.openstack.org
logstash:
- logstash[0-9]*.open*.org
logstash-worker:
@ -132,24 +130,19 @@ groups:
- openstackid[0-9]*.openstack.org
paste:
- paste[0-9]*.open*.org
pbx:
- pbx[0-9]*.opendev.org
puppet:
- ask*.open*.org
- cacti[0-9]*.open*.org
- corvustest
- eavesdrop[0-9]*.open*.org
- elasticsearch[0-9]*.open*.org
- ethercalc[0-9]*.open*.org
- health[0-9]*.openstack.org
- logstash-worker[0-9]*.open*.org
- logstash[0-9]*.open*.org
- mirror-update[0-9]*.openstack.org
- openstackid-dev*.openstack.org
- openstackid.org
- openstackid[0-9]*.openstack.org
- paste[0-9]*.open*.org
- pbx[0-9]*.opendev.org
- status*.open*.org
- storyboard-dev[0-9]*.opendev.org
- storyboard[0-9]*.opendev.org
@ -160,20 +153,16 @@ groups:
- wiki[0-9]*.openstack.org
puppet4:
- ask*.open*.org
- ask-staging[0-9]*.open*.org
- cacti[0-9]*.open*.org
- eavesdrop[0-9]*.open*.org
- elasticsearch[0-9]*.open*.org
- ethercalc[0-9]*.open*.org
- health[0-9]*.openstack.org
- lists-dev[0-9]*.open*.org
- logstash-worker[0-9]*.open*.org
- logstash[0-9]*.open*.org
- mirror-update[0-9]*.openstack.org
- openstackid[0-9]*.openstack.org
- openstackid-dev[0-9]*.openstack.org
- paste[0-9]*.open*.org
- pbx[0-9]*.opendev.org
- status*.open*.org
- storyboard[0-9]*.opendev.org
- storyboard-dev[0-9]*.opendev.org

42
manifests/site.pp

@ -215,38 +215,6 @@ node /^status\d*\.open.*\.org$/ {
}
}
# Node-OS: xenial
node /^nb\d+\.open.*\.org$/ {
$group = 'nodepool'
class { 'openstack_project::server': }
include openstack_project
class { '::openstackci::nodepool_builder':
nodepool_ssh_public_key => hiera('zuul_worker_ssh_public_key_contents'),
vhost_name => $::fqdn,
enable_build_log_via_http => true,
project_config_repo => 'https://opendev.org/openstack/project-config',
statsd_host => 'graphite.opendev.org',
upload_workers => '16',
revision => 'master',
python_version => 3,
zuulv3 => true,
ssl_cert_file => '/etc/ssl/certs/ssl-cert-snakeoil.pem',
ssl_key_file => '/etc/ssl/private/ssl-cert-snakeoil.key',
}
cron { 'mirror_gitgc':
user => 'nodepool',
hour => '20',
minute => '0',
command => 'find /opt/dib_cache/source-repositories/ -type d -name "*.git" -exec git --git-dir="{}" gc \; >/dev/null',
environment => 'PATH=/usr/bin:/bin:/usr/sbin:/sbin',
require => Class['::openstackci::nodepool_builder'],
}
}
# Node-OS: xenial
node /^openstackid\d*(\.openstack)?\.org$/ {
$group = "openstackid"
@ -365,16 +333,6 @@ node /^ask\d*\.open.*\.org$/ {
}
}
# Node-OS: xenial
node /^ask-staging\d*\.open.*\.org$/ {
class { 'openstack_project::server': }
class { 'openstack_project::ask_staging':
db_password => hiera('ask_staging_db_password'),
redis_password => hiera('ask_staging_redis_password'),
}
}
# Node-OS: xenial
node /^translate\d+\.open.*\.org$/ {
$group = "translate"

134
modules/openstack_project/manifests/ask_staging.pp

@ -1,134 +0,0 @@
# == Class: openstack_project::ask_dev
#
# ask-staging.openstack.org Q&A support website
#
class openstack_project::ask_staging (
$db_password,
$redis_password,
$db_name = 'askbotdb',
$db_user = 'ask',
$redis_port = '6378',
$redis_max_memory = '512m',
$redis_bind = '127.0.0.1',
$solr_version = '4.10.4'
) {
file { '/srv/dist':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
}
# solr search engine
file { '/srv/dist/solr':
ensure => directory,
owner => 'root',
group => 'root',
mode => '0755',
require => File['/srv/dist'],
}
class { 'solr':
mirror => 'https://archive.apache.org/dist/lucene/solr',
version => $solr_version,
cores => [ 'core-default', 'core-en', 'core-zh' ],
dist_root => '/srv/dist/solr',
require => File['/srv/dist/solr'],
}
file { '/usr/share/solr/core-en/conf/schema.xml':
ensure => present,
content => template('openstack_project/askbot/schema.en.xml.erb'),
replace => true,
owner => 'jetty',
group => 'jetty',
mode => '0644',
require => File['/usr/share/solr/core-zh/conf'],
}
file { '/usr/share/solr/core-zh/conf/schema.xml':
ensure => present,
content => template('openstack_project/askbot/schema.cn.xml.erb'),
replace => true,
owner => 'jetty',
group => 'jetty',
mode => '0644',
require => File['/usr/share/solr/core-en/conf'],
}
# deploy smartcn Chinese analyzer from solr contrib/analysys-extras
file { "/usr/share/solr/WEB-INF/lib/lucene-analyzers-smartcn-${solr_version}.jar":
ensure => present,
replace => 'no',
source => "/srv/dist/solr/solr-${solr_version}/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-${solr_version}.jar",
owner => 'root',
group => 'root',
mode => '0644',
require => Exec['copy-solr'],
}
# postgresql database
class { 'postgresql::server': }
postgresql::server::db { $db_name:
user => $db_user,
password => postgresql_password($db_user, $db_password),
}
# redis cache
class { 'redis':
redis_port => $redis_port,
redis_max_memory => $redis_max_memory,
redis_bind => $redis_bind,
redis_password => $redis_password,
version => '2.8.4',
before => Class['askbot'],
}
# askbot site
class { 'askbot':
askbot_branch => '0.7.x',
db_provider => 'pgsql',
db_name => $db_name,
db_user => $db_user,
db_password => $db_password,
redis_enabled => true,
redis_port => $redis_port,
redis_max_memory => $redis_max_memory,
redis_bind => $redis_bind,
redis_password => $redis_password,
custom_theme_enabled => true,
custom_theme_name => 'os',
site_name => 'ask-staging.openstack.org',
askbot_debug => true,
solr_enabled => true,
site_ssl_enabled => true,
site_ssl_cert_file => '/etc/ssl/certs/ssl-cert-snakeoil.pem',
site_ssl_key_file => '/etc/ssl/private/ssl-cert-snakeoil.key',
template_settings => 'openstack_project/askbot/settings.py-staging.erb',
}
# askbot-theme openstack theme
git { 'askbot-theme':
ensure => present,
path => '/srv/askbot-site/themes',
branch => 'feature/development',
origin => 'https://opendev.org/opendev/askbot-theme',
latest => true,
require => [
File['/srv/askbot-site'], Package['git']
],
before => Exec['askbot-syncdb'],
notify => [
Exec['theme-bundle-install-os'],
Exec['theme-bundle-compile-os'],
Exec['askbot-static-generate'],
],
}
askbot::theme::compass { 'os':
require => Git['askbot-theme'],
before => Exec['askbot-static-generate'],
}
}
Loading…
Cancel
Save