Merge "Removing vagrant support"
This commit is contained in:
commit
7089299f8c
3
.gitignore
vendored
3
.gitignore
vendored
@ -57,8 +57,5 @@ ChangeLog
|
|||||||
.*sw?
|
.*sw?
|
||||||
.settings/
|
.settings/
|
||||||
|
|
||||||
# Vagrant
|
|
||||||
.vagrant/
|
|
||||||
|
|
||||||
# File created by releasenotes build
|
# File created by releasenotes build
|
||||||
releasenotes/build
|
releasenotes/build
|
||||||
|
130
Vagrantfile
vendored
130
Vagrantfile
vendored
@ -1,130 +0,0 @@
|
|||||||
# -*- mode: ruby -*-
|
|
||||||
|
|
||||||
# Takes proxy configuratiom from host environment
|
|
||||||
http_proxy = ENV["http_proxy"]
|
|
||||||
https_proxy = ENV["https_proxy"]
|
|
||||||
no_proxy = ENV["no_proxy"]
|
|
||||||
if http_proxy or https_proxy
|
|
||||||
require 'vagrant-proxyconf'
|
|
||||||
end
|
|
||||||
|
|
||||||
# This where the working directory is going to be copied/mounted inside of
|
|
||||||
# produced VM.
|
|
||||||
source_dir="/vagrant"
|
|
||||||
|
|
||||||
# This is the synchronization strategy to copy or mount wirking directory
|
|
||||||
# inside the VM. For more details read below doc:
|
|
||||||
# https://www.vagrantup.com/docs/synced-folders/
|
|
||||||
sync_type="rsync"
|
|
||||||
|
|
||||||
# For the purpose of deplying openstack code inside provisioned VM it is using
|
|
||||||
# git to fetch source code from upstream. The repository server can be changed
|
|
||||||
# by setting this variable to point to some other place.
|
|
||||||
# A common alternative value is "https://github.com"
|
|
||||||
# This value is taken from host env configuration when available.
|
|
||||||
# If this value is empty then the default git server knwon by devstak is used
|
|
||||||
# that in the moment this doc is written is "https://git.openstack.org"
|
|
||||||
git_base = ENV["GIT_BASE"] or ""
|
|
||||||
|
|
||||||
# All Vagrant configuration is done below. The "2" in Vagrant.configure
|
|
||||||
# configures the configuration version (we support older styles for
|
|
||||||
# backwards compatibility). Please don't change it unless you know what
|
|
||||||
# you're doing.
|
|
||||||
Vagrant.configure(2) do |config|
|
|
||||||
# The most common configuration options are documented and commented below.
|
|
||||||
# For a complete reference, please see the online documentation at
|
|
||||||
# https://docs.vagrantup.com.
|
|
||||||
|
|
||||||
# Every Vagrant development environment requires a box. You can search for
|
|
||||||
# boxes at https://atlas.hashicorp.com/search.
|
|
||||||
config.vm.box = "ubuntu/xenial64"
|
|
||||||
|
|
||||||
# Disable automatic box update checking. If you disable this, then
|
|
||||||
# boxes will only be checked for updates when the user runs
|
|
||||||
# `vagrant box outdated`. This is not recommended.
|
|
||||||
# config.vm.box_check_update = false
|
|
||||||
|
|
||||||
# Create a forwarded port mapping which allows access to a specific port
|
|
||||||
# within the machine from a port on the host machine. In the example below,
|
|
||||||
# accessing "localhost:8080" will access port 80 on the guest machine.
|
|
||||||
# config.vm.network "forwarded_port", guest: 80, host: 8080
|
|
||||||
|
|
||||||
# Collectd will fail to install if it is not able to resolve the ip from its
|
|
||||||
# hostname. Setting the host name here will make Vagrant configuring
|
|
||||||
# /etc/hosts fixing this problem
|
|
||||||
config.vm.hostname = "vagrant"
|
|
||||||
|
|
||||||
# Create a private network, which allows host-only access to the machine
|
|
||||||
# using a specific IP. This internal private network will be used by collectd
|
|
||||||
config.vm.network "private_network", ip: "192.168.0.10"
|
|
||||||
|
|
||||||
# Create a public network, which generally matched to bridged network.
|
|
||||||
# Bridged networks make the machine appear as another physical device on
|
|
||||||
# your network.
|
|
||||||
# config.vm.network "public_network"
|
|
||||||
|
|
||||||
# Share an additional folder to the guest VM. The first argument is
|
|
||||||
# the path on the host to the actual folder. The second argument is
|
|
||||||
# the path on the guest to mount the folder. And the optional third
|
|
||||||
# argument is a set of non-required options.
|
|
||||||
config.vm.synced_folder ".", source_dir, create:true, type: sync_type
|
|
||||||
|
|
||||||
# Provider-specific configuration so you can fine-tune various
|
|
||||||
# backing providers for Vagrant. These expose provider-specific options.
|
|
||||||
# Example for VirtualBox:
|
|
||||||
#
|
|
||||||
config.vm.provider "virtualbox" do |vb|
|
|
||||||
# Display the VirtualBox GUI when booting the machine
|
|
||||||
vb.gui = false
|
|
||||||
|
|
||||||
# Customize the amount of memory on the VM. This ammout is recommended
|
|
||||||
# to make OpenStack working.
|
|
||||||
vb.memory = "2048"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
|
|
||||||
# such as FTP and Heroku are also available. See the documentation at
|
|
||||||
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
|
|
||||||
# config.push.define "atlas" do |push|
|
|
||||||
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
|
|
||||||
# end
|
|
||||||
|
|
||||||
# Fix slow connection problems
|
|
||||||
# config.vm.provider "virtualbox" do |v|
|
|
||||||
# v.customize ["modifyvm", :id, "--nictype1", "virtio"]
|
|
||||||
# end
|
|
||||||
|
|
||||||
# Configure proxy variables
|
|
||||||
if Vagrant.has_plugin?("vagrant-proxyconf")
|
|
||||||
if http_proxy
|
|
||||||
config.proxy.http = http_proxy
|
|
||||||
end
|
|
||||||
if https_proxy
|
|
||||||
config.proxy.https = https_proxy
|
|
||||||
end
|
|
||||||
if no_proxy
|
|
||||||
config.proxy.no_proxy = no_proxy
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Use the same DNS server as the host machine
|
|
||||||
config.vm.provision "file", source: "/etc/resolv.conf",
|
|
||||||
destination: "~/resolv.conf"
|
|
||||||
config.vm.provision "shell", privileged: false,
|
|
||||||
inline: "sudo mv ~/resolv.conf /etc/resolv.conf"
|
|
||||||
|
|
||||||
# Enable provisioning with a shell script. Additional provisioners such as
|
|
||||||
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
|
|
||||||
# documentation for more information about their specific syntax and use.
|
|
||||||
# Below script is going to be executed inside of the VM as regular user
|
|
||||||
config.vm.provision "shell", privileged: false, inline: <<-SHELL
|
|
||||||
set -x
|
|
||||||
|
|
||||||
# forward configuration from the hos to the guest VM
|
|
||||||
export GIT_BASE="#{git_base}"
|
|
||||||
export SOURCE_DIR="#{source_dir}"
|
|
||||||
|
|
||||||
# run provisioning script
|
|
||||||
"$SOURCE_DIR"/tools/vagrant_provision.sh
|
|
||||||
SHELL
|
|
||||||
end
|
|
@ -35,7 +35,6 @@ Contents:
|
|||||||
contributing
|
contributing
|
||||||
devstackGSG
|
devstackGSG
|
||||||
GSG
|
GSG
|
||||||
vagrant
|
|
||||||
troubleshooting
|
troubleshooting
|
||||||
|
|
||||||
Indices and tables
|
Indices and tables
|
||||||
|
@ -1,133 +0,0 @@
|
|||||||
..
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
||||||
not use this file except in compliance with the License. You may obtain
|
|
||||||
a copy of the License at
|
|
||||||
|
|
||||||
http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
|
|
||||||
Unless required by applicable law or agreed to in writing, software
|
|
||||||
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
||||||
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
||||||
License for the specific language governing permissions and limitations
|
|
||||||
under the License.
|
|
||||||
|
|
||||||
Convention for heading levels in collectd-ceilometer-plugin documentation:
|
|
||||||
|
|
||||||
======= Heading 0 (reserved for the title in a document)
|
|
||||||
------- Heading 1
|
|
||||||
~~~~~~~ Heading 2
|
|
||||||
+++++++ Heading 3
|
|
||||||
''''''' Heading 4
|
|
||||||
|
|
||||||
Avoid deeper levels because they do not render well.
|
|
||||||
|
|
||||||
=======
|
|
||||||
Vagrant
|
|
||||||
=======
|
|
||||||
|
|
||||||
This project is distributed with a Vagrantfile intended to be used by
|
|
||||||
developers to run functional tests on a Linux virtual machine.
|
|
||||||
|
|
||||||
The software provided by the appliance are:
|
|
||||||
|
|
||||||
- Ubuntu Server 16.04 LTS appliance running inside Virtual Box
|
|
||||||
- The collectd provided by Ubuntu
|
|
||||||
- Python 2.7 and 3.4 provided by Ubuntu
|
|
||||||
- This plugin
|
|
||||||
- Project dependencies provided by PIP as specified by project requirements
|
|
||||||
|
|
||||||
To use Vagrant to test this plugin you have to install following software
|
|
||||||
up to date software on your host machine:
|
|
||||||
|
|
||||||
- Vagrant
|
|
||||||
- VirtualBox 5
|
|
||||||
|
|
||||||
|
|
||||||
Vagrant
|
|
||||||
-------
|
|
||||||
|
|
||||||
Documentation to install Vagrant can be found on there website at:
|
|
||||||
|
|
||||||
https://www.vagrantup.com/docs/installation/
|
|
||||||
|
|
||||||
A recent version of Vagrant is required to utilize the vagrant file provided by
|
|
||||||
this repo. If you have an older version already installed please upgrade by
|
|
||||||
following the documentation at:
|
|
||||||
|
|
||||||
https://www.vagrantup.com/docs/installation/upgrading.html
|
|
||||||
|
|
||||||
|
|
||||||
Virtual Box
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Virtual Box version greater than 5 should works fine.
|
|
||||||
|
|
||||||
Many Linux distributions should provide a valid version of VirtualBox.
|
|
||||||
|
|
||||||
The Virtual Box web site hosts some documentation and links to help you
|
|
||||||
downloading and installing Virtual Box on your machine. Please see it there:
|
|
||||||
|
|
||||||
https://www.virtualbox.org/wiki/Downloads
|
|
||||||
|
|
||||||
|
|
||||||
Proxy configuration
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
If you are working beside a proxy server then you have to install
|
|
||||||
vagrant-proxyconf plugin:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ vagrant plugin install vagrant-proxyconf
|
|
||||||
|
|
||||||
You can have more details about the plugin on below site:
|
|
||||||
|
|
||||||
https://github.com/tmatilai/vagrant-proxyconf
|
|
||||||
|
|
||||||
To use it, before creating target appliance, you have to configure standard
|
|
||||||
enviroment variable on your host machine like below:
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
export http_proxy=http://<some_proxy_server>:<some_port>/
|
|
||||||
export https_proxy=$https_proxy
|
|
||||||
export no_proxy=localhost,$(hostname)
|
|
||||||
|
|
||||||
|
|
||||||
Create and use the appliance
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
Once all required software is installed and configured you can create
|
|
||||||
and launch the appliance as follows (it can take several minutes) from
|
|
||||||
the project folder
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ vagrant up
|
|
||||||
|
|
||||||
Once the appliance is running connect to the running VM you can type following
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ vagrant ssh
|
|
||||||
|
|
||||||
During the provisioning process collectd is going to be
|
|
||||||
installed and launched using devstack. To force updating the project and
|
|
||||||
restacking it again please use one of the following commands
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
# when the machine is down and I want to take it up, update the software
|
|
||||||
# and start all services (including collectd )
|
|
||||||
$ vagrant up --provision
|
|
||||||
|
|
||||||
# when the machine is running and I want to take reboot it, update the
|
|
||||||
# software and re-start all services (including collectd)
|
|
||||||
$ vagrant reload --provision
|
|
||||||
|
|
||||||
|
|
||||||
To launch unit tests inside the appliance you can type following
|
|
||||||
|
|
||||||
::
|
|
||||||
|
|
||||||
$ vagrant ssh -c 'cd /vagrant && tox'
|
|
@ -14,10 +14,6 @@
|
|||||||
|
|
||||||
"""The purpose of this script is generating environment variables used to
|
"""The purpose of this script is generating environment variables used to
|
||||||
configure /etc/profile inside of the virtual machine.
|
configure /etc/profile inside of the virtual machine.
|
||||||
|
|
||||||
The main purpose of this script is allowing vagrant to configure properly
|
|
||||||
the no_proxy environment variable adding entries that could break openstack
|
|
||||||
components internal connectivity.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
@ -1,77 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Vagrant provisioning script.
|
|
||||||
|
|
||||||
SOURCE_DIR="${SOURCE_DIR:-$(cd $(dirname $(dirname ${BASH_SOURCE[0]})) && pwd)}"
|
|
||||||
STACK_DIR="${STACK_DIR:-/opt/stack}"
|
|
||||||
|
|
||||||
PROXY_FILE="/etc/profile.d/proxy.sh"
|
|
||||||
COLLECTD_CEILOMETER_DIR="$STACK_DIR/collectd-ceilometer-plugin"
|
|
||||||
DEVSTACK_DIR="$STACK_DIR/devstack"
|
|
||||||
DEVSTACK_REPO="${GIT_BASE:-https://git.openstack.org}/openstack-dev/devstack.git"
|
|
||||||
|
|
||||||
echo "Start provisioning."
|
|
||||||
set -ex
|
|
||||||
export DEBIAN_FRONTEND="noninteractive"
|
|
||||||
|
|
||||||
echo "Update and install required packages."
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get upgrade -y
|
|
||||||
sudo apt-get install -y git python-minimal python-setuptools\
|
|
||||||
python-libvirt libvirt-bin
|
|
||||||
|
|
||||||
echo "Fix proxy variables."
|
|
||||||
if [ -r "$PROXY_FILE" ]; then
|
|
||||||
echo "Fix proxy enviroment."
|
|
||||||
TMP_PROXY_FILE=$(mktemp)
|
|
||||||
python "$SOURCE_DIR/tools/get_proxy_env.py" > "$TMP_PROXY_FILE"
|
|
||||||
sudo mv "$TMP_PROXY_FILE" "$PROXY_FILE"
|
|
||||||
source "$PROXY_FILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Install and update main Python packages."
|
|
||||||
sudo easy_install pip
|
|
||||||
sudo pip install -U urllib3 pip setuptools tox
|
|
||||||
|
|
||||||
echo "Prepare devstack destination dir: $STACK_DIR."
|
|
||||||
sudo mkdir -p "$STACK_DIR"
|
|
||||||
sudo chown "$USER.$USER" $STACK_DIR
|
|
||||||
|
|
||||||
# This makes sure the collectd ceilometer plugin deployed is the one contained
|
|
||||||
# in the same folder as the Vagrantfile
|
|
||||||
if [ "$COLLECTD_CEILOMETER_DIR" != "$SOURCE_DIR" ]; then
|
|
||||||
sudo rm -fR "$COLLECTD_CEILOMETER_DIR" || true
|
|
||||||
sudo ln -sfn "$SOURCE_DIR" "$COLLECTD_CEILOMETER_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! [ -d "$DEVSTACK_DIR" ]; then
|
|
||||||
echo "Clone devstack."
|
|
||||||
git clone "$DEVSTACK_REPO" "$DEVSTACK_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
pushd "$DEVSTACK_DIR"
|
|
||||||
cp "$SOURCE_DIR/local.conf" .
|
|
||||||
|
|
||||||
# unstack if stacking procedure has been already started before
|
|
||||||
if [ -f ".stacking" ]; then
|
|
||||||
echo "Unstack."
|
|
||||||
(./unstack.sh && rm -fR ".stacking") || true
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Start stacking."
|
|
||||||
|
|
||||||
# GIT_BASE is forwarded from host machine to the guest virtual machine to make
|
|
||||||
# devstack behaving like as it would have been executed on the bare host machine
|
|
||||||
if [ -n "$GIT_BASE" ]; then
|
|
||||||
# This is going to replace default values specified by devstack
|
|
||||||
# but not the ones defined inside local.conf
|
|
||||||
export GIT_BASE=$GIT_BASE
|
|
||||||
fi
|
|
||||||
|
|
||||||
touch ".stacking"
|
|
||||||
# This tells collectd the source directory of the plugin is the one
|
|
||||||
# where the Vagrantfile is (typically /vagrant)
|
|
||||||
COLLECTD_CEILOMETER_DIR="$SOURCE_DIR" "./stack.sh"
|
|
||||||
popd
|
|
||||||
|
|
||||||
echo "Provisioned."
|
|
Loading…
Reference in New Issue
Block a user