Giter VIP home page Giter VIP logo

openstack's Introduction

OpenStack Cloud Deployment

This repository contains OpenStack Cloud Control related projects.

There are two sub-projects in this repository:

  • openstack-installer, which is an Ansible based deployment tool to provision clouds as fast, and as easy as possible.
  • openstack-monitoring, which is also an Ansible based deployment tool to set up Nagios monitoring and Collectd metrics collecting for the Cloud.

The motivation for creating this deployment tool is that existing solutions are too complex, over-engineered, and not reliable.

The design behind this installer is to remain simple, use Ansible's features, but not over-use them. Don't use bash scripts, which are usually going to an unmaintainable state after some iterations. Use the packages of the underlying OS (from the Newton release, only Ubuntu 16.04 is supported, Queens supports Ubuntu 16.04 and 18.04, Ussuri both 18.04 and 20.04 and Yoga both 20.04 and 22.04), and don't mess the system with software installed from various sources. The installer also can be used after the deployment to change parameters of an existing cloud, so it supports the full life-cycle of the deployed OpenStack.

The deployed cloud is fully production ready, and the controlling and API components are highly available. Upgrade option from the previous version is available.

Several clouds in production are installed and upgraded with this installer (from 10 to 40 computes, 512 to 1600 VCPUs).

Current OpenStack versions supported:

  • Liberty/Ubuntu Trusty - trusty/liberty branch
  • Mitaka/Ubuntu Trusty/Xenial - mitaka branch
  • Newton/Ubuntu Xenial - xenial/newton branch
  • Ocata/Ubuntu Xenial - xenial/ocata branch
  • Pike/Ubuntu Xenial - xenial/pike branch
  • Queens/Ubuntu Xenial/Bionic - queens branch
  • Rocky/Ubuntu Bionic - bionic/rocky branch
  • Stein/Ubuntu Bionic - bionic/stein branch
  • Train/Ubuntu Bionic - bionic/train branch
  • Ussuri/Ubuntu Bionic/Focal - ussuri branch
  • Victoria/Ubuntu Focal - focal/victoria branch
  • Wallaby/Ubuntu Focal - focal/wallaby branch
  • Xena/Ubuntu Focal - focal/xena branch
  • Yoga/Ubuntu Focal/Jammy - yoga branch

Integrated Infra components:

  • Pacemaker
  • Galera cluster (supervised by Pacemaker)
  • MongoDB (optional)
  • RabbitMQ
  • HAProxy
  • Memcached
  • PowerDNS (for designate - optional)
  • Zookeeper (optional but recommended)
  • Ceph (optional)

Integrated OpenStack components (all compontents can be enabled/disabled in the inventory):

  • Core components, they should work out-of-box after the installer finishes:

    • keystone
    • glance
    • nova
    • neutron
    • cinder
    • gnocchi
    • panko
    • ceilometer
    • aodh
    • heat
    • swift
  • Components, which are working, but maybe need some handwork (like getting guest images):

    • ironic
    • trove
    • murano
  • Components, which are tagged experimental (maybe work, but there are upstream bugs to be fixed, or not really tested):

    • barbican
    • designate
    • magnum
    • manila
    • mistral
    • sahara
    • senlin
    • cloudkitty

Installing an all-in-one (Ceph, controller, compute) VM with Vagrant:

  • Install vagrant
  • Clone the repo
  • Setup aio
    $ cd openstack/openstack-installer
    $ scripts/switchcfg.sh -b configs aio
    $ scripts/generate_secrets.py
    $ cd vagrant
    $ vagrant up

openstack's People

Contributors

gyurco avatar leki75 avatar sfeeser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

openstack's Issues

error on TASK [os_keystone_service : get an admin token]

i try 3 times but same error .
TASK [os_keystone_service : get an admin token] ********************************
task path: /root/openstack/openstack-installer/roles/os_keystone_service/tasks/main.yml:15
Using module file /usr/lib/python2.7/site-packages/ansible/modules/core/cloud/openstack/os_auth.py
<10.10.0.11> ESTABLISH SSH CONNECTION FOR USER: vagrant
<10.10.0.11> SSH: EXEC ssh -vvv -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -i /root/openstack/openstack-installer/vagrant/.vagrant/machines/default/virtualbox/private_key -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o User=vagrant -o ConnectTimeout=30 -o ControlPath=/root/.ansible/cp/ansible-ssh-%h-%p-%r 10.10.0.11 '/bin/sh -c '"'"'/usr/bin/python && sleep 0'"'"''
fatal: [openstack-aio]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_name": "os_auth"
},
"module_stderr": "OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013\r\ndebug1: Reading configuration data /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 56: Applying options for *\r\ndebug1: auto-mux: Trying existing master\r\ndebug2: fd 3 setting O_NONBLOCK\r\ndebug2: mux_client_hello_exchange: master version 4\r\ndebug3: mux_client_forwards: request forwardings: 0 local, 0 remote\r\ndebug3: mux_client_request_session: entering\r\ndebug3: mux_client_request_alive: entering\r\ndebug3: mux_client_request_alive: done pid = 18610\r\ndebug3: mux_client_request_session: session request sent\r\ndebug1: mux_client_request_session: master session id: 2\r\nWARNING:keystoneauth.identity.generic.base:Discovering versions from the identity service failed when creating the password plugin. Attempting to determine version from URL.\nTraceback (most recent call last):\n File "/tmp/ansible_1QQ_1E/ansible_module_os_auth.py", line 69, in \n main()\n File "/tmp/ansible_1QQ_1E/ansible_module_os_auth.py", line 60, in main\n auth_token=cloud.auth_token,\n File "/usr/lib/python2.7/dist-packages/shade/openstackcloud.py", line 339, in auth_token\n return self.keystone_session.get_token()\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/session.py", line 749, in get_token\n return (self.get_auth_headers(auth) or {}).get('X-Auth-Token')\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/session.py", line 727, in get_auth_headers\n return auth.get_headers(self, **kwargs)\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/plugin.py", line 90, in get_headers\n token = self.get_token(session)\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/identity/base.py", line 90, in get_token\n return self.get_access(session).auth_token\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/identity/base.py", line 136, in get_access\n self.auth_ref = self.get_auth_ref(session)\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/identity/generic/base.py", line 181, in get_auth_ref\n return self._plugin.get_auth_ref(session, **kwargs)\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/identity/v3/base.py", line 167, in get_auth_ref\n authenticated=False, log=False, **rkwargs)\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/session.py", line 675, in post\n return self.request(url, 'POST', **kwargs)\n File "/usr/lib/python2.7/dist-packages/positional/init.py", line 101, in inner\n return wrapped(*args, **kwargs)\n File "/usr/lib/python2.7/dist-packages/keystoneauth1/session.py", line 570, in request\n raise exceptions.from_response(resp, method, url)\nkeystoneauth1.exceptions.http.ServiceUnavailable: Service Unavailable (HTTP 503)\ndebug3: mux_client_read_packet: read header failed: Broken pipe\r\ndebug2: Received exit status from master 1\r\n",
"module_stdout": "",
"msg": "MODULE FAILURE"
}

--- Vagrant file
[root@onecomputer-04 vagrant]# cat Vagrantfile

-- mode: ruby --

vi: set ft=ruby :

$script = <<SCRIPT
echo "auto enp0s10" > /etc/network/interfaces.d/enp0s10.cfg
echo "iface enp0s10 inet manual" >> /etc/network/interfaces.d/enp0s10.cfg
ifup enp0s10
SCRIPT

Vagrant.configure(2) do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.hostname = "openstack-aio"
config.proxy.http = "http://10.202.91.52:3128"
config.proxy.https = "http://10.202.91.52:3128"
config.proxy.no_proxy = "localhost,127.0.0.1,10.10.0.11,10.10.1.11,10.10.2.11,10.10.0.10,10.10.1.10,10.10.2.10,10.10.1.254,10.10.0.0"

Networking

config.vm.network :private_network, ip: "10.10.0.11" # management
config.vm.network :private_network, ip: "10.10.1.11" # external
config.vm.network :private_network, ip: "10.10.2.11", # Neutron flat network
auto_config: false

config.vm.provider :virtualbox do |vb|
vb.cpus = 4
vb.memory = "12288"
vb.customize ["modifyvm", :id, "--nicpromisc4", "allow-all"]
end

config.vm.provision "shell", inline: $script

config.vm.provision :ansible do |ansible|
ansible.inventory_path = "../inventory/inventory.py"
ansible.limit = "all"
ansible.playbook = "../aio-deploy.yml"
ansible.verbose = "vvvv"
end
end

ansible_distribution_version' is undefined Ansible failed to complete successfully.

Centos7.1

[wanghs@db2 vagrant]$ vagrant box add --name ubuntu/trusty64 ~/ubuntu-trusty64.box
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'ubuntu/trusty64' (v0) for provider:
    box: Unpacking necessary files from: file:///home/wanghs/ubuntu-trusty64.box
==> box: Successfully added box 'ubuntu/trusty64' (v0) for 'virtualbox'!
[wanghs@db2 vagrant]$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/trusty64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: vagrant_default_1462436911427_80914
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2208.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
    default: Adapter 3: hostonly
    default: Adapter 4: hostonly
==> default: Forwarding ports...
    default: 22 (guest) => 2208 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2208
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default:
    default: Guest Additions Version: 4.3.36
    default: VirtualBox Version: 5.0
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
    default: /vagrant => /home/wanghs/paas_evaluation/openstack/openstack-installer/vagrant
==> default: Running provisioner: ansible...
    default: Running ansible-playbook...
ERROR: Failed to template {{ (ansible_distribution_version | version_compare('16.04', '>=')) | ternary('xUbuntu_15.04','xUbuntu_14.04') }}: Version comparison: 'ansible_distribution_version' is undefined
Ansible failed to complete successfully. Any error output should be
visible above. Please fix these errors and try again.

no response on terminal about ansible

i follow these steps , but no output about ansible
$ cd openstack/openstack-installer
$ scripts/restorecfg.sh aio
$ scripts/generate_secrets.py
$ cd vagrant
$ vagrant up

[root@onecomputer-04 openstack-installer]# scripts/restorecfg.sh aio
[root@onecomputer-04 openstack-installer]#
[root@onecomputer-04 openstack-installer]# scripts/generate_secrets.py
[root@onecomputer-04 openstack-installer]#
[root@onecomputer-04 openstack-installer]# cd vagrant
[root@onecomputer-04 vagrant]# vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Fixed port collision for 22 => 2222. Now on port 2205.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
default: Adapter 3: hostonly
default: Adapter 4: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2205 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2205
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
[default] GuestAdditions 5.1.14 running --- OK.
==> default: Checking for guest additions in VM...
==> default: Setting hostname...
==> default: Configuring and enabling network interfaces...
==> default: Mounting shared folders...
default: /vagrant => /root/openstack/openstack-installer/vagrant
==> default: Machine already provisioned. Run vagrant provision or use the --provision
==> default: flag to force provisioning. Provisioners marked to run always will still run.
[root@onecomputer-04 vagrant]#
[root@onecomputer-04 vagrant]# ansible --version
ansible 2.2.1.0
config file = /root/openstack/openstack-installer/vagrant/ansible.cfg
configured module search path = Default w/o overrides

after i vagrant box add command to import bento/ubuntu_16.04 box ,
i run vagrant up, less than 1 min to finish ,so quick.

how can i fix this ?

thanks for answer.

Deploying to Baremetal

Hello,

This isn't really a issue, I wanted to know if you have instructions for deploying to baremetal? I'm working on a school project and have 7 nodes which all can be used for compute and 4 compute/storage. Any guidance would be appreciated.

Thanks

Jimmy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.