anvil/conf/distros/rhel.yaml

529 lines
19 KiB
YAML

---
# RedHat Enterprise Linux 6.0+
name: rhel
platform_pattern: redhat(.*)
packager_name: anvil.packaging.yum:YumPackager
commands:
apache:
name: httpd
restart: service httpd restart
start: service httpd start
status: service httpd status
stop: service httpd stop
git:
checkout: git checkout
clone: git clone
libvirt:
restart: service libvirtd restart
status: service libvirtd status
# This is just used to check that libvirt will work with a given protocol
verify: virsh -c $VIRT_PROTOCOL uri
mysql:
# NOTE: we aren't stopping any sql injection...
create_db: mysql --user=$USER --password=$PASSWORD -e
"CREATE DATABASE $DB CHARACTER SET $CHARACTER_SET;"
drop_db: mysql --user=$USER --password=$PASSWORD -e
"DROP DATABASE IF EXISTS $DB;"
grant_all: mysql --user=$USER --password=$PASSWORD -e
"GRANT ALL PRIVILEGES ON *.* TO '$USER'@'%' IDENTIFIED BY '$PASSWORD'; FLUSH PRIVILEGES;"
restart: service mysqld restart
set_pwd: mysql --user=$USER --password=$OLD_PASSWORD -e
"USE mysql; UPDATE user SET password=PASSWORD('$NEW_PASSWORD') WHERE User='$USER'; FLUSH PRIVILEGES;"
start: service mysqld start
status: service mysqld status
stop: service mysqld stop
# Pip command varies depending on the distro
pip: pip-python
# Commands used when setting up python projects
python:
setup: python setup.py develop
unsetup: python setup.py develop --uninstall
# Where component symlinks will go, the component name will become a directory
# under this directory where its configuration files will be connected to there
# actual location.
base_link_dir: /etc
rabbit-mq:
change_password: rabbitmqctl change_password
restart: service rabbitmq-server restart
start: service rabbitmq-server start
status: service rabbitmq-server status
stop: service rabbitmq-server stop
components:
cinder-client:
action_classes:
install: anvil.components:PythonInstallComponent
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components:PythonTestingComponent
uninstall: anvil.components:PythonUninstallComponent
db:
action_classes:
install: anvil.distros.rhel:DBInstaller
package: anvil.packaging.rpm:DependencyPackager
running: anvil.components.db:DBRuntime
test: anvil.components:EmptyTestingComponent
uninstall: anvil.components.db:DBUninstaller
packages:
- name: mysql
- name: mysql-server
general:
action_classes:
install: anvil.components.pkglist:Installer
package: anvil.packaging.rpm:DependencyPackager
running: anvil.components:EmptyRuntime
test: anvil.components:EmptyTestingComponent
uninstall: anvil.components.pkglist:Uninstaller
packages:
# Shared system packages
- name: coreutils
removable: false
- name: curl
removable: false
- name: dnsmasq-utils
removable: false
- name: euca2ools
- name: gawk
removable: false
- name: git
removable: false
- name: iputils
removable: false
# Needed to build the newer lxml version used by nova
- name: libxml2-devel
removable: false
- name: libxslt-devel
removable: false
- name: lsof
removable: false
- name: mlocate
removable: false
- name: openssh-server
removable: false
- name: psmisc
removable: false
- name: sudo
removable: false
- name: tcpdump
removable: false
- name: unzip
removable: false
- name: wget
removable: false
# Shared python packages
- name: python
removable: false
- name: python-devel
removable: false
- name: python-distutils-extra
removable: false
- name: python-setuptools
removable: false
pip_to_package:
# Shared pypi packages + their package information.
# Packages is what is really used for installation (the pypi name
# is just for matching since the general section is not python code).
- name: pylint
package:
name: pylint
removable: false
- name: anyjson
package:
name: python-anyjson
- name: argparse
package:
name: python-argparse
removable: false
- name: babel
package:
name: python-babel
- name: cmd2
package:
name: python-cmd2
- name: eventlet
package:
name: python-eventlet
- name: greenlet
package:
name: python-greenlet
- name: httplib2
package:
name: python-httplib2
removable: false
- name: iso8601
package:
name: python-iso8601
- name: lockfile
package:
name: python-lockfile
- name: mock
package:
name: python-mock
- name: mox
package:
name: python-mox
- name: netaddr
package:
name: python-netaddr
- name: nose
package:
name: python-nose1.1
packager_name: anvil.distros.rhel:YumPackagerWithRelinks
packager_options:
links:
- source: "/usr/lib/python2.6/site-packages/nose-1*-py2.6.egg/nose"
target: "/usr/lib/python2.6/site-packages/nose"
- source: "/usr/bin/nosetests1.1"
target: "/usr/bin/nosetests"
- name: passlib
package:
name: python-passlib
- name: paste
package:
name: python-paste
- name: pastedeploy
package:
name: python-paste-deploy1.5
packager_name: anvil.distros.rhel:YumPackagerWithRelinks
packager_options:
links:
- source: "/usr/lib/python2.6/site-packages/PasteDeploy-1.5*-py2.6.egg/paste/deploy"
target: "/usr/lib/python2.6/site-packages/paste/deploy"
- name: pip
package:
name: python-pip
removable: false
- name: pyparsing
package:
name: pyparsing
removable: false
- name: routes
package:
name: python-routes1.12
packager_name: anvil.distros.rhel:YumPackagerWithRelinks
packager_options:
links:
- source: "/usr/lib/python2.6/site-packages/Routes-1.*-py2.6.egg/routes"
target: "/usr/lib/python2.6/site-packages/routes"
- name: simplejson
package:
name: python-simplejson
- name: sphinx
package:
name: python-sphinx10
packager_name: anvil.distros.rhel:YumPackagerWithRelinks
packager_options:
links:
- source: "/usr/bin/sphinx-1.0-build"
target: "/usr/bin/sphinx-build"
- source: "/usr/bin/sphinx-1.0-quickstart"
target: "/usr/bin/sphinx-quickstart"
- source: "/usr/bin/sphinx-1.0-autogen"
target: "/usr/bin/sphinx-autogen"
- name: unittest2
package:
name: python-unittest2
removable: false
- name: webob
package:
name: python-webob1.0
# Need to relink it so that it will work without modifications
# Since new packages in rhel must never use the same names
# as previous ones (this overrides that)
packager_name: anvil.distros.rhel:YumPackagerWithRelinks
packager_options:
links:
- source: "/usr/lib/python2.6/site-packages/WebOb-*-py2.6.egg/webob/"
target: "/usr/lib/python2.6/site-packages/webob"
pips:
# Pips that aren't packages yet (or versions aren't right...)
- name: coverage
- name: distribute
removable: false
- name: lxml
version: "2.3.5"
options: # Force it to upgrade if its there already
# but versions are miss-matched
- "-U"
removable: false
- name: nose-exclude
- name: nosehtmloutput
- name: openstack.nose_plugin
- name: pep8 # The rhel version appears to not be new enough...
- name: prettytable
version: "0.6.1"
- name: pycrypto
version: "2.6"
options: # Force it to upgrade if its there already
# but versions are miss-matched
- "-U"
removable: false
- name: requests
# Need this or nova pukes with 'Did not recognize type 'BIGINT' of column 'bw_in''
- name: sqlalchemy
version: "0.7.9"
options: # Force it to upgrade if its there already
# but versions are miss-matched
- "-U"
- name: sqlalchemy-migrate
- name: testtools # Seems like the version in rhel is to old...
glance:
action_classes:
install: anvil.components.glance:GlanceInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components.glance:GlanceRuntime
test: anvil.components.glance:GlanceTester
uninstall: anvil.components.glance:GlanceUninstaller
# When parsing 'tools/pip-requires' and
# 'tools/test-requires' (if they exist)
# the following map will be used to translate names
# and versions inside those files into distribution
# package names equivalents (if possible)
pip_to_package:
- name: pyOpenSSL
package:
name: pyOpenSSL
- name: jsonschema
package:
name: python-jsonschema
- name: pysendfile
package:
name: pysendfile
- name: kombu
package:
# Only needed for notifications???
name: python-kombu
packages:
- name: MySQL-python
pips:
# Pips that aren't packages yet (and not in the 'general' section)
- name: boto
version: "2.1.1"
- name: wsgiref
- name: xattr # Seems to be only in test-requires
glance-client:
action_classes:
install: anvil.components.glance_client:GlanceClientInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components.glance_client:GlanceClientTester
uninstall: anvil.components:PythonUninstallComponent
pip_to_package:
- name: pyOpenSSL
package:
name: pyOpenSSL
- name: warlock
package:
name: python-warlock
pips:
- name: nosexcover # Seems to be only in test-requires
- name: setuptools-git # Seems to be only in test-requires
horizon:
action_classes:
install: anvil.distros.rhel:HorizonInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components.horizon:HorizonRuntime
test: anvil.components:PythonTestingComponent
uninstall: anvil.components.horizon:HorizonUninstaller
pip_to_package:
- name: django
package:
name: Django14
- name: django-compressor
package:
name: python-django-compressor
- name: django-nose
package:
name: python-django-nose
- name: pytz
package:
name: pytz
packages:
- name: httpd
- name: mod_wsgi
- name: nodejs
- name: nodejs-compat-symlinks
- name: npm
pips:
- name: django-openstack-auth
- name: nosexcover
- name: selenium
keystone:
action_classes:
install: anvil.components.keystone:KeystoneInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components.keystone:KeystoneRuntime
test: anvil.components.keystone:KeystoneTester
uninstall: anvil.components.keystone:KeystoneUninstaller
packages:
- name: MySQL-python
pip_to_package:
- name: netifaces
package:
name: python-netifaces
pips:
- name: pam
version: '0.1.4'
- name: nosexcover
- name: webtest # This version in package form conflicts with webob1.0
keystone-client:
action_classes:
install: anvil.components:PythonInstallComponent
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components:PythonTestingComponent
uninstall: anvil.components:PythonUninstallComponent
nova:
action_classes:
install: anvil.distros.rhel:NovaInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components.nova:NovaRuntime
test: anvil.components.nova:NovaTester
uninstall: anvil.components.nova:NovaUninstaller
packages:
- name: MySQL-python
# Helpful utilities/core
# system requirements
- name: dnsmasq
removable: false
- name: ebtables
removable: false
- name: iptables
removable: false
- name: iputils
removable: false
- name: kpartx
removable: false
- name: parted
removable: false
- name: sqlite
removable: false
- name: vconfig
removable: false
pip_to_package:
- name: amqplib
package:
name: python-amqplib
- name: suds
package:
name: python-suds
- name: paramiko
package:
name: python-paramiko
- name: feedparser
package:
name: python-feedparser
- name: MySQL-python
package:
name: MySQL-python
pips:
- name: Cheetah
version: "2.4.4"
- name: fixtures # Seems for testing only
subsystems:
compute:
packages:
- name: fuse # Needed for mounting
removable: false
- name: guestfish
removable: false
- name: iscsi-initiator-utils
removable: false
- name: libguestfs
removable: false
- name: libguestfs-mount
removable: false
- name: libguestfs-tools
removable: false
- name: libvirt
removable: false
- name: libvirt-client
removable: false
- name: libvirt-python
removable: false
- name: qemu-img
removable: false
- name: qemu-kvm
removable: false
volume:
packages:
- name: iscsi-initiator-utils
removable: false
- name: lvm2
removable: false
- name: scsi-target-utils
removable: false
nova-client:
action_classes:
install: anvil.components:PythonInstallComponent
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components:PythonTestingComponent
uninstall: anvil.components:PythonUninstallComponent
no-vnc:
action_classes:
install: anvil.components.novnc:NoVNCInstaller
package: anvil.components:EmptyPackagingComponent
running: anvil.components.novnc:NoVNCRuntime
test: anvil.components:EmptyTestingComponent
uninstall: anvil.components.novnc:NoVNCUninstaller
packages:
- name: python-websockify
openstack-client:
action_classes:
install: anvil.components.openstack_client:OpenStackClientInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components.openstack_client:OpenStackClientTester
uninstall: anvil.components:PythonUninstallComponent
pip_to_package:
- name: cliff
package:
name: python-cliff
- name: keyring
package:
name: python-keyring
quantum-client:
action_classes:
install: anvil.components:PythonInstallComponent
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components:PythonTestingComponent
uninstall: anvil.components:PythonUninstallComponent
pip_to_package:
- name: cliff
package:
name: python-cliff
pips:
- name: cliff-tablib
rabbit-mq:
action_classes:
install: anvil.components.rabbit:RabbitInstaller
package: anvil.packaging.rpm:DependencyPackager
running: anvil.distros.rhel:RabbitRuntime
test: anvil.components:EmptyTestingComponent
uninstall: anvil.components.rabbit:RabbitUninstaller
packages:
- name: rabbitmq-server
pre-install:
- cmd:
- service
- qpidd
- stop
ignore_failure: true
run_as_root: true
- cmd:
- chkconfig
- qpidd
- 'off'
ignore_failure: true
run_as_root: true
swift-client:
action_classes:
install: anvil.components.swift_client:SwiftClientInstaller
package: anvil.packaging.rpm:PythonPackager
running: anvil.components:EmptyRuntime
test: anvil.components:PythonTestingComponent
uninstall: anvil.components:PythonUninstallComponent
...