OpenStack keystoneをwindowsで構築してみた
始め
KeystoneをcloneしてPycharmで開いてみた。色んなmissing packagesの警告が出た。
「これ嫌だな。」
この話はここから始まった。
何年か前にPycharmのmissing packagesを解消しようとしたことがあった。その時にはPyPIとwindows用wheelで解決しようとしたが、結局失敗。名前は思い出さないがWindows用のpackageがないものがあった。
それを今回はconda install -c conda-forge
を利用してやってみた。これだけ使っては上手くいけない場合もあったのでPyPIも使いながらインストールすると何となくdependencyを揃うことが出来た。(私はconda3をインストールしたのでpython3.6の環境だ。)
時には pip install "pysaml2<4.0.3,>=4.0.2"
こんなコマンドも使った。
「へー、もし動ける?」
結果、動けた。
参考文書はやっぱりopenstack document。
https://docs.openstack.org/keystone/latest/install/keystone-install-rdo.html#install-and-configure-components
基本コンセプトは、以下をWindows上に実行すること
conda create -n openstack && activate openstack
cd c:\dev\keystone && pip install -e .
- package 設置
- mysqlをインストール
-
keystone-manage db_sync
でテーブル自動生成する -
keystone-manage bootstrap
でテーブルに基本情報をInsert
する - apache24をインストールする
- mod_wsgiをインストールする
- http.confを設定する
- apache24を起動
conda create -n openstack && activate openstack
virtualenvも良いけどconda-forgeが提供するwindows用packageは最高。今はvirtualenvは使わない。pycharmもinterpreter設定画面でcondaをサポートしてくれてるし。
cd c:\dev\keystone && pip install -e .
keystoneをforkしてからcloneした。これから沢山のbranchを作りながらいじってみるから。
package 設置
ここはconda search <packagename>
やpip search <packagename>
で何となく出来る
mysqlをインストール
一応最新をインストールした。「No thanks, just start my download」
設置したコンポネントはserver only
keystone-manage db_sync
でテーブル自動生成する
keystone-manage bootstrap
でテーブルに基本情報をInsert
する
apache24をインストールする
mod_wsgiをインストールする
windows用precompiled wheelをダウンロードした。
http.confを設定する
LoadFile "c:/programdata/anaconda3/envs/openstack/python36.dll"
LoadModule wsgi_module "c:/programdata/anaconda3/envs/openstack/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/programdata/anaconda3/envs/openstack"
Include conf/wsgi-keystone.conf
wsgi-keystone.confは最初はc:\dev\keystone\httpd\wsgi-keystone.conf
をcopyしてやってみた。失敗。
理由はWindows用のmod_wsgiには具現されてないfeatureがあったこと。
色々工夫して成功したのが以下の内容だ。
Listen 5000
Listen 35357
<VirtualHost *:5000>
# WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
# WSGIProcessGroup keystone-public
# WSGIScriptAlias / /usr/local/bin/keystone-wsgi-public
WSGIScriptAlias / /usr/bin/keystone-wsgi-public.py
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
# LimitRequestBody 114688
#<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
#</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
# <Directory /usr/local/bin>
<Directory /usr/bin>
# <IfVersion >= 2.4>
Require all granted
# </IfVersion>
# <IfVersion < 2.4>
# Order allow,deny
# Allow from all
# </IfVersion>
</Directory>
</VirtualHost>
<VirtualHost *:35357>
# WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
# WSGIProcessGroup keystone-admin
# WSGIScriptAlias / /usr/local/bin/keystone-wsgi-admin
WSGIScriptAlias / /usr/bin/keystone-wsgi-admin.py
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
# LimitRequestBody 114688
#<IfVersion >= 2.4>
ErrorLogFormat "%{cu}t %M"
#</IfVersion>
ErrorLog /var/log/apache2/keystone.log
CustomLog /var/log/apache2/keystone_access.log combined
# <Directory /usr/local/bin>
<Directory /usr/bin>
# <IfVersion >= 2.4>
Require all granted
# </IfVersion>
#<IfVersion < 2.4>
# Order allow,deny
# Allow from all
#</IfVersion>
</Directory>
</VirtualHost>
# Alias /identity /usr/local/bin/keystone-wsgi-public
Alias /identity /usr/bin/keystone-wsgi-public.py
<Location /identity>
SetHandler wsgi-script
Options +ExecCGI
# WSGIProcessGroup keystone-public
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
</Location>
# Alias /identity_admin /usr/local/bin/keystone-wsgi-admin
Alias /identity_admin /usr/bin/keystone-wsgi-admin.py
<Location /identity_admin>
SetHandler wsgi-script
Options +ExecCGI
# WSGIProcessGroup keystone-admin
WSGIApplicationGroup %{GLOBAL}
WSGIPassAuthorization On
</Location>
keystone-wsgi-public.pyとkeystone-wsgi-admin.pyはkeystone repositoryでは提供されてないので、ubuntuのやつをcopyしてshebangだけ#!/ProgramData/Anaconda3/envs/openstack/python
にした。
apache24を起動
次やってみたいこと
一応、dbからではなくcsvファイルから認証するようにするにはことをいじればいいか調べたい。
以上。
後書き
Apacheなしで起動することもできた。
このファイルをPycharmでDebugモードで実行することもできる。
Author And Source
この問題について(OpenStack keystoneをwindowsで構築してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/crowdy/items/3779a92b9a5eb44e9f63著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .