Skip to content

Instantly share code, notes, and snippets.

@markllama
Last active August 29, 2015 14:04
Show Gist options
  • Save markllama/77310acb8ea87ff806ed to your computer and use it in GitHub Desktop.
Save markllama/77310acb8ea87ff806ed to your computer and use it in GitHub Desktop.
A rudimenatry puppet script to install Pulp on Fedora 19 or RHEL6
if $::operatingsystem == 'Fedora' or $::operatingsystemmajrelease > 6 {
exec {'open firewall ports':
command => '/usr/bin/firewall-cmd --zone public --add-service http --add-service https ; /usr/bin/firewall-cmd --zone public --add-port 5671/tcp --add-port 5672/tcp'
}
} else {
exec {'open firewall ports':
command => '/usr/sbin/lokkit --service http --service https --port 5671:tcp --port 5672:tcp'
}
}
exec {'disable selinux':
command => '/usr/sbin/setenforce 0',
unless => '/usr/sbin/getenforce | grep Permissive'
}
package {'yum-utils': ensure => present }
if $::operatingsystem == "Fedora" {
exec {'create pulp repo':
command => '/usr/bin/curl -s -o /etc/yum.repos.d/pulp.repo http://repos.fedorapeople.org/repos/pulp/pulp/fedora-pulp.repo',
creates => '/etc/yum.repos.d/pulp.repo'
}
} else {
exec {'create pulp repo':
command => '/usr/bin/curl -s -o /etc/yum.repos.d/pulp.repo http://repos.fedorapeople.org/repos/pulp/pulp/rhel-pulp.repo',
creates => '/etc/yum.repos.d/pulp.repo'
}
}
exec {'disable pulp stable':
command => '/usr/bin/yum-config-manager --disable pulp-v2-stable',
require => [ Package['yum-utils'], Exec['create pulp repo'] ]
}
exec {'enable pulp beta':
command => '/usr/bin/yum-config-manager --enable pulp-v2-beta',
require => [ Package['yum-utils'], Exec['create pulp repo'] ]
}
if $::operatingsystem != 'Fedora' {
if $::operatingsystemmajrelease == 6 {
package {'epel-release':
ensure => present,
source => 'http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm'
}
} else {
if $::operatingsystemmajrelease == 7 {
package {'epel-release':
ensure => present,
source => 'rpm -Uvh http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm'
}
}
}
}
package {'mongodb': ensure => present }
package {'mongodb-server':
ensure => present
}
service {'mongod':
ensure => running,
enable => true
}
package {'qpid-cpp-server': ensure => present }
package {'python-qpid-qmf':
ensure => present,
require => Package['qpid-cpp-server']
}
package {'python-qpid':
ensure => present,
require => Package['qpid-cpp-server']
}
package {'qpid-tools': ensure => present,
require => Package['qpid-cpp-server']
}
if $::operatingsystem == 'Fedora' or $::operatingsystemmajrelease > 6 {
$qpidd_conf_file = '/etc/qpid/qpidd.conf'
exec {'disable qpidd auth':
command => "/usr/bin/sed -i '\$aauth=false' $qpidd_conf_file",
unless => "/usr/bin/grep -q auth=false $qpidd_conf_file",
require => Package['qpid-cpp-server']
}
} else {
$qpidd_conf_file = '/etc/qpidd.conf'
exec {'disable qpidd auth':
command => "/bin/sed -i 's/auth=yes/auth=no/' $qpidd_conf_file",
unless => "/bin/grep 'auth=no' $qpidd_conf_file",
require => Package['qpid-cpp-server']
}
}
service {'qpidd':
ensure => running,
enable => true,
require => Exec['disable qpidd auth']
}
package {'pulp-server':
ensure => present,
require => Exec['enable pulp beta']
}
package {'pulp-selinux': ensure => present, require => Package['pulp-server'] }
package {'pulp-rpm-plugins':
ensure => present,
require => Package['pulp-server']
}
package {'pulp-puppet-plugins':
ensure => present,
require => Package['pulp-server']
}
package {'git': ensure => present }
exec {'unpack pulp_docker':
command => '/usr/bin/git clone https://github.com/pulp/pulp_docker.git /opt/pulp_docker',
creates => '/opt/pulp_docker',
require => Package['git']
}
exec {'install pulp-docker-plugin':
cwd => '/opt/pulp_docker',
command => '/opt/pulp_docker/manage_setup_pys.sh develop',
require => Exec['unpack pulp_docker'],
#creates => '/usr/lib/python2.7/site-packages/pulp_docker_plugins-0.1.0-py2.7.egg'
creates => '/usr/lib/python2.7/site-packages/pulp-docker-extensions-admin.egg-link'
}
exec {'config pulp-docker plugin':
cwd => '/opt/pulp_docker',
command => '/opt/pulp_docker/pulp-dev.py -I',
require => Exec['install pulp-docker-plugin'],
creates => '/usr/lib/pulp/plugins/types/docker.json'
}
file {'/etc/pulp/vhosts80/blank.conf':
ensure => present,
require => Package['pulp-server']
}
exec {'initialize pulp database':
command => '/usr/bin/pulp-manage-db',
user => 'apache',
require => [ Service['mongod'], Service['qpidd'],
Package['qpid-tools'], Exec['config pulp-docker plugin']],
unless => '/usr/bin/echo "show dbs" | mongo --quiet | grep -q pulp_database'
}
service {'httpd':
enable => true,
ensure => running,
require => Exec['initialize pulp database']
}
service {'pulp_workers':
enable => true,
ensure => running,
require => [Package['pulp-server'], Service[httpd]]
}
service {'pulp_resource_manager':
enable => true,
ensure => running,
require => Service['pulp_workers']
}
service {'pulp_celerybeat':
enable => true,
ensure => running,
}
package {'pulp-admin-client': ensure => present }
package {'pulp-puppet-admin-extensions': ensure => present }
package {'pulp-rpm-admin-extensions': ensure => present }
exec {'set pulp admin server':
command => "/usr/bin/sed -i -e '/host\s*=/s/=.*$/= ${hostname}/' /etc/pulp/admin/admin.conf",
unless => "/usr/bin/grep -q '${hostname}' /etc/pulp/admin/admin.conf"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment