diff --git a/Cheffile b/Cheffile index ee39d22..d23877f 100644 --- a/Cheffile +++ b/Cheffile @@ -3,21 +3,29 @@ site 'http://community.opscode.com/api/v1' -cookbook 'ntp', '1.2.0' -cookbook 'openssh', '1.1.0' -cookbook 'apt', '1.5.0' -cookbook 'yum', '1.0.0' -cookbook 'build-essential', '1.1.2' -cookbook 'erlang', '1.1.0' +cookbook 'apache2', '1.4.2' +cookbook 'apt', '1.8.0' +cookbook 'aws', '0.100.6' +cookbook 'build-essential', '1.3.2' +cookbook 'ntp', '1.3.2' +cookbook 'openssh', '1.1.2' cookbook 'openssl', '1.0.0' -cookbook 'postgresql', '1.0.0' -cookbook 'aws', '0.100.2' -cookbook 'xfs', '1.0.0' -cookbook 'database', '1.3.6' -cookbook 'mysql', '1.3.0' -cookbook 'rabbitmq', '1.6.4' -cookbook 'apache2', '1.2.0' -cookbook 'selinux', '0.5.2' +cookbook 'postgresql', '2.1.0' +cookbook 'selinux', '0.5.4' +cookbook 'xfs', '1.1.0' +cookbook 'yum', '2.0.6' +cookbook 'erlang', '1.1.2' +cookbook 'mysql', '2.1.0' +cookbook 'rabbitmq', '1.8.0' +cookbook 'database', '1.3.10' + +cookbook 'omnibus_updater', '0.1.0' +cookbook 'lxc', '0.1.0' + +cookbook 'keystone', '2012.1.1' +cookbook 'glance', '2012.1.1' +cookbook 'nova', '2012.1.1' +cookbook 'horizon', '2012.1.1' cookbook 'sysctl', :git => 'https://github.com/mattray/sysctl.git' @@ -31,22 +39,6 @@ cookbook 'rabbitmq-openstack', cookbook 'mysql-openstack', :git => 'https://github.com/mattray/mysql-openstack.git' -cookbook 'keystone', - :git => 'https://github.com/mattray/keystone.git', - :ref => '2012.1.0' - -cookbook 'glance', - :git => 'https://github.com/mattray/glance.git', - :ref => '2012.1.0' - -cookbook 'nova', - :git => 'https://github.com/mattray/nova.git', - :ref => '2012.1.0' - -cookbook 'horizon', - :git => 'https://github.com/mattray/horizon.git', - :ref => '2012.1.0' - # cookbook 'swift', # :git => 'https://github.com/mattray/swift.git', # :ref => 'essex' diff --git a/Cheffile.lock b/Cheffile.lock index 3d38104..91f9c99 100644 --- a/Cheffile.lock +++ b/Cheffile.lock @@ -1,81 +1,37 @@ SITE remote: http://community.opscode.com/api/v1 specs: - apache2 (1.2.0) - apt (1.5.0) - aws (0.100.2) - build-essential (1.1.2) - database (1.3.6) + apache2 (1.4.2) + apt (1.8.0) + aws (0.100.6) + build-essential (1.3.2) + database (1.3.10) aws (>= 0.0.0) mysql (>= 1.3.0) postgresql (>= 1.0.0) xfs (>= 0.0.0) - erlang (1.1.0) + erlang (1.1.2) yum (>= 0.5.0) - mysql (1.3.0) - build-essential (>= 0.0.0) - openssl (>= 0.0.0) - ntp (1.2.0) - openssh (1.1.0) - openssl (1.0.0) - postgresql (1.0.0) - openssl (>= 0.0.0) - rabbitmq (1.6.4) - apt (>= 1.4.4) - erlang (>= 0.9) - yum (>= 0.5.0) - selinux (0.5.2) - xfs (1.0.0) - yum (1.0.0) - -GIT - remote: https://github.com/mattray/glance.git - ref: 2012.1.0 - sha: 8d6411d0d1fbb7265935a56cedf40300e8a58dc4 - specs: - glance (2012.1.0) + glance (2012.1.1) database (>= 0.0.0) keystone (>= 0.0.0) mysql (>= 0.0.0) osops-utils (>= 0.0.0) - -GIT - remote: https://github.com/mattray/horizon.git - ref: 2012.1.0 - sha: c0039f7b06e5a318614dc9fe754ab9a6e0e58cb8 - specs: - horizon (2012.1.0) + horizon (2012.1.1) apache2 (>= 0.0.0) database (>= 0.0.0) mysql (>= 0.0.0) osops-utils (>= 0.0.0) - -GIT - remote: https://github.com/mattray/keystone.git - ref: 2012.1.0 - sha: f97b7fae31397fc212b9e84c768317ab4347e319 - specs: - keystone (2012.1.0) + keystone (2012.1.1) database (>= 0.0.0) mysql (>= 0.0.0) osops-utils (>= 0.0.0) - -GIT - remote: https://github.com/mattray/mysql-openstack.git - ref: master - sha: 6a47b59b55bc8297775e0b81db4e38a6bfce3aab - specs: - mysql-openstack (1.0.4) - database (>= 0.0.0) - mysql (>= 0.0.0) - osops-utils (>= 0.0.0) - -GIT - remote: https://github.com/mattray/nova.git - ref: 2012.1.0 - sha: 1a28ce95edd4181fbdd7e75b75ec82f9fe3be371 - specs: - nova (2012.1.0) + lxc (0.1.0) + omnibus_updater (>= 0.0.0) + mysql (2.1.0) + build-essential (>= 0.0.0) + openssl (>= 0.0.0) + nova (2012.1.1) apt (>= 0.0.0) database (>= 0.0.0) glance (>= 0.0.0) @@ -87,6 +43,29 @@ GIT selinux (>= 0.0.0) sysctl (>= 0.0.0) yum (>= 0.0.0) + ntp (1.3.2) + omnibus_updater (0.1.0) + openssh (1.1.2) + openssl (1.0.0) + postgresql (2.1.0) + openssl (>= 0.0.0) + rabbitmq (1.8.0) + apt (>= 1.4.4) + erlang (>= 0.9) + yum (>= 0.5.0) + selinux (0.5.4) + xfs (1.1.0) + yum (2.0.6) + +GIT + remote: https://github.com/mattray/mysql-openstack.git + ref: master + sha: 6a47b59b55bc8297775e0b81db4e38a6bfce3aab + specs: + mysql-openstack (1.0.4) + database (>= 0.0.0) + mysql (>= 0.0.0) + osops-utils (>= 0.0.0) GIT remote: https://github.com/mattray/osops-utils.git @@ -114,27 +93,28 @@ GIT sysctl (0.1.0) DEPENDENCIES - apache2 (= 1.2.0) - apt (= 1.5.0) - aws (= 0.100.2) - build-essential (= 1.1.2) - database (= 1.3.6) - erlang (= 1.1.0) - glance (>= 0) - horizon (>= 0) - keystone (>= 0) - mysql (= 1.3.0) + apache2 (= 1.4.2) + apt (= 1.8.0) + aws (= 0.100.6) + build-essential (= 1.3.2) + database (= 1.3.10) + erlang (= 1.1.2) + glance (= 2012.1.1) + horizon (= 2012.1.1) + keystone (= 2012.1.1) + lxc (= 0.1.0) + mysql (= 2.1.0) mysql-openstack (>= 0) - nova (>= 0) - ntp (= 1.2.0) - openssh (= 1.1.0) + nova (= 2012.1.1) + ntp (= 1.3.2) + openssh (= 1.1.2) openssl (= 1.0.0) osops-utils (>= 0) - postgresql (= 1.0.0) - rabbitmq (= 1.6.4) + postgresql (= 2.1.0) + rabbitmq (= 1.8.0) rabbitmq-openstack (>= 0) - selinux (= 0.5.2) + selinux (= 0.5.4) sysctl (>= 0) - xfs (= 1.0.0) - yum (= 1.0.0) + xfs (= 1.1.0) + yum (= 2.0.6) diff --git a/README.md b/README.md index a180efa..fe03c6b 100644 --- a/README.md +++ b/README.md @@ -2,11 +2,9 @@ Description =========== This repository contains the roles, environments and data bags for deploying an OpenStack **Essex** reference architecture using Chef. This currently includes the 5 OpenStack core projects: Nova, Glance, Keystone, Horizon and Swift(under development). Folsom development will begin very soon. -Please use this `essex` branch to get the latest stable release. Once **Folsom** work is started, the `essex` branch will be merged back to the `master` branch and that will become active again. +Please use the `2012.1.1` tag to get the latest `essex` release. Once **Folsom** work was started, the `essex` branch was merged back to the `master` branch. If you need further `essex` development after **Folsom** work has started, we can branch off of the tag. -The documentation has been moved to the https://github.com/mattray/openstack-chef-docs repository. A public URL will be available soon, but instructions for building the docs are included and you can visit a temporary site here: - -http://15.185.230.54/ +The documentation has been moved to the https://github.com/mattray/openstack-chef-docs repository. A public URL will be available soon, but instructions for building the docs are included. This repository uses Librarian (https://github.com/applicationsonline/librarian) to manage downloading all of the proper cookbook versions, whether from Git or from the Opscode Community site (https://community.opscode.com). The preference is to eventually publish all of the cookbook dependencies to the Opscode Community site. @@ -29,7 +27,7 @@ spiceweasel infrastructure.yml To actually deploy the repository to your Chef server, run the following command: ``` -spiceweasel infrastructure.yml | sh +spiceweasel -e infrastructure.yml ``` Cookbooks diff --git a/TODO.org b/TODO.org index 4a9ee3b..474ffb9 100644 --- a/TODO.org +++ b/TODO.org @@ -1,13 +1,32 @@ * Roadmap ** docs +** PR merge ** rcbops iteration merge ** at&t pull requests ** osops-utils merges -** ohai dependencies -** nova-networking vlan support (jay pipes) ** enable floating IPs + . openrc + nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 + nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 + + ???add promiscuous mode to interfaces + nova-manage floating create --ip_range=10.0.111.128/25 -** lxc- calxeda + + nova-manage floating create --ip_range=10.0.111.128/27 + nova-manage floating create --ip_range=10.0.111.160/27 + nova-manage floating create --ip_range=10.0.111.192/27 + + allocate the IPs + + knife openstack server create -a -f2 -Ie8f5466d-a532-4b13-b975-0c885dd5e341 -S local -x ubuntu -i ~/.ssh/local.pem -d hypnotoad + + vms have both IPs and can ping both + host machine + remote machines + + The nova-network service can be configured to automatically allocate and assign a floating IP address to virtual instances when they are launched. Add the following line to nova.conf and restart the nova-network service + auto_assign_floating_ip=True ** Folsom Carl Perry's repos If you want to help out with the testing and reporting of bugs on your 12.04 servers, you will want the following in your /etc/apt/sources.list: @@ -20,11 +39,9 @@ ** Cinder DreamHost?/Ceph ** Swift - ** PostgreSQL DreamHost & Qualcomm ** Hyper-V - November at the OpenStack hack day ** HA OpenStack follow official documentation pacemaker cookbook, pacemaker_service LWRP @@ -32,7 +49,6 @@ RabbitMQ clustered? ** Horizon-Skin cookbook after horizon removes the default skin, let's add a cookbook for passing a logo or something - ** Ceilometer ** Baremetal calxeda working towards it @@ -46,26 +62,21 @@ /dev/sdb? apt-get install tgt open-iscsi open-iscsi-utils ? service tgt start? - ** rabbitmq-server rename to "messaging" role - waiting on 1.5.2 with http://tickets.opscode.com/browse/COOK-1496 is rabbit too brittle? Is Qpid a better longterm solution? - rackspace is sending a rabbitmq::distro recipe ** foodcritic all the cookbooks sure would be nice if you could turn off individual rules within a recipe ** TravisCI MVT testing ** Test-Kitchen + now has OpenStack support ** mysql-master need to switch to using a "database" role and the database cookbook - mysql having issues with 12.04 and omnibus is the cookbook too brittle? rackspace proposes a simplified replacement mmm-support or a slave recipe ** keystone - removed monitoring understand use of osops why is there a sleep? - tag and release 5.0.0 gotta think Fog is a better solution to some of the Keystone manipulations need a keystone:client to wrap python-keystone, hopefully won't have to install keystone and specifically disable the service @@ -88,34 +99,24 @@ ** swift compare with other implementations make documentation more consistent with other cookbooks - tag and release 5.0.0 ** there are a lot of :upgrades for packages rather than :install, let's clean that up. ** verify still need patch for nova-scheduler ** does search make sense for things like nova::common if you have 1000 compute nodes? would a data bag be cleaner? perhaps a notification handler that automatically updates it? as soon as the new search syntax is supported, switch to that (available now) ** Document source of packages for all repos and break out to make them interchangeable - ** librarian-chef for spiceweasel ** remotefilemirror->pxe_dust and others? ** Should we add kong and exerstack to the repo so people can validate their deployments? -** Support multiple nova-network topologies - right now just doing FlatDHCP ** base role remove validator.pem? chef-client? -** default security group - enable SSH and ICMP ping - euca-authorize -P tcp -s 192.168.1.1 -p 22 myservers - euca-authorize -P icmp -s 192.168.1.1 -t -1:-1 myservers ** platform-family start using the node.platform_family for attribute gating ** OpenStack-Syslog/Monitoring pull the code back from Rackspace into 2 new cookbooks openstack-monitoring openstack-syslog -** osops-utils - drop the , _, _ from searches and use the response["total"] instead of checking length * Documentation ** Diagrams for Role/Cookbook relationships knife-spaghetti-roles @@ -131,3 +132,11 @@ document how to set all this up with Fusion/VirtualBox/Vagrant/KVM ** Alternate package HOWTO ** Testing Overview +* node delete +#!/bin/bash +mysql -unova -pDuFdYNovQWp4VJ4FD4Gr +use nova; + +DELETE a FROM nova.security_group_instance_association AS a INNER JOIN nova.instances AS b ON a.instance_id=b.id where b.uuid=''; +DELETE FROM nova.instance_info_caches WHERE instance_id=''; +DELETE FROM nova.instances WHERE uuid=''; diff --git a/infrastructure.yml b/infrastructure.yml index 94028d4..7d35b09 100644 --- a/infrastructure.yml +++ b/infrastructure.yml @@ -1,58 +1,58 @@ cookbooks: -- ntp: #used by base role - - 1.2.0 -- openssh: #used by base role - - 1.1.0 -- apt: #used by erlang - - 1.5.0 -- yum: #used by erlang - - 1.0.0 -- build-essential: # used by mysql - - 1.1.2 -- erlang: #used by rabbitmq-server role - - 1.1.0 -- rabbitmq: #used by rabbitmq-server role - - 1.6.4 -- openssl: #used by mysql - - 1.0.0 -- mysql: #used by mysql-master role - - 1.3.0 -- postgresql: #required by database - - 1.0.0 -- aws: #required by database - - 0.100.2 -- xfs: #required by database - - 1.0.0 -- database: #required by keystone - - 1.3.6 - apache2: #required by horizon - - 1.2.0 + version: 1.4.2 +- apt: #used by erlang + version: 1.8.0 +- aws: #required by database + version: 0.100.6 +- build-essential: # used by mysql + version: 1.3.2 +- ntp: #used by base role + version: 1.3.2 +- openssh: #used by base role + version: 1.1.2 +- openssl: #used by mysql + version: 1.0.0 +- postgresql: #required by database + version: 2.1.0 - selinux: #required by nova - - 0.5.2 + version: 0.5.4 +- xfs: #required by database + version: 1.1.0 +- yum: #used by erlang + version: 2.0.6 +- erlang: #used by rabbitmq-server role + version: 1.1.2 +- mysql: #used by mysql-master role + version: 2.1.0 +- rabbitmq: #used by rabbitmq-server role + version: 1.8.0 +- database: #required by keystone + version: 1.3.10 +- omnibus_updater: #required by lxc + version: 0.1.0 +- lxc: #for use instead of kvm + version: 0.1.0 - sysctl: #required by nova - - 0.1.2 + version: 0.1.2 - osops-utils: #required by keystone - - 1.0.6 + version: 1.0.6 - mysql-openstack: #required by keystone - - 1.0.4 + version: 1.0.4 - rabbitmq-openstack: #required by keystone - - 1.0.4 + version: 1.0.4 - keystone: #used by keystone role - - 2012.1.0 + version: 2012.1.1 - glance: #used by glance roles - - 2012.1.0 + version: 2012.1.1 - nova: #used by nova roles - - 2012.1.0 + version: 2012.1.1 - horizon: #used by horizon-server role - - 2012.1.0 - -environments: -- production: - -data bags: + version: 2012.1.1 roles: - base: + - lxc: - mysql-master: - rabbitmq-server: - keystone: @@ -70,4 +70,9 @@ roles: - single-compute: - allinone: +environments: +- production: + +data bags: + nodes: