【Openstack】Glanceのimageの保存先を変更する
- デフォルトは/var/lib/glance/images/
- /data/glance/imagesに変更する
glance-api.confのfilesystem_store_datadirを変更
# vi /etc/glance/glance-api.conf #filesystem_store_datadir = /var/lib/glance/images ↓ filesystem_store_datadir = /data/glance/images/
ディレクト作成
# cd /data # mkdir -p glance/images # chown -R glance:glance glance/images/
glanceサービスを再起動
# ls /usr/lib/systemd/system/ | grep glance openstack-glance-api.service openstack-glance-glare.service openstack-glance-registry.service openstack-glance-scrubber.service # systemctl restart openstack-glance-api.service openstack-glance-glare.service openstack-glance-registry.service openstack-glance-scrubber.service
イメージを再登録
- インスタンス起動時にCloud not found が出てる
- 入れなおしたら問題なくいった、保存先をDBとかに持ってたのかもしれない
- 存在するイメージを一旦削除し、ダウンロードしておいたイメージファイルを再登録すると解決した
参考
【Openstack】Neutronのネットワークをすべて削除する方法
【Openstack】Neutronのネットワークをすべて削除する方法
Neutronをいろいろいじっていると、一度作成したネットワークとかサブネットとかを削除して作り直したいシーンが多かったので。
順番を間違うとエラーで削除できなかったので、残しておく。
削除手順
1. FloatingIPの割り当て解除
## インスタンス一覧 # nova list ## FloatingIP一覧 # nova floating-ip-list ## FloatingIPの割り当て解除 usage: nova floating-ip-disassociate <server> <address> # nova floating-ip-disassociate b46621b7-5cd4-4a7f-84d0-82cf76fdf438 172.16.100.3
2. FloatingIP削除
usage: nova floating-ip-delete <address> # nova floating-ip-delete 172.16.100.3
3. インスタンス削除
# nova list usage: nova delete <ID>
4. routerのインターフェイス削除
## routerのport一覧 usage:neutron router-port-list <router_name> # neutron router-port-list router1 ## routerのゲートウェイ解除 usage:neutron router-gateway-clear <router_name> # neutron router-gateway-clear router1 ## rourerのインターフェイス削除 usage:neutron router-interface-delete <router_name> subnet=<subnet_name> # neutron router-interface-delete router1 subnet=private_subnet
5. router削除
usage:neutron router-delete <router_name> # neutron router-delete router1
6. サブネット削除
## サブネット一覧 # neutron subnet-list ## サブネット削除 usage:neutron subnet-delete <subnet_name> # neutron subnet-delete private_subnet # neutron subnet-delete public_subnet
7. ネットワーク削除
usage:neutron net-delete <network_name> # neutron net-delete public # neutron net-list
参考
Openstack CLIをインストールする
概要
- Openstackがインストールされたサーバ以外でOpenstackをCLIで操作するための準備
- OpenstackにはAPIが用意され、認証ファイルを読み込むことで、権限のあるプロジェクトに対して操作が可能
- CLIでインスタンスを起動したり、ネットワークを作成などが可能となる
OpenStack コマンドラインクライアントのインストール
インストールした環境
- 例としてCentOS7.2
# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core)
前提パッケージのインストール
# yum install python-devel python-pip gcc
→gccがないとpipでエラーになる
pipでパッケージをインストールする
# pip install python-openstackclient # pip install python-neutronclient
→ neutronコマンドはopenstackclientには含まれないので別途いれる
Openstackコマンドラインクライアントを使う
# openstack --version openstack 2.4.0
OpenStack rcクレデンシャルファイルの作成
- 既に存在するクレデンシャルをもってくる
OpenStack rcクレデンシャルファイルの読み込み
# source keystonerc_demo
各コンポーネントのコマンドを使う
# nova list # glance image-list # cinder list # neutron net-list
参考
Cobbler+Ansible+PackstackでOpenstack(Liberty)マルチノードを構築した話(その3)
前回の話
構築時に遭遇したあらゆるトラブルの解決策を残しておく
トラブルシューティング
Horizonでエラー「:ボリュームのリソース上限情報を取得できません。」が表示される
エラーログ
May 16 12:28:41 opsn01 cinder-api: 2016-05-16 12:28:41.728 3874 ERROR cinder.api.middleware.fault [req-09a236f6-7092-49d3-a342-2f7b6398fa92 193316e6fcc24d068eaed4f4c9db03f7 ffb0dcb85cc54f2eac7b70520cbdd5de - - -] Caught error: Unknown Attribute: projects May 16 12:28:47 opsn01 cinder-api: 2016-05-16 12:28:47.981 3873 ERROR cinder.api.middleware.fault [req-9d668939-2a14-4125-82f5-30bd37711288 193316e6fcc24d068eaed4f4c9db03f7 ffb0dcb85cc54f2eac7b70520cbdd5de - - -] Caught error: Unknown Attribute: projects
調べるとcinder.confの以下記述が原因らしい。記述を変更してcinderサービスを再起動するとなおる。
cinder.confを修正
# vim /etc/cinder/cinder.conf #auth_uri = http://192.168.1.31:5000/v2.0 ↓変更 auth_uri = http://192.168.1.31:5000/v3
cinderサービスの再起動
# systemctl restart openstack-cinder*
Horizonで「エラー: コンテナーの一覧を取得できません。」が表示される
原因
- ログインしたユーザにSwiftコンテナを閲覧する権限がないため
- おそらくadminでは表示されないはず
解決策
- ユーザにSwiftOperatorの権限を与える
- GUIでやるか、以下コマンドで権限を追加する
## プロジェクト一覧 # openstack role list +----------------------------------+------------------+ | ID | Name | +----------------------------------+------------------+ | 01db5ff8fda04b1f8156f92c3dafcbb5 | ResellerAdmin | | 03ff15e6b5ce4ec0b59a61d1791cdd30 | heat_stack_user | | 897748bcc16a4ab7a4ad4689ffd04d59 | admin | | 9fe2ff9ee4384b1894a90878d3e92bab | _member_ | | b865c86512f2485d924b5e12596121c6 | SwiftOperator | | c3e248d784f7493e9eacf139a14c3731 | heat_stack_owner | +----------------------------------+------------------+ ## (ユーザ)にSwiftOperatorの権限を追加する # openstack role add --project (プロジェクト名) --user (ユーザ名) SwiftOperator # openstack role add --project demo --user sample-user SwiftOperator
Cinderボリュームの作成に失敗する
エラー内容
Apr 19 13:48:53 opsn01 cinder-volume: 2016-04-19 13:48:53.252 17685 ERROR cinder.volume.drivers.remotefs [req-ea0564cf-dfdd-4985-8bba-792af89bbd75 - - - - -] Failed to created Cinder secure environment indicator file: [Errno 13] Permission denied: '/var/lib/cinder/mnt/cc09943ea285efba3c4b578aa40e784c/.cinderSecureEnvIndicator' Apr 19 13:48:53 opsn01 cinder-volume: 2016-04-19 13:48:53.259 17685 ERROR cinder.volume.drivers.remotefs [req-ea0564cf-dfdd-4985-8bba-792af89bbd75 - - - - -] Failed to created Cinder secure environment indicator file: [Errno 13] Permission denied: '/var/lib/cinder/mnt/cc09943ea285efba3c4b578aa40e784c/.cinderSecureEnvIndicator'
→パーミッションエラーの模様
(解決)NASサーバ側のディレクトリのパーミッション
Cinderのバックエンドで利用していたnasサーバのマウント先の権限を変更したら解決した
# chmod -R 777 cinder-vol/
FloatingIP、PublicのIPアドレスに疎通ができない
チェックするべきところ
- Publicネットワークが外部ネットワークになっているか
- Publicネットワークが「共有」になっているか
- プロジェクトのセキュリティグループにICMPを許可しているか
作成したインスタンスにHTTP接続ができない
チェックすべきところ
Cobbler+Ansible+PackstackでOpenstack(Liberty)マルチノードを構築した話(その2)
- 前回の話
- Packstack実行後の設定
前回の話
Packstack実行後の設定
Neutronの外部ネットワークへの接続設定
NetworkNode(opsn02)で実施
ifcfg-br-ex作成
## opsn02で実施 # vi ifcfg-br-ex DEVICE=br-ex DEVICETYPE=ovs TYPE=OVSBridge BOOTPROTO=static IPADDR=172.16.0.32 NETMASK=255.255.0.0 GATEWAY=172.16.0.1 ONBOOT=yes NM_CONTROLLED=no
ifcfg-xxxx修正
## 変更後 # cat ifcfg-xxxx DEVICE=enp2s0f0 ONBOOT=yes TYPE=OVSPort DEVICETYPE=ovs OVS_BRIDGE=br-ex
ネットワークサービス再起動
# systemctl restart network
openvswitch_agent.iniの設定変更
NetworkNodeとComputeNodeで実施
- TunnelNetworkのIPアドレスに変更
## opsn02-06で実施 (Controllerノード以外) # cd /etc/neutron/plugins/ml2/ # cp -p openvswitch_agent.ini openvswitch_agent.ini.org # diff openvswitch_agent.ini openvswitch_agent.ini.org 205,206c205 < #local_ip = 172.16.0.3x < local_ip = 10.10.0.3x --- > local_ip = 172.16.0.3x
neutron-openvswitch-agent サービスの再起動
# systemctl restart neutron-openvswitch-agent.service
Openstackの動作確認
adminユーザのクレデンシャルファイルを読み込む
# source /root/keystonerc_admin
セキュリティグループの追加
- これはプロジェクトごとに設定する
# nova secgroup-list-rules default +-------------+-----------+---------+----------+--------------+ | IP Protocol | From Port | To Port | IP Range | Source Group | +-------------+-----------+---------+----------+--------------+ | | | | | default | | | | | | default | +-------------+-----------+---------+----------+--------------+ ## ICMPを許可 # nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 ## SSHを許可 # nova secgroup-add-rule default tcp 22 22 0.0.0.0/0 # nova secgroup-list-rules default +-------------+-----------+---------+-----------+--------------+ | IP Protocol | From Port | To Port | IP Range | Source Group | +-------------+-----------+---------+-----------+--------------+ | | | | | default | | tcp | 22 | 22 | 0.0.0.0/0 | | | | | | | default | | icmp | -1 | -1 | 0.0.0.0/0 | | +-------------+-----------+---------+-----------+--------------+
初期ネットワーク作成
Neutronサービス動作確認
# neutron agent-list
publicネットワーク作成
# neutron net-list # neutron router-create router1 # neutron net-create public --router:external --shared # neutron subnet-create --name public_subnet --enable_dhcp=False --allocation-pool=start=172.16.100.2,end=172.16.100.253 --gateway=172.16.1.1 public 172.16.1.1/16
privateネットワーク作成
# neutron net-create private-net # neutron subnet-create --name private_subnet --enable_dhcp=True --allocation-pool=start=192.168.1.2,end=192.168.1.253 private-net 192.168.1.0/24 # neutron router-gateway-set router1 public # neutron router-interface-add router1 subnet=private_subnet
ネットワークの動作確認
# ip netns qrouter-5e22e13a-a9aa-4303-9b6a-xxxxx qdhcp-b1f7958a-f1d5-4147-a8ea-xxxxxx ## Ping疎通確認 # ip netns exec qrouter-5e22e13a-a9aa-4303-9b6a-1c3b1b36dfcc ping 172.16.100.1 # ip netns exec qrouter-5e22e13a-a9aa-4303-9b6a-1c3b1b36dfcc ping 192.168.1.2
→Pingが疎通することを確認
Glanceにイメージ登録
Glance image-list
# glance image-list
wgetrcの確認 (※Proxy配下の場合)
# grep proxy /etc/wgetrc | grep -iv "^#" http_proxy=http://xxx.xxx.xxx.xxx:(PortNumber) https_proxy=http://xxx.xxx.xxx.xxx:(PortNumber)
イメージファイルをダウンロード
# cd /tmp/ # wget http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img
glance-image-createでGlanceにイメージ登録
# glance image-create --name "cirros" --file cirros-0.3.4-x86_64-disk.img --disk-format qcow2 --container-format bare --visibility public --progress
# glance image-list
キーペアの作成
## opsn01で実施 # nova keypair-list +------+-------------+ | Name | Fingerprint | +------+-------------+ +------+-------------+
キーペア作成
# ssh-keygen -t rsa -f id_rsa
keypair登録
# nova keypair-add --pub-key ~/.ssh/id_rsa.pub mykey # nova keypair-list +-------+-------------------------------------------------+ | Name | Fingerprint | +-------+-------------------------------------------------+ | mykey | 3c:ef:17:79:86:6b:4b:61:e8:c3:eb:a7:d2:44:f8:b5 | +-------+-------------------------------------------------+
インスタンス作成
# nova list +----+------+--------+------------+-------------+----------+ | ID | Name | Status | Task State | Power State | Networks | +----+------+--------+------------+-------------+----------+ +----+------+--------+------------+-------------+----------+
Neutronネットワークid確認
# neutron net-list +--------------------------------------+----------+-----------------------------------------------------+ | id | name | subnets | +--------------------------------------+----------+-----------------------------------------------------+ | b1f7958a-f1d5-4147-a8ea-c7e480a193a4 | private-net | 8fb069e2-ff31-42e9-ac1e-53557d7d80c4 192.168.2.0/24 | | c11ecf00-657c-4898-a2d1-17a91b35fadb | public | d5e4b06b-7e37-4e1c-a4d7-f506342ac37a 172.16.0.0/16 | +--------------------------------------+----------+-----------------------------------------------------+
インスタンス起動
# nova boot --flavor m1.tiny --image cirros --nic net-id=b1f7958a-f1d5-4147-a8ea-c7e480a193a4 --security-group default --key-name mykey cirros-test001
FloatingIP確保
# neutron floatingip-create public Created a new floatingip:
FloatingIP割り当て
# nova floating-ip-associate cirros-test001 172.16.100.2
# nova list
Cinderボリューム作成
# cinder list +----+--------+------+------+-------------+----------+-------------+ | ID | Status | Name | Size | Volume Type | Bootable | Attached to | +----+--------+------+------+-------------+----------+-------------+ +----+--------+------+------+-------------+----------+-------------+
利用できるCinderタイプ確認
# cinder type-list +--------------------------------------+------+-------------+-----------+ | ID | Name | Description | Is_Public | +--------------------------------------+------+-------------+-----------+ | 7bca3c24-317c-44c8-8308-8ecb9d23033b | nfs | - | True | +--------------------------------------+------+-------------+-----------+
Cinderボリューム作成
# cinder create --volume_type nfs --display_name nfsvolume001 1
インスタンスへの接続
# nova volume-attach cirros-test001 bfa47292-e01d-4d93-9f28-c87e6c7034cc auto
インスタンスでボリュームを使用する
# ssh 172.16.10.1 # hostname cirros-test001 $ sudo -i # fdisk -l Disk /dev/vda: 1073 MB, 1073741824 bytes 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/vda1 * 16065 2088449 1036192+ 83 Linux Disk /dev/vdb: 1073 MB, 1073741824 bytes 16 heads, 63 sectors/track, 2080 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/vdb doesn't contain a valid partition table # fdisk /dev/vdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x75782e5b. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): p Disk /dev/vdb: 1073 MB, 1073741824 bytes 16 heads, 63 sectors/track, 2080 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x75782e5b Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-2097151, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): Using default value 2097151 Command (m for help): p Disk /dev/vdb: 1073 MB, 1073741824 bytes 16 heads, 63 sectors/track, 2080 cylinders, total 2097152 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x75782e5b Device Boot Start End Blocks Id System /dev/vdb1 2048 2097151 1047552 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. # mkdir /mnt/volume01 # mkfs.ext4 /dev/vdb mke2fs 1.42.2 (27-Mar-2012) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Allocating group tables: done Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done # mount /dev/vdb /mnt/volume01/ # df -h Filesystem Size Used Available Use% Mounted on /dev 242.3M 0 242.3M 0% /dev /dev/vda1 23.2M 18.0M 4.0M 82% / tmpfs 245.8M 0 245.8M 0% /dev/shm tmpfs 200.0K 72.0K 128.0K 36% /run /dev/vdb 1007.9M 33.3M 923.4M 3% /mnt/volume01 # cd /mnt/volume01/ # touch test.txt # ls -la total 21 drwxr-xr-x 3 root root 4096 Apr 19 08:05 . drwxrwxr-x 3 root root 1024 Apr 19 08:04 .. drwx------ 2 root root 16384 Apr 19 08:04 lost+found -rw------- 1 root root 0 Apr 19 08:05 test.txt
Glanceにcirrosイメージ以外の追加
参考:
Download pre-built images for OpenStack
CentOS6
## CentOS6_x86_64 # wget http://cloud.centos.org/centos/6/images/CentOS-6-x86_64-GenericCloud-1603.qcow2 -P /tmp # glance image-create --name "CentOS6_x86_64" --file /tmp/CentOS-6-x86_64-GenericCloud-1603.qcow2 --disk-format qcow2 --container-format bare --visibility public --progress
CentOS7
## CentOS7_x86_64 # wget http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1603.qcow2 -P /tmp # glance image-create --name "CentOS7_x86_64" --file /tmp/CentOS-7-x86_64-GenericCloud-1603.qcow2 --disk-format qcow2 --container-format bare --visibility public --progress
Ubuntu
## Ubuntu # wget http://cloud-images.ubuntu.com/releases/15.10/release/ubuntu-15.10-server-cloudimg-amd64-disk1.img -P /tmp # glance image-create --name "Ubuntu15.10_amd64" --file /tmp/ubuntu-15.10-server-cloudimg-amd64-disk1.img --disk-format qcow2 --container-format bare --visibility public --progress
Fedora
## Fedora # wget https://download.fedoraproject.org/pub/fedora/linux/releases/23/Cloud/x86_64/Images/Fedora-Cloud-Base-23-20151030.x86_64.qcow2 -P /tmp # glance image-create --name "Fedora_23_Cloud" --file /tmp/Fedora-Cloud-Base-23-20151030.x86_64.qcow2 --disk-format qcow2 --container-format bare --visibility public --progress
続きは次回
Cobbler+Ansible+PackstackでOpenstack(Liberty)マルチノード環境を構築した話(その1)
- 概要
- 構成図
- 参考
概要
- Openstackでマルチノード環境を構築した話
- バージョンはLiberty
構成図
環境
- 物理ノード x 6台(Openstackノード)
- ControllerNode x 1台
- NetworkNode x 1台
- ComputeNode x 4台
- NetworkはNeutronを使用し、VXLANでTunnelNetWorkを
- HAなど冗長性はなし(これからやりたい)
- Nasノード1台(Cinderのバックエンド) ※別途構築済み
No. | Hostname | IP | CPU Clock | RAM | Disk | OS | Role |
---|---|---|---|---|---|---|---|
1 | opsn01 | 192.168.1.31 | 2.40GHz | 54GB | 400GB | CentOS 7 | ControllerNode |
2 | opsn02 | 192.168.1.32 | 2.40GHz | 54GB | 400GB | CentOS 7 | NetworkNode |
3 | opsn03 | 192.168.1.33 | 2.40GHz | 54GB | 400GB | CentOS 7 | ComputeNode |
4 | opsn04 | 192.168.1.34 | 2.40GHz | 54GB | 400GB | CentOS 7 | ComputeNode |
5 | opsn05 | 192.168.1.35 | 2.40GHz | 54GB | 400GB | CentOS 7 | ComputeNode |
6 | opsn06 | 192.168.1.36 | 2.40GHz | 54GB | 400GB | CentOS 7 | ComputeNode |
7 | nas01 | 192.168.1.50 | 2.66GHz | 2GB | 4TB | CentOS 6.7 | NAS(Cinder Backend) |
- Provisioningサーバ
- 仮想マシン
- Cobbler + Ansible
- 192.168.1.100
構築の流れをざっくり
Cobbler
Ansible
- OS基本設定を行う
- yum update
- Packstackパッケージの配布とインストール
- OS基本設定を行う
Packstack
- Openstackのデプロイを行う
- Answerファイル編集
- Packstack実行
- インストールしたコンポーネントの詳細はanswerファイルに記載
- Openstackのデプロイを行う
Cobbler
Kickstart留意点
1. AnsibleとKickstartのすみわけについて
KickstartはOSインストールのみに終始し、OSの設定などなるべくAnsibleで制御する方針。
2. パーティション設計
- ファイルシステムはRHEL7標準のxfs
- SwapのサイズはRedhat推奨のメモリの半分
- 拡張・伸縮性があるLVMを採用、VGは分けるメリットがないので、1つにする
- LVMは複数にわけず、1つのみ
- 理由はNovaの仮想マシンの実体ファイルが/var/lib/nova/instancesに配置されるため
## Kickstartファイル (opsn0x.ks) clearpart --all part /boot --fstype="xfs" --ondisk=sda --size=500 part pv.001 --fstype="lvmpv" --ondisk=sda --size=1 --grow volgroup VolGroup --pesize=4096 pv.001 logvol / --fstype="xfs" --name=lv_root --vgname=VolGroup --size=1 --grow logvol swap --fstype="swap" --size=27648 --name=lv_swap --vgname=VolGroup
3. NetworkManagerの停止
これだけはKickstart内で制御した
## Kickstartファイル (opsn0x.ks) # Service services --disabled=NetworkManager services --enabled=network
CobblerにDistribution、Profiles、Systemsを登録
参考:
noaboutsnote.hatenablog.com
Distribution登録
- Provisioningサーバで実施
- Opentackノード用のCentOS7のイメージを登録
# cd /mnt # wget http://www.ftp.ne.jp/Linux/packages/CentOS/7/isos/x86_64/CentOS-7-x86_64-Everything-1511.iso # mount CentOS-7-x86_64-Everything-1511.iso /mnt # cobbler import --name CentOS-7-x86_64-Everything --path /mnt # cobbler distro list CentOS-7-Everything-x86_64 # umount /mnt/
パッケージリポジトリのミラーリング
# cobbler repo add --name CentOS-7-x86_64-updates --mirror http://ftp.iij.ad.jp/pub/linux/centos/7/updates/x86_64/ # cobbler repo add --name CentOS-7-x86_64-extras --mirror http://ftp.iij.ad.jp/pub/linux/centos/7/extras/x86_64/ # cobbler repo add --name epel7 --mirror http://ftp.iij.ad.jp/pub/linux/fedora/epel/7/x86_64 # cobbler repo list CentOS-7-x86_64-extras CentOS-7-x86_64-updates epel7
Profiles登録
- OpenstackノードようのProfile作成
- Kickstartファイルを用意する
# cobbler profile add --name= --distro=opsn0x --kickstart=/var/lib/cobbler/kickstarts/opsn0x.ks # cobbler sync
Systems登録
## Cobbler system add # cobbler system add \ --name=opsn01 \ # system名を指定(addの場合はこの名前でsystemが作成される) --hostname=opsn01 \ # Hostnameを設定 --profile=opsn0x \ # 利用するprofileを指定 --interface=enp2s0f0 \ # 設定するインターフェースを指定 --mac=xx:xx:xx:xx:xx:xx \ # eth0のMACアドレス --static=1 \ # 固定IP or DHCP (DHCPの場合は0) --ip-addres=192.168.1.31 \ # IPアドレス --subnet=255.255.0.0 \ # サブネットマスク --gateway=192.168.1.1 \ # ゲートウェイ ~~~~~
Cobbblerでインストール実行
- 起動時にネットワークブートするようにすれば自動でインストールされる
OSインストールをやり直す場合
Cobbler側で二度同じホストでネットワークブートしないようになっているので、
明示的にネットワークブートできるようにする必要がある
# cobbler system edit --name opsn01 --netboot-enabled True →これを全ホスト分実行する # cobbler sync
Ansible
- OSインストール後の設定
- Packstackパッケージの配布を行う
参考:
noaboutsnote.hatenablog.com
Playbook実行
- Provisioningサーバで実施
# cd /etc/ansible-playbooks/playbook # ansible-playbook add-yum-conf.yml -i opsn -vvv -k # ansible-playbook common-for-centos7.yml -i opsn -vvv -k # ansible-playbook packstack_liberty.yml -i opsn -vvv -k
詳細はGithubに
Packstack
Answerファイル生成
## opsn01で実施 # packstack --gen-answer-file=/root/answer.txt
Answerファイルを編集
編集したところだけ記載
## SAHARAをインストール CONFIG_SAHARA_INSTALL=y ## HEATをインストール CONFIG_HEAT_INSTALL=y ## TROVEをインストール CONFIG_TROVE_INSTALL=y ## NTPサーバを指定 CONFIG_NTP_SERVERS=192.168.1.100 ## Computeノードを指定 CONFIG_COMPUTE_HOSTS=192.168.1.33,192.168.1.34,192.168.1.35,192.168.1.36 ## Netwrokノードを指定 CONFIG_NETWORK_HOSTS=192.168.1.32 ## Cinderのバックエンドをnasに指定 CONFIG_CINDER_BACKEND=nfs ## Cinderボリューム作成しない CONFIG_CINDER_VOLUMES_CREATE=n ## CinderのNFSマウント先を指定 CONFIG_CINDER_NFS_MOUNTS=192.168.1.50:/cinder-vol ## PublicNetWorkのインターフェイス名を指定 CONFIG_NOVA_NETWORK_PUBIF=enp2s0f0 ## PrivateNetwrokのインターフェイス名を指定 CONFIG_NOVA_NETWORK_PRIVIF=enp3s0f0 ## 固定IPレンジを指定しない CONFIG_NOVA_NETWORK_FIXEDRANGE= CONFIG_NOVA_NETWORK_FLOATRANGE= ## LBaaSをインストール CONFIG_LBAAS_INSTALL=y ## Metering_Agentをインストール CONFIG_NEUTRON_METERING_AGENT_INSTALL=y ## FWaaSをインストール CONFIG_NEUTRON_FWAAS=y ## VPNaaSをインストール CONFIG_NEUTRON_VPNAAS=y ## Swiftをストレージ容量を100Gに指定 CONFIG_SWIFT_STORAGE_SIZE=100G ## HEAT_CLOUDWATCHをインストール CONFIG_HEAT_CLOUDWATCH_INSTALL=y ## HEAT_CFNをインストール CONFIG_HEAT_CFN_INSTALL=y ## demoプロジェクトを作成しない CONFIG_PROVISION_DEMO=n
先にrpm --importをしておく
- 環境がProxy配下の場合、rabbitmqのrpmkeyのところでエラーで失敗するので、先にrpmkeyをインストールしておく
- Proxy配下でない場合は不要。
# rpm --import http://honyarara/gpg-key --httpproxy ***.***.***.*** --httpport **** # rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc --httpproxy 192.168.1.1 --httpport 8080
Packstackインストール
# packstack --answer-file=/root/answer.txt
→エラーが出たら、ログを見て
adminのパスワードを確認
/root/keystonerc_admin
に書いてあるので確認する
ダッシュボードにログインする
続きはまた次回
参考
Packstackで最新バージョン以外を使う
Packstackを使ってOpenstackをインストールしようと思ったときに、
最新バージョンではなく、1つ前のバージョンを試したいってときに。
公式では
On RHEL:
$ sudo yum install -y https://www.rdoproject.org/repos/rdo-release.rpm
$ sudo yum update -y
$ sudo yum install -y openstack-packstack
$ packstack --allinoneOn CentOS:
$ sudo yum install -y centos-release-openstack-mitaka
$ sudo yum update -y
$ sudo yum install -y openstack-packstack
$ packstack --allinone
最新版のPackstackのリポジトリの中身
RHELの場合
# cat /etc/yum.repos.d/rdo-release.repo [openstack-mitaka] name=OpenStack Mitaka Repository baseurl=http://mirror.centos.org/centos/7/cloud/$basearch/openstack-mitaka/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
ここを探す
https://repos.fedorapeople.org/repos/openstack/
20160617時点で以下があった
[DIR] openstack-kilo/ 2016-05-12 11:17 - [DIR] openstack-liberty/ 2016-04-22 14:52 - [DIR] openstack-mitaka/ 2016-04-22 14:51 - [DIR] openstack-trunk/
# yum install https://repos.fedorapeople.org/repos/openstack/openstack-liberty/rdo-release-liberty-1.noarch.rpm
ってやると
# cat /etc/yum.repos.d/rdo-release.repo [openstack-liberty] name=OpenStack Liberty Repository baseurl=http://mirror.centos.org/centos/$releasever/cloud/$basearch/openstack-liberty/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
→「liberty」が入る
CentOSの場合
yumでパッケージ名がバージョンごとになっているので、それを指定してインストールすればいいっぽい。
# yum search centos-release-openstack- 読み込んだプラグイン:fastestmirror Loading mirror speeds from cached hostfile ~~~~ ===================================================== N/S matched: centos-release-openstack- ====================================================== centos-release-openstack-kilo.noarch : OpenStack from the CentOS Cloud SIG repo configs centos-release-openstack-liberty.noarch : OpenStack from the CentOS Cloud SIG repo configs centos-release-openstack-mitaka.noarch : OpenStack from the CentOS Cloud SIG repo configs Name and summary matches only, use "search all" for everything.
以下で使い分けられそう
# yum install centos-release-openstack-kilo # yum install centos-release-openstack-liberty # yum install centos-release-openstack-mitaka