chef-bcpc

by bloomberg

bloomberg / chef-bcpc

Bloomberg Clustered Private Cloud distribution

200 Stars 93 Forks Last release: 14 days ago (8.1.1) Apache License 2.0 3.2K Commits 85 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

chef-bcpc

chef-bcpc is a set of Chef cookbooks that build a highly-available OpenStack cloud.

The cloud consists of head nodes (OpenStack controller services, Ceph Mons, etc.) and work nodes (hypervisors).

Each head node runs all of the core services in a highly-available manner. Each work node runs the relevant services (nova-compute, Ceph OSDs, etc.).

Getting Started

The following instructions will get chef-bcpc up and running on your local machine for development and testing purposes.

See the [Hardware Deployment][Hardware Deployment] section for notes on how to deploy the chef-bcpc on hardware.

Prerequisites

  • OS X or Linux
  • Quad-core CPU that supports VT-x or AMD-V virtualization extensions
  • 32 GB of memory
  • 128 GB of free disk space
  • Vagrant 2.1+
  • VirtualBox 5.2+
  • git, curl, rsync, ssh, jq, make, ansible

NOTE: It is likely possible to build an environment with 16GB of RAM or less if one is willing to make slight modifications to the virtual topology and/or change some of the build settings and overrides. However, we've opted to spec the minimum requirements slightly more aggressively and target hosts with 32GB RAM or more to provide the best out-of-the-box experience.

Local Build

  • Review
    virtual/topology/topology.yml
    for the topology you will build and make changes as required, e.g. assign more or less RAM based on your topology and your build environment. Other topologies exist in the same directory.
  • To make changes to the virtual topology without dirtying the tree, copy the hardware.yml and topology.yml to files named
    hardware.overrides.yml
    and
    topology.overrides.yml
    , respectively, and make changes to them instead.
  • If a proxy server is required for internet access, set the variables TBD
  • If additional CA certificates are required (e.g. for a proxy), set the variables TBD
  • From the root of the chef-bcpc git repository run the following command:

Create a Python virtual environment (virtualenv) and activate it

python3 -mvenv venv
source venv/bin/activate
pip install PyYaml ansible netaddr pyOpenSSL pycryptodome

To create a virtualbox build (the default):

make generate-chef-databags
make create all

To create a libvirt build:

vagrant plugin install vagrant-libvirt vagrant-mutate
vagrant box add bento/ubuntu-18.04
vagrant mutate bento/ubuntu-18.04 libvirt
export VAGRANT_DEFAULT_PROVIDER=libvirt
make create all

You may also want to change cpu model from

qemu64
to
kvm64
in
ansible/playbooks/roles/common/defaults/main/chef.yml
chef_environment:
  name: virtual
  override_attributes:
    bcpc:
       nova:
         cpu_config:
           cpu_mode: custom
           cpu_model: kvm64

Hardware Deployment

TBD

Contributing

Currently, most development is done by a team at Bloomberg L.P. but we would like to build a community around this project. PRs and issues are welcomed. If you are interested in joining the team at Bloomberg L.P. please see available opportunities at the Bloomberg L.P. careers site.

License

This project is licensed under the Apache 2.0 License - see the LICENSE.txt file for details.

Built With

chef-bcpc is built with the following open source software:

Thanks to all of these communities for producing this software!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.