Upload
daisuke-nakajima
View
233
Download
0
Embed Size (px)
Citation preview
Demo
Internet
MX
203.0.113.2
顧客サイト(cpe)203.0.113.0/24 Inet.0
vnf2
Vrf internet-vn172.16.0.0/24
Vrf cpe-vn10.0.0.0/24
vnf1
Contrail
前提:以下のVRFを作成済み• ユーザー用VRF• Service chaining用VRF * 2
デモシナリオ1. CPE - > Internet通信の確認
VNF1(vSRX)経由2. VNF1にVNF2を追加3. vSRXをVNF1に追加
スケールアウト/冗長化確認4. ヘルスチェック設定5. VNF1障害時通信確認
オフィシャルドキュメントはあるけども・・・
• ドキュメントが古い• 足りないライブラリが・・・• Manifestも足りないものが・・・• stableだと思われるBranchを使いたい!
ざざっと手順をまとめます!
手順1. BuildサーバのKernelをオフィシャルにそろえる(オプション)2. GitにIDを作ってssh用のカギを登録3. Repoのインストール(オプション)4. OpenContrailパッケージのダウンロード5. OpenContrailのppaをリポジトリに追加6. Buildに必要なパッケージをインストール7. 作成されるパッケージのバージョンを設定(オプション)8. パッケージの作成
1. BuildサーバのKernelをオフィシャルにそろえる(オプション)
apt-get install linux-image-3.13.0-85-generic linux-headers-3.13.0-85-generic
sed -i 's/^GRUB_DEFAULT=.*/GRUB_DEFAULT=¥"Advanced options for Ubuntu>Ubuntu,¥ with Linux 3.13.0-85-generic¥"/g' /etc/default/grubupdate-grub
reboot
2. GitにIDを作ってssh用のカギを登録
ssh-keygengitにid_rsa.pubを登録
apt-get install gitgit config --global user.email “[email protected]"git config --global user.name “hogehoge"
3. Repoのインストール(オプション)
mkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo
4. OpenContrailパッケージのダウンロード
mkdir <dirname>; cd <dirname>repo init -u [email protected]:Juniper/contrail-vnc -b R3.1.repo/manifest.xml <project name="contrail-dpdk" remote="github" path="third_party/dpdk"/><project name="contrail-ceilometer-plugin" revision="master" remote="github" path="openstack/ceilometer_plugin"/>repo sync
Repo使った場合
注意:R3.1ブランチの場合、third_party/dpdkと/openstack/ceilometer_pluginがmanifest.xmlから抜けています。このままパッケージ化するとコンパイルエラーになるので、manifestに追加してください。
6. Buildに必要なパッケージをインストール
## builddepPACKAGES=`cat tools/packages/debian/contrail/debian/builddep.trusty|sed s,[¥ ¥¥¥t],,g|tr -d ','|tr`apt-get install -y $PACKAGES
## http://juniper.github.io/contrail-vnc/README.htmlapt-get install -y autoconf automake bison debhelper flex libcurl4-openssl-dev libexpat-dev libgettextpo0 libprotobuf-dev libtool libxml2-utils make protobuf-compiler python-all python-dev python-lxml python-setuptools python-sphinx ruby-ronn scons unzip vim-common libsnmp-python libipfix-dev librdkafka-dev librdkafka1 libboost-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-system-dev libcurl4-openssl-dev google-mock libgoogle-perftools-dev liblog4cplus-dev libtbb-dev libhttp-parser-dev libxml2-dev libicu-dev
python third_party/fetch_packages.py
ここまではオフィシャルドキュメント
6. Buildに必要なパッケージをインストール
## other Dependenciesapt-get install -y python-geventhttpclient python-certifi python-backports.ssl-match-hostname python-ncclient python-pycassa python-xmltodict python-docker-py python-redis default-jdk libcommons-codec-java libhttpcore-java liblog4j1.2-java nodejs debhelper libxml2-utils python-all python-sphinx ruby-ronnmodule-assistant ant default-jdk javahelper libcommons-codec-java libhttpcore-java liblog4j1.2-java libipfix libipfix-dev librdkafka-dev libnlopt-dev liburcu-dev libcap-dev libnl-3-dev libnl-genl-3-dev libzookeeper-mt-dev libpcap0.8-dev
wget http://ubuntu-cloud.archive.canonical.com/ubuntu/pool/main/libu/liburcu/liburcu-dev_0.8.5-1ubuntu1~cloud0_amd64.debwget http://ubuntu-cloud.archive.canonical.com/ubuntu/pool/main/libu/liburcu/liburcu2_0.8.5-1ubuntu1~cloud0_amd64.debdpkg -i liburcu2_0.8.5-1ubuntu1~cloud0_amd64.deb liburcu-dev_0.8.5-1ubuntu1~cloud0_amd64.deb
ここからは追加で必要なパッケージ
6. Buildに必要なパッケージをインストール
## cassandra modulewget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.7.5/libuv_1.7.5-1_amd64.debwget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra/v2.2.0/cassandra-cpp-driver_2.2.0-1_amd64.debwget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra/v2.2.0/cassandra-cpp-driver-dev_2.2.0-1_amd64.debdpkg -i libuv_1.7.5-1_amd64.deb cassandra-cpp-driver_2.2.0-1_amd64.deb cassandra-cpp-driver-dev_2.2.0-1_amd64.deb
7.作成されるパッケージのバージョンを設定(オプション)
CONTRAIL_VERSION = 1.1master~$(CONTROLLER_REF)WEBUI_CORE_VERSION = 1.1master~$(CONTROLLER_REF)WEBUI_CONTROLLER_VERSION = 1.1master~$(CONTROLLER_REF)NEUTRON_VERSION = 1.1master~$(NEUTRON_REF)CEILOMETER_VERSION = 1.1master~$(CEILOMETER_REF)CONTRAIL_HEAT_VERSION = 1.1master~$(CONTRAIL_HEAT_REF)
tools/packages/versions.mk の修正
この部分 = 以下を任意に変更することでパッケージにバージョンがつけられる。例) 3.1~$(CONTROLLER_REF) とすると、contrail-config_3.1~563f5d4_amd64.deb というパッケージが出来上がります
7.作成されるパッケージのバージョンを設定(オプション)
CONTRAIL_VERSION = 1.1master~$(CONTROLLER_REF)WEBUI_CORE_VERSION = 1.1master~$(CONTROLLER_REF)WEBUI_CONTROLLER_VERSION = 1.1master~$(CONTROLLER_REF)NEUTRON_VERSION = 1.1master~$(NEUTRON_REF)CEILOMETER_VERSION = 1.1master~$(CEILOMETER_REF)CONTRAIL_HEAT_VERSION = 1.1master~$(CONTRAIL_HEAT_REF)
tools/packages/versions.mk の修正
この部分 = 以下を任意に変更することでパッケージにバージョンがつけられる。例) 3.1~$(CONTROLLER_REF) とすると、contrail-config_3.1~563f5d4_amd64.deb というパッケージが出来上がります
エラーになったら・・・
ライブラリやパッケージのエラーの場合ライブラリ名でGoogleに聞いてみる。解決しなければ[email protected]にエラーログを張ってメールしてください
リポジトリでエラーが出たらmanifest.xmlにgithubのリポジトリを追加してrepo snyc!repoを使っていない場合はgit clone!
makeは結構大変・・・・
Contrail-installerを使いましょう!Dev-stackでOpenstackも一緒に入れられます。
けど、、、やっぱりJuniperと同じようなパッケージがほしい!
Package頑張ります
Contrail-packagingのリポジトリでパッケージができます。
でも・・・依存や必要なパッケージを集めるのが大変。trustyのパッケージを全部ダウンロードしちゃうと60GB
参考文献
http://juniper.github.io/contrail-vnc/README.html
http://blog.inetsix.net/2015/08/deploy-contrail-with-devstack/