OpenStackの開発環境のセットアップ

HabréのOpenStackシステムに関する記事はたくさんありましたが、複合サービスの開発とテストについて触れた記事はありませんでした。 素手で環境を設定するのは簡単な作業ではなく、完全に感謝するものでもないことをすぐに言います。 幸いなことに、ローカル仮想マシンにOpenStackを自動的にインストールするための一連のスクリプトであるDevstackと呼ばれる公式プログラムがあります。 さて、ここで記事を終了したいと思いますが、このDevstackのすべてがそれほど複雑ではありません。 つまり、インストールはタンバリンで踊り、適切な構成パラメーターを選択するプロセス全体です。 さらに、プロジェクトは独自のペースで進んでおり、今日の成果は、新しいコミットで飛ぶことができます。



挑戦する



テスト、バグ修正、システムサービスへの機能(nova、keystone、swift、heatなど)の追加のために、OpenStackの開発環境を構築する必要があります。 作成された仮想マシンをいつでも消去、新しい仮想マシンを作成、スクリプトを実行し、数分で完成した環境を取得できるように、環境はほぼ自動的に収集される必要があります。 さらに、環境は以前のVM と同じである必要があります。 この記事を書いている時点で興味のあるサービスは熱であるため、構成はそれに向けられますが、2、3行を置き換えることで、構成全体を他のサービスに適合させることができます。



集める



組み立てには、VirtualBox、Vagrantという次のツールを用意する必要があります。 他のすべては独自に配置する必要があります。 OSX 10.9.2でビルドしましたが、他の* nix OSには問題がないはずです。



Virtualbox


ここではすべてが簡単です。www.virtualbox.orgにアクセスし 、オペレーティングシステムのリリースをダウンロードしてインストールします。 Vagrantが4.2を吐き出すことがあるため、4.3.8を設定しました。



放浪者


Vagrantバージョン1.3.5をインストールし(他のバージョンをインストールする場合、nfsの動作は保証されません)、環境を保存するディレクトリ、たとえば/ home / user / devstackを作成します。 Vagrantfileファイルを次の内容のフォルダーに配置します。



-- mode: ruby -- vi: set ft=ruby : Vagrant config VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "heat" config.vm.box_url = "http://files.vagrantup.com/precise32.box" #    VM  2048MB config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", "2048"] end #     Horizon config.vm.network :forwarded_port, guest: 80, host: 8080 #  IP ,  NFS config.vm.network :private_network, ip: "192.168.11.10" #  /opt/stack c  /home/user/devstack. config.vm.synced_folder "/home/user/devstack", "/opt/stack", nfs:true end
      
      







ファイルを保存し、/ home / user / devstackに移動してVMをビルドします

 vagrant up
      
      





VMへのアクセスを取得する

 vagrant ssh
      
      





パッケージとdevstack自体のインストールに直接進むことができます。 受け取った車は完全に空であるため、すべてを自分で置く必要があります。



 sudo apt-get update && sudo apt-get -y install git vim-gtk libxml2-dev libxslt1-dev libpq-dev python-pip libsqlite3-dev && sudo apt-get -y build-dep python-mysqldb && sudo pip install git-review tox && git clone git://git.openstack.org/openstack-dev/devstack -b stable/havana && chown -R vagrant:vagrant devstack && cd devstack
      
      







おめでとうございます、これで未設定ですが安定したdevstackリリースhavanaができました。



Devstack


Devstackは、必要に応じてカスタマイズできます。 構成は非常に柔軟で、一部の場所では混乱を招きます。 熱を除くすべての安定した(ハバナ)OpenStackサービスをインストールする構成を自分用にまとめました。 devstackフォルダーにいることを確認し、local.confファイルを作成します(localrc、devstack、両方で作業できます)



 #, ... ADMIN_PASSWORD=devstack MYSQL_PASSWORD=devstack RABBIT_PASSWORD=devstack SERVICE_PASSWORD=devstack SERVICE_TOKEN=devstack #   #RECLONE=yes #OFFLINE=True # Swift #SWIFT_REPLICAS=1 #SWIFT_HASH=011688b44136573e209e #   HOST_IP=192.168.11.10 HOST_IP_IFACE=eth1 FLAT_INTERFACE=br100 PUBLIC_INTERFACE=eth1 FLOATING_RANGE=192.168.11.224/27 #   LOGFILE=/opt/stack/logs/stack.sh.log VERBOSE=True LOG_COLOR=True SCREEN_LOGDIR=/opt/stack/logs #      NOVA_BRANCH=stable/havana CINDER_BRANCH=stable/havana GLANCE_BRANCH=stable/havana HORIZON_BRANCH=stable/havana KEYSTONE_BRANCH=stable/havana NEUTRON_BRANCH=stable/havana SWIFT_BRANCH=stable/havana HEAT_BRANCH=stable/havana CEILOMETER_BRANCH=stable/havana # Horizon ENABLED_SERVICES+=,horizon #  Heat (master branch) HEAT_REPO=https://github.com/openstack/heat.git HEAT_BRANCH=master #   ##   Neutron disable_service n-net enable_service q-svc enable_service q-agt enable_service q-dhcp enable_service q-l3 enable_service q-meta enable_service neutron #  Cinder disable_service cinder disable_service c-api disable_service c-sch disable_service c-vol ##   Swift,      :) #enable_service s-proxy s-object s-container s-account ##  Heat ENABLED_SERVICES+=,heat,h-api,h-api-cfn,h-api-cw,h-eng IMAGE_URLS+=",http://fedorapeople.org/groups/heat/prebuilt-jeos-images/F17-x86_64-cfntools.qcow2" IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img" ##  Ceilometer #   ,     ,       - postgres #CEILOMETER_BACKEND=mongo ENABLED_SERVICES+=,ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api ENABLED_SERVICES+=,ceilometer-alarm-notify,ceilometer-alarm-eva
      
      





HOST_IPがVagrantfileのprivate_network ip値と一致することを確認してください。

この設定の動作ソフトウェアバージョンを思い出させます:VirtualBox 4.3.8、Vagrant 1.3.5



すべてが好きです。 ファイルを保存し、。/ stack.shを実行します。 Heatがテスト用に2つのディスクイメージをポンピングすることを考えると、すべてにかなり時間がかかります。 しかし、焦点が熱ではなく別のサービスにある場合、これは簡単に削除できます。

GitHub構成データ: github.com/sorantis/stackenv

質問やコメントをお願いします。プロセス全体をワンクリックボタンにまとめることができてうれしいです。



PS記事が誰かにとって有用であれば、ここで私の経験を共有し続けることができます。



All Articles