Blue Flower

    こんにちは、@opt_HohenheimことJN1GUWです。

    きょうは、Raspberry Pi3でXLX Multiprotocol Gatway Reflector serverを構築してみたいと思います。

 

 1.XLX Multiprotocol Gatway Reflectorとは

    XLX Reflectorは、ルクセンブルクの LX1IQ Lucさんたちが開発 した 「XLX Multiprotocol Gatway Reflector」と言う

    Git Hubに登録されているオープンソースの無料ソフトウェ アを使って構築します。 詳細は下記HPを見て下さい。 

 

http://xrefl.boards.net/

 

 2.OSの準備

    OSは、下記URLからダウンロードします。

http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/

    最新日付のイメージ(ZIPファイル)をダウンロードします。

    ダウンロードしたら、ZIPを解凍して、SDカードに焼きます。

    Win32DiskImager (フリーソフト) を使い、imageファイルをSDカードに

    焼きます。

    次に焼いたSDカードをRaspberry Pi3にセットして、HDMIモニターとUSBキーボード、USBマウスを付けて

    Raspberry Pi3を起動します。

    Login  (User: pi, Password: raspberry)は、これですが、GUIの場合、何もせずにデスクトップが使えます。

    GUIが起動したら、Prifarence => Raspberry Pi Configurationを開いて、SSHをEnableにします。

    ターミナルを起動して、パスワードを変えましょう。

# passwd root
# passwd pi

    古いパスワードと新しいパスワード、確認のパスワードを入れます。

    次にDHCPで払い出されたIPアドレスを確認します。(例:192.168.11.5)

# ip a

 

    次に払い出されているIPアドレスを固定化します。

    vi /etc/dhcpcd.confで編集します。

    最下行に下記を追記します。(IP:192.168.11.5、ルーター,DNSが192.168.11.1の場合)

interface eth0
static ip_address=192.168.11.5/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

    ここで再起動して、sshで接続できるか確認しておきます。(TeraTermなどのフリーソフトでもOk)

# shutdown -r now
再起動後sshで接続(ユーザpi)
このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。 .5's password: The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Oct 22 09:17:12 2017 pi@raspberrypi:~ $ sudo -s root@raspberrypi:/home/pi#

    上記コマンドで、rootになれれば、Okです。

 

 3.XLX Multiprotocol Gatway Reflectorのインストール

    次にXLX Multiprotocol Gatway Reflector server(リフレクターサーバ)をインストールします。

# sudo apt-get install git git-core                       #git(ソース管理ツール)
# sudo apt-get install php5                                #php(言語)
# git clone https://github.com/LX3JL/xlxd.git #gitからclone(ソースダウンロード)
# cd xlxd/src/
# vi main.h 【編集前】 // --------------------------------------------------- #define NB_OF_MODULES 10 //#define NB_OF_MODULES NB_MODULES_MAX 【編集後】 // --------------------------------------------------- //#define NB_OF_MODULES 10 #define NB_OF_MODULES NB_MODULES_MAX ---------------------------------------------------------------- # sudo make clean # sudo make # sudo make install # cd

# sudo cp xlxd/scripts/xlxd /etc/init.d/ #再起動時の自動起動設定

    次にコンフィグレーションファイルを設定します。

# sudo vi /etc/init.d/xlxd
 ARGUMENTS=“XLX129 192.168.11.5” #--- (例) XLX129 

    仮運用時は、XLX129の所は下記HPで使われてないXLX番号を探し設定する。

    http://xrefl.net/ を見て、使用中XLX Reflectorと同じ番号にしない様、十分に注意して下さい。

    下記でダッシュボードファイルをコピーします。

# sudo rm /var/www/html/index.html #--- 使わないので削除
# sudo cp -r ~/xlxd/dashboard/* /var/www/html/

     それでは、/var/www/html/pgs/config.inc.phpファイルを編集します。(エディタは、viでもnanoでも)

$PageOptions['ContactEmail'] = '
 このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。
 ';                                             // 【メールアドレスの設定】
$PageOptions['PageRefreshDelay'] = '30000'; // 【30 秒毎に自動更新】
$PageOptions['RepeatersPage']['IPModus'] = 'ShowLast2ByteOfIP'; // 【先頭 2Byte のみ表示】
$PageOptions['PeerPage']['IPModus'] = 'ShowLast2ByteOfIP'; $CallingHome['Active'] = true; // 【公開情報のアクティブ化】
$CallingHome['MyDashBoardURL'] ='http://guwgw.cir-ins.com/index.php'; //【ダッシュボードの URL 設定】
$CallingHome['Country'] = "Kanagawa Japan"; // 【都市・国名の設定】
$CallingHome['Comment'] = "JN1GUW Ayase-city Reflector"; // 【レフレクターのコメント設定】
$CallingHome['HashFile'] = "/callhome/callinghome.php"; //
【callhome フォルダの設定】

( 注意: 例 guwgw.cir-ins.com は 事前に DDNS等に登録しておく、因みに当局は、AWSのRoute53を使っている ) 

    下記でHashFile用フォルダーの作成をします。

# cd /
# mkdir callhome
# chmod 777 callhome #--- アクセス権の設定

 

     それでは、下記ポート解放します。

TCP port 80 (http) 、 
TCP port 443 (https) 、
TCP port 8080 (RepNet)、 TCP port 22 (ssh[任意]) 、
TCP port 10022、 (ssh optional) UDP port 10001 (json interface XLX Core)、
UDP port 10002 (XLX interlink)、 UDP port 30001 (DExtra protocol)、
UPD port 20001 (DPlus protocol)、 UDP port 30051 (DCS protocol)

    下記で vi /etc/systemd/system/xlxd.service(自動起動用スクリプト)ファイルの作成をします。(エディタは、好きなもので)

[Unit]
Description=XLX Reflector Daemon by LC1IQ
After=network.target

[Service]
Type=forking
ExecStart=/etc/init.d/xlxd start
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target
# Alias=xlxd.service

    では、デーモン起動(サーバ起動)します。

# sudo systemctl start xlxd.service
# sudo systemctl enable xlxd.service

  

 4.XLX Multiprotocol Gatway Reflectorの確認

    それでは、XLX Multiprotocol Gatway Reflector serverの簡易テストをしましょう。

    まず、ダッシュボードにアクセスします。下記ブラウザでアクセスします。(DDNS等に登録したドメイン[例:XLX129])

 http://guwgw.cir-ins.com/index.php

    ダッシュボードで、下記のようにバージョン表示のようになれば、Okです。

    バージョン表示が、出ない場合、ポート解放のTCPとUDPを間違えている

    可能性があります。

XLX129 v2.0.0 - Dashboard v2.3.7  /  Service uptime: 12 days 08:12:44

    次に、クライアントソフトBlueDV for windowsを使ってコネクトしてみます。

 windowsのC:\Users\[ユーザ名]\Documents\BlueDVフォルダにDExtra_Hostsファイル

    があるので、その一覧内に下記を追記します。(例:XRF129)

XRF129 192.168.11.5

    次に、serialスイッチを入れて、DSTARスイッチを入れます。

    構築したリフレクタに接続します。先ほど追加したXRF129(例)

    に接続します。DSTARのstatusがLinked to XRF129になれば

    正常です。送信して、ダッシュボードに履歴が残れば、Okです。 

    下記が、当局のXLX Multiprotocol Gatway Reflectorです。

XLXserver

5.XLX 番号の登録手順

    (1)XLX 番号の登録条件は、稼働している XLX が前提です。XLX 番号の管理者は、登録されたアドレ

    スにアクセスし、ダッシュボードが正常に動作していることを確認しています。XLX にアクセス

    できなかったり、正常に動作していない場合は登録されませんのでご注意ください。

    (2)XLX 番号の登録状況を下記のサイトで確認します。

        http://xrefl.net/

    (3)X Reflector Forum にログインします。アカウントが無い場合は登録します。

      ①X Reflector Forum のグループを選択します。

          <1> Directory Changes and Forum Questions

          <2> Request adding or changing an XRF in the Directory at http://xrefl.net

     ②X Reflector Forum に以下のメッセージを投稿します。

Please reply in this thread with any additions, deletions, or changes.

Requests to add an XRF should include:

1) Required: the URL to a working dashboard
2) Required: the address to be added to the host file
3) Required: the hosting or sponsoring station or organization
4) Required: the country
5) Optional: the organization website if it exists
6) Optional: any title or other description for the reflector
7) Optional: the city and/or region

        投稿にあたっては、投稿する内容に一定のルールがあります。登録済みとなった方の投稿

        を良く見て必要な情報を記載する必要があります。

    (4)概ね、週2回ぐらいの頻度で登録作業が行われ、X Reflector Forum に作業結果が記載されます。

 

6.BlueDV 用 Hosts ファイルへの登録手順

    (1)前項の XLX 番号登録が完了してから以下の手順を行ってください。登録が完了前に依頼をしても

      BlueDV 用 Hosts ファイルへの登録は行って貰えませんのでご注意ください。

    (2)BlueDV 用 Hosts を管理している「Mr. Steve」へメールで登録を依頼します。

      To: このメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。

      件名: Please add your XRF host table.

    (3)以下のファイルに登録されます。「Mr. Steve」から数日中に応答があります。

 

      http://www.arrg.us/HF/DExtra_Hosts.txt

 

 

以上です。

最後までお読みいただきありがとうございました。

 



CloudManagerAdvance 2.2 以上
カテゴリ: ツール
Google Playで詳細を見る

 

 

 

    こんにちは、@opt_HohenheimことJN1GUWです。

    きょうは、ThumbDV™を使ってRaspberry Pi3でAMBEserverを構築してみたいと思います。

 

 1.Bootイメージを作成する

    Compass Linux imageをダウンロードします。(下記) 

http://archive.compasslinux.org/images/wilderness/

     最新日付をダウンロードし、zipを解凍します。

    今回は、lite版ではないものをダウンロードしました。

    その後、Win32DiskImager (フリーソフト) を使い、imageファイルをSDカードに焼き付けます。

    わたしは、class10の16GBのSDカードを使いました。

 

 2.Compass Linuxを起動する

    次に焼いたSDカードをRaspberry Pi3にセットして、HDMIモニターとUSBキーボード、マウスを付けて

    Raspberry Pi3を起動します。

    Login  (User: pi, Password: raspberry)は、これですが、GUIの場合、何もせずにデスクトップが使えます。

    GUIが起動したら、Prifarence => Raspberry Pi Configurationを開いて、SSHをEnableにします。

    ターミナルを起動して、パスワードを変えましょう。

# passwd

    古いパスワードと新しいパスワード、確認のパスワードを入れます。

    次にDHCPで払い出されたIPアドレスを確認します。(例:192.168.11.7)

# ip a

 

    次に払い出されているIPアドレスを固定化します。

    vi /etc/dhcpcd.confで編集します。

    最下行に下記を追記します。(IP:192.168.11.7、ルーター,DNSが192.168.11.1の場合)

 

interface eth0
static ip_address=192.168.11.3/24
static routers=192.168.11.1
static domain_name_servers=192.168.11.1

    ここで、ThumbDV™をRaspberry Pi3のUSB端子にさします。

# ls /dev/ttyU*

    上記コマンドで、/dev/ttyUSB0が表示されれば、Okです。

 

 3.AMBEserverをインストールする

    次にAMBEserver(リフレクターサーバ)をインストールします。

# sudo apt-get update -y
# sudo apt-get upgrade -y
# sudo apt-get install ambeserver -y
# sudo systemctl enable ambeserver@ttyUSB0.service

    次にコンフィグレーションファイルを設定します。

# cd /etc/opendv
# cp ambeserver-ttyUSB0.conf ambeserver-ttyUSB1.conf
# vi /etc/opendv/ambeserver-ttyUSB0.conf

    /etc/opendv/ambeserver-ttyUSB0.confファイルは、以下のように設定します。

#
# Configuration file for the AMBEserver program started by systemd.
# Adding flags to AMBESERVER_FLAGS will pass this to the daemon.
# For example, to change the speed to 460800, use the following line:
# AMBESERVER_FLAGS="-s 460800"
#

UDP_PORT=2460
AMBESERVER_FLAGS="-s 460800"

 

    それでは、AMBEserverを起動します。

# sudo systemctl start ambeserver@ttyUSB0.service

 

 4.AMBEserverの確認

    それでは、AMBEserverの簡易テストをしましょう。

    /etc/opendv/ambesocketest.pyファイルを下記内容で、作成します。

import socket   #for sockets
import sys  #for exit

# create dgram udp socket
try:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
except socket.error:
    print 'Failed to create socket'
    sys.exit()

# host = 'localhost';
host = '127.0.0.1';
port = 2460;

while(1) :
    getProdId = bytearray.fromhex("61 00 01 00 30")

    try :
        #Set the whole string
        s.sendto(getProdId, (host, port))

        # receive data from client (data, addr)
        d = s.recvfrom(1024)
        reply = d[0]
        addr = d[1]

        print 'Server reply : ' + reply

    except socket.error, msg:
        print 'Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
        sys.exit()

 

    下記手順で、実行結果のようになれば、Okです。

root@compass:/home/pi# cd /etc/opendv/
root@compass:/etc/opendv# python ambesocketest.py
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
Server reply : a
                0AMBE3000R
^CTraceback (most recent call last):
  File "ambesocketest.py", line 23, in <module>
    d = s.recvfrom(1024)
KeyboardInterrupt

    確認が取れたら、Raspberry Pi3のUDPポート2460番を外部に公開します。

 

   5.クライアントソフトについて

    外部公開したルーターのグローバルアドレスに対してUDP2460番を使用すれば、外部からアクセスできます。

    クライアントソフトは、わたしは、BlueDV for WindowsとBlueDV AMBE for androidを使用してます。

    特にandroid版ですと出先で、スマホだけでQRVできます。

    注意点としては、AMBEserverは、1つのクライアントしか許容できないことです。

    2つ以上同時に接続するとキョロキョロになって使い物になりません。

    その点だけ気をつければ、あとは、動作は安定してます。

    下記が、当局のAMBEserverです。

AMBEserver

 以上です。

最後までお読みいただきありがとうございました。

 

 


CloudManagerAdvance 2.2 以上
カテゴリ: ツール
Google Playで詳細を見る

 

 

 

    こんにちは、@opt_Hohenheimです。

    きょうは、CloudStack4のインスタンスにクラウドストレージ(owncloud)環境を

    入れてみようと思います。

 

 1.CloudStack4のリソース状況を確認する

 CloudStack4のリソース状況4 

 

    ダッシュボードでリソースの空き状況を確認します。

    今回使うのは、メモリ2Gbyte CPU 2GHz ディスク100Gbyteくらい使いますので

    そのくらいの空きがあればいいです。ストレージ容量をたくさん使う方は、適宜

    変更してください。

 

 2.CloudStack4のisoテンプレートにcentos6を登録する

    次に今回クラウドストレージ環境をインストールするインスタンス用のisoテンプレートを用意します

    ここでは、CentOS6を用意して対応します。

    isoイメージは、たとえば、理研のリポジトリを使います。

 

    次のように準備完了になればOkです。

 

 

 3.登録したisoテンプレートのcentos6をもってインスタンスをデプロイする 

 

    2.で登録したisoテンプレートをもって、メモリ2GByte CPU2GHz ディスク100Gbyteにて

    仮想マシンのインスタンスをデプロイします。

    デプロイ後、/etc/sysconfig/network-scripts/ifcfg-eth0のファイル内

    onboot=noをonboot=yesに変えて以下のコマンドを実行します。

 

    ついでに以下ののpingが通ることを確認しておきます。

# service network restart
# ping www.yahoo.co.jp

 

 4.デプロイしたcentos6のインスタンスにクラウドストレージ環境をインストール

    それでは、CloudStack4で払い出したcentos6のインスタンスにクラウドストレージ(owncloud)をインストールしましょう。

    CloudStack4で払い出したcentos6のインスタンスにloginして、以下の手順でOkです。

# yum upgrade -y
# yum -y install wget
# yum -y install epel-release
# cd /etc/yum.repos.d
# wget http://rpms.famillecollet.com/enterprise/remi.repo
# cd /etc/yum.repos.d/
# wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_6/isv:ownCloud:community.repo
# yum -y --enablerepo=remi,remi-php56 install owncloud mysql-server php-mysql
# chkconfig httpd on
# chkconfig mysqld on
# service httpd start
# service mysqld start
# service iptables stop
# chkconfig iptables off
# mysql -u root
mysql> CREATE DATABASE owncloud;
mysql> GRANT ALL ON owncloud.* to 'owncloud'@'localhost' IDENTIFIED BY 'owncloud';

 

   5.デプロイしたインスタンスのポート設定

    ポート転送ですが、管理用にsshポート22とowncloudのマネージメントコンソールポート80を設定します。

    筆者は、ポート転送とファイアウォールの2重設定が面倒だったので、以下のAndroidアプリで設定しました。(筆者の都合ですいません)

CloudManagerAdvance絶賛発売中!!

 

    このアプリでPortFoward設定すると自動でファイアウォールも設定してくれます。

     CloudStack4のコンソールでも設定出来ますので、そちらでも結構です。

    その場合、ポート転送とファイアウォールに22番と80番を設定します。

 

   6.クラウドストレージ(owncloud)のコンソールにアクセスする

    ネットワークのポート転送等を設定したNATのIPアドレスに対してブラウザで以下のアドレスにアクセスをします。

http://[IPアドレス]/owncloud

 

    すると、以下のコンソール画面が表示されます。

owncloud初期画面1

    初回だけ、管理アカウントの設定になります。

    設定するとloginされ、以下の画面が1度だけ表示されます。

    PCとスマートフォンのクライアントアプリの案内です。

 owncloud初期画面

 

 以上です。

最後までお読みいただきありがとうございました。

 

 


CloudManagerAdvance 2.2 以上
カテゴリ: ツール
Google Playで詳細を見る

 

 

 

    こんにちは、@opt_HohenheimことJN1GUWです。

    きょうは、thumbDVを使ってReflectorにQRVしてみたいと思います。

 

 1.まずthumbDVを購入する

 ThumbDV

 

    http://nwdigitalradio.com/category/thumbDV/ こちらで購入します。

    わたしが購入した時は、約120ドルでした。二週間くらいで上述写真の封筒で到着します。

 

 2.Windows10でThmbDVを使う

     次にThumbDV(ドングル)を使うためにBlueDV for Windowsをインストールします

    今回は、下記サイトからダウンロードしました。

    http://software.pa7lim.nl/BlueDV/BETA/

    zipファイルを解凍してダブルクリックでデフォルトインストールします。

    途中で、ドライバのインストールが促されると思いますが、インストールします。

 

 3.BlueDV for Windowsを使う

 

    2.でインストールしたBlueDV for windowsは、インストールがうまくいってれば

    デスクトップにアイコンが出来てるはずです。

    それをダブルクリックします。すると下記画面が現れると思います。

 BlueDV1

    firmwareが、「AMBE3000R」になることを確認します。これが確認できない場合、

    ThumbDVが認識されていないので、ご注意ください。

    確認できたらSERIALのスイッチをOFFにして、MenuからSetUpを選択します。(下図)

 BlueDV2

    上図は、私の設定です、参考にしてコールサインや、DMR IDを自分のものにしてSaveします。

 

 4.ReflectorにQRV

    それでは、送信してみましょう。

    まず、SERIALスイッチを入れます。その次にDSTARスイッチを入れます。

    するとSetUpで設定したデフォルトのXRF071CのReflector(仮想レピーター)に接続されます。

    画面右下のレベルメーターの下にあるAMBE3000のスイッチを入れると送信になります。(下図)

 BlueDV3

    無事送信できましたね?

    ちなみにCモジュール、Dモジュールは、国内用、Eモジュールは、エコーテスト用です。

 

 5.おわりに

 

    Refrectorには、ダッシュボードと言われるそのリフレクターがどこにインターリンクしているかや

    QRVしている局情報などを表示できるページがあります。

    ThumbDVでは、DVとDMRが出来ます。下記サイトからダッシュボードにたどれます。

 

    C4FMのFUSIONリフレクタは、ThumbDVでは、QRV出来ません。

    QRVするには、DVMEGAなどの他の装置が必要ですが、

    ThumbDVでも不便を感じたことがありません。

    ちなみにリフレクタサーバを筆者は、運用してます。

    XRF129になります。使用するリフレクタに困ったらこちらご利用ください。

 

    こんにちは、@opt_Hohenheimです。

    きょうは、CloudStack4のインスタンスにheat環境を用意して

    heatテンプレートを動かしてみようと思います。

 

 1.CloudStack4のリソース状況を確認する

 CloudStack4のリソース状況 

 

    ダッシュボードでリソースの空き状況を確認します。

    今回使うのは、メモリ2Gbyte CPU 2GHz ディスク20Gbyteくらい使いますので

    そのくらいの空きがあればいいです。

 

 2.CloudStack4のisoテンプレートにcentos7を登録する

     次に今回heat環境をインストールするインスタンス用のisoテンプレートを用意します

    今回は、packstackを使ってCloudStack4のインスタンスにOpenStack heat環境を用意

    するのですが、最近Junoリリースと共にpackstackがRHEL7ベースの動作環境になった

    ので、ここでは、CentOS7を用意して対応します。

    isoイメージは、ここの理研のリポジトリを使います。

 

    次のように準備完了になればOkです。

 

 

 3.登録したisoテンプレートのcentos7をもってインスタンスをデプロイする 

 

    2.で登録したisoテンプレートをもって、メモリ2GByte CPU2GHz ディスク20Gbyteにて

    仮想マシンのインスタンスをデプロイします。

    デプロイ後、/etc/sysconfig/network-scripts/ifcfg-ens3のファイル内

    onboot=noをonboot=yesに変えて以下のコマンドを実行します。

 

    ついでに以下ののpingが通ることを確認しておきます。

# service network restart
# ping www.yahoo.co.jp

 

 4.デプロイしたcentos7のインスタンスにOpenStack heat環境をインストール

    それでは、CloudStack4で払い出したcentos7のインスタンスにOpenStack heatをインストールしましょう。

    CloudStack4で払い出したcentos7のインスタンスにloginして、以下の手順でOkです。

# yum -y update
# yum -y install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install -y https://rdo.fedorapeople.org/rdo-release.rpm
# yum install -y openstack-packstack
# packstack --allinone --use-epel=y --os-heat-install=y --os-heat-cfn-install=y --os-ceilometer-install=n

    インストールが終わるとhomeディレクトリ直下にkeystonerc_adminとkeystonerc_demoができているのが確認できると思います。

    adminアカウントとdemoアカウント用の環境変数です。

    次のようにします。(アカウントadminを使う場合) 

# . ~/keystonerc_admin

    では、さっそくheatコマンドが使えるか試してみましょう。

# heat stack-list
+----+------------+--------------+---------------+ | id | stack_name | stack_status | creation_time | +----+------------+--------------+---------------+ +----+------------+--------------+---------------+

    heatテンプレートは、stackという単位で管理されて、1つのテンプレートでデプロイされたリソースは、stackを消すと

    stackに紐づくすべてのリソースがリソースプールに戻ります。

    いまは、何もテンプレートを実行していないためstackリストは、空です。しかしながらheatの空リストがかえっているので

    heat環境は、できていると考えられます。

 

 5.glanceマシンイメージを用意する

    heatテンプレートは、インスタンスをデプロイする際glanceのマシンイメージを使います。

    そこでCloudStack4とそのインスタンスのOpenStackがたまたまkvmのハイパーバイザを使用している環境だったので

    CloudStack4のデフォルトのcentos5のマシンイメージのスナップショットを取得し、それをダウンロード(QCOW2)して

    OpenStackのインスタンスに転送します。

    インスタンスメニューで「表示・ボリューム」を選択します。

    下図、「ボリュームのダウンロード」を選択

    下図、ダウンロードリンクをクリックして、ダウンロードする

 

    OpenStackのHorizon(GUI)でglanceのマシンイメージも登録できますが

    uploadに時間がかかるものは、Horizonがセッションタイムアウトして途中で切れてしまいます。

    なのでマシンイメージは、OpenStackのインスタンスにsftpなどで転送し、glanceコマンドで登録します。

    上記ダウンロードしたマシンイメージをOpenStackのインスタンスに転送したら、下記glanceコマンドでマシンイメージを登録します。

[root@localhost ~(keystone_admin)]# glance image-create --name centos5-image --disk-format qcow2 --container-format bare --is-public True --file ./centos5.qcow2
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | 00926eb83a373e38455232d05247b3aa     |
| container_format | bare                                 |
| created_at       | 2014-12-03T19:34:22                  |
| deleted          | False                                |
| deleted_at       | None                                 |
| disk_format      | qcow2                                |
| id               | 12f71527-7160-4956-a6ce-0610745094fc |
| is_public        | True                                 |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | centos5-image                        |
| owner            | 36e79999f5ca494c9b2015723347ed53     |
| protected        | False                                |
| size             | 1711472640                           |
| status           | active                               |
| updated_at       | 2014-12-03T19:35:19                  |
| virtual_size     | None                                 |
+------------------+--------------------------------------+
[root@localhost ~(keystone_admin)]#

    ここで、ついでにセキュリティグループを登録しておきましょう。

    今回は、gitlabをデプロイするので80ポートとlogin等用に22ポートを開けておきます。

[root@localhost blog(keystone_admin)]# neutron security-group-create gitlabservers --description "security group for gitlabservers"
Created a new security_group:
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Field                | Value                                                                                                                                                                                                                                                                                                                         |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| description          | security group for gitlabservers                                                                                                                                                                                                                                                                                              |
| id                   | 0961ee55-3897-40ec-a1e4-c28cffd740ca                                                                                                                                                                                                                                                                                          |
| name                 | gitlabservers                                                                                                                                                                                                                                                                                                                 |
| security_group_rules | {"remote_group_id": null, "direction": "egress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "36e79999f5ca494c9b2015723347ed53", "port_range_max": null, "security_group_id": "0961ee55-3897-40ec-a1e4-c28cffd740ca", "port_range_min": null, "ethertype": "IPv4", "id": "68a6b53a-1f00-4797-bfdc-144e2540e66b"} |
|                      | {"remote_group_id": null, "direction": "egress", "remote_ip_prefix": null, "protocol": null, "tenant_id": "36e79999f5ca494c9b2015723347ed53", "port_range_max": null, "security_group_id": "0961ee55-3897-40ec-a1e4-c28cffd740ca", "port_range_min": null, "ethertype": "IPv6", "id": "78810ddc-bf18-42c1-bf55-68365bc9b3b2"} |
| tenant_id            | 36e79999f5ca494c9b2015723347ed53                                                                                                                                                                                                                                                                                              |
+----------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
[root@localhost blog(keystone_admin)]# neutron security-group-rule-create --direction ingress --protocol tcp --port_range_min 80 --port_range_max 80 0961ee55-3897-40ec-a1e4-c28cffd740ca
Created a new security_group_rule:
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| direction         | ingress                              |
| ethertype         | IPv4                                 |
| id                | 534f1373-5af2-4d5b-86b8-1140738c7f86 |
| port_range_max    | 80                                   |
| port_range_min    | 80                                   |
| protocol          | tcp                                  |
| remote_group_id   |                                      |
| remote_ip_prefix  |                                      |
| security_group_id | 0961ee55-3897-40ec-a1e4-c28cffd740ca |
| tenant_id         | 36e79999f5ca494c9b2015723347ed53     |
+-------------------+--------------------------------------+
[root@localhost blog(keystone_admin)]# neutron security-group-rule-create --direction ingress --protocol tcp --port_range_min 22 --port_range_max 22 0961ee55-3897-40ec-a1e4-c28cffd740ca
Created a new security_group_rule:
+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| direction         | ingress                              |
| ethertype         | IPv4                                 |
| id                | 5648579e-8f9b-40d6-a501-7dfb95fca7ab |
| port_range_max    | 22                                   |
| port_range_min    | 22                                   |
| protocol          | tcp                                  |
| remote_group_id   |                                      |
| remote_ip_prefix  |                                      |
| security_group_id | 0961ee55-3897-40ec-a1e4-c28cffd740ca |
| tenant_id         | 36e79999f5ca494c9b2015723347ed53     |
+-------------------+--------------------------------------+
[root@localhost blog(keystone_admin)]#

    ついでなので、heatでインスタンスをデプロイする際のnovaのkeypairを登録します。 

[root@localhost blog(keystone_admin)]# nova keypair-add git
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwuQkPyg8YH/ueCCOrF1VIKP6zma2z+pD69q26Zu2xxW6Qpm3
jXrXhYJjsiOVzkOGBu5MMB+mtFokej9T8yGJxR1fmex1KuZGwiYUifbysQPpyMEo
JTMLNHbGgP1lXRFGQg2bvyLHpZfjuo0Kxp47zWOdGpTB0tUoTLASewy77NfpH5P1
zCKWn2+/g+OLfJAjUnLsUKvAUV5AcWuN7tQNX99uczYQ8OGpj+Hke5KXRIEKEiCl
56y9mWWtSfd+eNpY8757nC+YUnYgwoV2xMWoOIeuSZz/TK1+yIqh1e2ujbw1jYb6
qYtVfFtI6w5WG2/XDFGA5CjD4PJIXH5we8hJLQIDAQABAoIBAQCSaz6EKKF7yoGJ
xMQL4S70j939NZQBDrqqtq4XQkKGvd8q7DvH0lObXYOzMSL6TSajjGK3AQCInPSs
12klz7um2NObW9gHO+xLLrrdkCdzMEJy7hNQJ1Iyv02RWU7PJgxH0duCNQoTcdLI
s/A1mmnJfB5q+vnHgRd+zgWEZuPFIn1JI5DydQqf8nT+InIA6Goma6PcpXNJiN+h
bEQbtIOuHgxe4SA+XhDoXz36nxpi9idnKot6I5TwGRIiyHAJNAFwQdsSw6jHgzIi
zuVzI0OHcw5kzb9l0w1nK5ni58dTc4pi23eDjSE4VLGUPCAVjbOLlpPobbUDddeL
7AD65ZYNAoGBAOuuceSo5eWZ9IG9u0HGQbN8ItN5M59Mwj1LZ7xdiDaDYC16yx02
6wsQI+iX087npGRHjYg3lQz3V52muq5bAIQ+GKCPPUq7sGWaN1e1lVLjgK4VjtSf
GXlcppnHnoYxYftepe6RPNbiJb1JfFcUwuTx1QkPNJqHDicP4yIZUuqfAoGBANOx
ccsPkBVTwc/x/aG+3MIWHsuf8EvoTv5bvYFSMZygGlpSn7A3MW7C9Vw9RbSe2WFr
FXXK18TUNS4B/MS2C7sYovk4GOPIDUfzTYr4tADRfckonGDI3Kz0F7ptVYk6fro9
qAjXDoXlCIkC01WsvmDrtQN4dZ9yt/9+jcsqBESzAoGBAJKl0jKQsbRDLrQIJduQ
jFMtW9IwaWGm9noDUIIRxO7+ojrKXFZKVMhme6F/z4i/9Dd9mmB3DWSrBzaOhzx0
XYbryJEnb+Dvlpwx8FvAHjEcZHZt7Zj5gnVUpEmtv0MKuUgbJa6jarLettLoRdk9
juO8Ym2nq3i3rqO5rAAMt95LAoGAUCITWTKC8A/MhdKsl9WP60hEUAAzDgjaHh7M
FW/vp8JTN22fVS0PYUYbatcm08BtuRq3/ObT1oYdu1S1QiFHP4OL7Zr2kQLhRCMt
bzXFramfW84ro9dk8XNUqBVLE6842XcNbIs7zCNun66aIQxK5JVU6ANpQvpB/E0D
j6xQAVECgYBsuxQnq2kev2TTrR4ryYtrZ0GoUiwbe+Dzocwgj8KIag2QTf9yPCxu
oT4lTh2m1lTqzzKkzeJyKhItRJXd6+LjUc/7CMwD5qVgpWsOXhHNf5xoKIA1ZARV
gplSTfBe+NRA37mwCuUpYrnMO0BB75FDlozljLTmlFXqk839LdzZEQ==
-----END RSA PRIVATE KEY-----

[root@localhost blog(keystone_admin)]# nova keypair-list
+------+-------------------------------------------------+
| Name | Fingerprint                                     |
+------+-------------------------------------------------+
| git  | 20:85:ac:9d:c1:ec:01:62:79:ba:fe:ce:59:54:e1:8e |
+------+-------------------------------------------------+
[root@localhost blog(keystone_admin)]#

    ついでなので、flavorを追加しておきましょう。

[root@localhost blog(keystone_admin)]# nova flavor-create m1.micro 6 1024 10 1
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name     | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+
| 6  | m1.micro | 1024      | 10   | 0         |      | 1     | 1.0         | True      |
+----+----------+-----------+------+-----------+------+-------+-------------+-----------+
[root@localhost blog(keystone_admin)]# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
| 1  | m1.tiny   | 512       | 1    | 0         |      | 1     | 1.0         | True      |
| 2  | m1.small  | 2048      | 20   | 0         |      | 1     | 1.0         | True      |
| 3  | m1.medium | 4096      | 40   | 0         |      | 2     | 1.0         | True      |
| 4  | m1.large  | 8192      | 80   | 0         |      | 4     | 1.0         | True      |
| 5  | m1.xlarge | 16384     | 160  | 0         |      | 8     | 1.0         | True      |
| 6  | m1.micro  | 1024      | 10   | 0         |      | 1     | 1.0         | True      |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+
[root@localhost blog(keystone_admin)]#

 

 6.heatテンプレートを用意する

    それでは、heatテンプレートを用意しましょう。

    ここでは、GitHubクローンのGitLabサーバをデプロイしてみます。

    heatテンプレートフォーマットは、大きく2つのフォーマットがあります。

      ・HOT(ネイティブフォーマット?)

      ・CFN(CloudFormation互換フォーマット)

    さらに時系列のVerで言うと

      ・2010-09-09(CFN)

      ・2012-12-12(CFN・HOTの間?)

      ・2013-05-23(HOT)

    の3種類のVerが存在します。

    CFNのフォーメーション互換フォーマットでテンプレートを作成していて気が付いたのですが

    AWSのドキュメントに記載されているステートメントというかディレクティブというかが

    すべて使えるわけではないということなのです。

    なので、かゆいところに手が届かないことが、たびたびありました。

    HOTでAWSと同等のことをさせることが結構な範囲で可能だったので、今回は、HOTを使います。

    用意したテンプレートは、下記になります。 

heat_template_version: 2013-05-23

parameters:
  flavor:
    type: string
    description: flavor used by the servers
  image:
    type: string
    description: image name
  secgroup:
    type: string
    description: security group name

resources:
  git-lab:
    type: OS::Nova::Server
    properties:
      flavor: { get_param: flavor }
      key_name: "git"
      security_groups: [{ get_param: secgroup }]
      name: "gitlab_svr"
      image: { get_param: image }
      user_data: |
        #!/bin/bash -v
        /usr/bin/sudo -s
        curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.5.3_omnibus.5.2.1.ci-1.el6.x86_64.rpm
        yum -y install openssh-server
        yum -y install postfix
        yum -y install cronie
        service postfix start
        chkconfig postfix on
        rpm -i gitlab-7.5.3_omnibus.5.2.1.ci-1.el6.x86_64.rpm
        gitlab-ctl reconfigure
        lokkit -s http -s ssh
        gitlab-ctl start
        exit

    今回用意したテンプレートは、cloudstack4からマイグレーションしたCentOS5のマシンイメージを使ってインスタンスをデプロイし、

    デプロイ時にGitlabのインストールスクリプトを実行して、Gitlabサーバをheat実行時に構築するものです。

    では、実行してみましょう。

[root@localhost blog(keystone_admin)]# heat stack-create gitlab -f gitlab.yaml -P "flavor=m1.micro;image=centos5-image;secgroup=gitlabservers"
+--------------------------------------+------------+--------------------+----------------------+
| id                                   | stack_name | stack_status       | creation_time        |
+--------------------------------------+------------+--------------------+----------------------+
| 93e0a0b2-235c-44ed-b8ea-4169186fcd4e | gitlab     | CREATE_IN_PROGRESS | 2014-12-09T08:55:47Z |
+--------------------------------------+------------+--------------------+----------------------+
[root@localhost blog(keystone_admin)]# 

    heatでstack-createすると「CREATE_IN_PROGRESS」という状態に入ります。

    インスタンスをデプロイしますので、ちょっとだけ時間がかかります。

    うまくいくと、状態が、「CREATE_COMPLETE」に変わり、heatの実行が、終わります。

[root@localhost blog(keystone_admin)]# heat stack-list
+--------------------------------------+------------+-----------------+----------------------+
| id                                   | stack_name | stack_status    | creation_time        |
+--------------------------------------+------------+-----------------+----------------------+
| 93e0a0b2-235c-44ed-b8ea-4169186fcd4e | gitlab     | CREATE_COMPLETE | 2014-12-09T08:55:47Z |
+--------------------------------------+------------+-----------------+----------------------+
[root@localhost blog(keystone_admin)]#

    インスタンスのデプロイは、できているでしょうか?

[root@localhost blog(keystone_admin)]# nova list
+--------------------------------------+------------+--------+------------+-------------+---------------------+
| ID                                   | Name       | Status | Task State | Power State | Networks            |
+--------------------------------------+------------+--------+------------+-------------+---------------------+
| 0f47fffd-cb54-4b75-a44e-78bb21066031 | gitlab_svr | ACTIVE | -          | Running     | public=172.24.4.234 |
+--------------------------------------+------------+--------+------------+-------------+---------------------+
[root@localhost blog(keystone_admin)]#

    大丈夫そうですね。後で、コンソール等で確認してみてください。

 

 7.heatをGUIでみてみる(おまけ)

    OpenStack Hrizon(GUI)でオーケストレーションメニューがあるので見てみます。

    先程stack-createしたスタックが見えてます。スタック名をクリックしてみます。

    デプロイされたtype: OS::Nova::Serverのサーバが見えてますね。

    もっと複雑なheatテンプレートを実行するとネットワークが見えるのですが、ここでは簡単に済ませます。

    

    以上で12/11分は、終わりになります。

    最後までお読みいただきありがとうございました。

 


CloudManagerAdvance 2.2 以上
カテゴリ: ツール
Google Playで詳細を見る