thirose’s blog

openstackやpythonなどなど

2018-01-01から1年間の記事一覧

yumでDBが壊れた場合の対処

稀にしか遭遇しなくて、毎回忘れて調べてるので備忘録 久々にyum upgradeとかyum installとかしようとするとエラーがでます。 error: rpmdb: BDB0113 Thread/process 159007/140390399924224 failed: BDB1507 Thread died in Berkeley DB library error: db5…

flask+gunicornでgeventを使い、非同期処理にする

flask+gunicornなバックエンドでworker-classがデフォルトのsyncで同期処理をしていたのを非同期処理ができるように設定を変更しました。 同期処理の何が問題かというと、backendの処理に時間がかかる and プロセス数以上にリクエストがきてしまった場合、pr…

Designateのビルドをしてたら、UnicodeEncodeErrorがでてきた

今回はOpenStackのDesignateでおきたエラーですが、他のミドルウェアでも起きる可能性はなくないと思うので、エラーとその対応をまとめます。 今回はpythonの2.7.13が必要だったけど、CentOSのpythonが2.7.5だったため、pyenvを入れて対応しようとしていた時…

SAMLを使ったSSOログインの設定と問題

SAMLを使ったログインをOpenStackで実現する場合は、mellon または shibbolethといったモジュールを使用することになります。参考資料 今回はmellonとは、mod_auth_mellon のことで、それを検証してみたのでその中で気が付いた問題をまとめました。 セットア…

Ansibleでvault使う時は変数ごと暗号化する

OpenStackをdeployするのにAnsibleとか使うと便利だったり?します。 便利かどうかはさておき、Vaultをファイル単位で暗号化しgithubで管理し始めると、何をどう変更したのかわからない。 という問題が発生します。そこで変数ごと暗号化していくのが変更を管…

keystoneのtoken

KeysoneのTokenには、Project Scoped Token, Domain Scoped Token, Unscoped Tokenがあります。(System scoped tokenは除外します) 各Tokenにどういう用途があるのか、まとめました。 Project Scoped Token これは、管理者よりユーザが一番使うであろうToken…

Moto E5を買った

昨年の夏ぐらいからそろそろiPhone5sから他のに変えようと考えはじめ、google pixelとかpixel2とか考えてたらいつのまにか1年が経とうとしてたこのタイミングでMoto E5を見つけたので購入。 当初は片手で操作出来ないと嫌だなーというのが第1にあったんだけ…

python3.5.0だけtracebackの返値が違っていたバグに当たった

今回はたまたま、openstackのnovaclientを使っていたらバグを発見しました。 その時のログはこちら -> This report is written about novaclient. · GitHub バグの内容 python3.6を普段使ってるけど、もともとpython3.5.0で動いていたスクリプトで、普段と違…

バンクーバーに行ってきた

OpenStack Summitに参加するため、バンクーバーに行ってきました。そっちの感想等は他のブログにまとめています。 最近は仕事で英語が必要になり、レアジョブで英会話レッスンをひたすらしてたけど不安といえば少しは不安でしたが、心強い英語が堪能な同僚が…

OpenStack Summit Vancouver 2018

最近仕事でOpenStackの開発・運用に関わっていてその関係もあり、OpenStack Summitに参加させてもらいました。 OpenStack Summit | Vancouver 2018 OpensStackって何? そもそもOpenStackって何?って思った方もいるかと思いますが、プライベートクラウドを…

openstackのnovaclient使ってvm instanceを立ち上げる

最近まで知らないことだらけだったので、vm instanceを作るときはnovaclient以外にも neutronclientとかglanceclientとかを使いnetworkやIamageやflavorの情報をとってinstanceを作成してました。 今回は、novaclientでできることはnovaclientでやることにし…

configでのエラー対応

python3.5を使っていて、import config したらパッケージ内部でエラーが出てきた。 まずは、例外処理がpython2での書き方だったっぽく Exception as e みたいに書き直せば大丈夫 File "/home/develop/.pyenv/versions/3.5.3/lib/python3.5/site-packages/con…

MongoDBを使う時に使うODM

MongoDBの良さげなODMをさがして使ってみた。

キャッシュのデータを削除しても参照できてしまう。

今回のケースはpythonでsimplecacheを使っていて、キャッシュを消しても消えてないという事象に遭遇したので原因を調べてまとめてみました。 from werkzeug.contrib.cache import SimpleCache import threading import time import datetime class TestThrea…