virshの学科ラッパーie-virshをRustで再実装した

これは琉大 Advent Calendar 2020の5日目の記事です。 昨日は未承諾広告※ shangliさんのクラスター計算機を作るときに気をつけたいことでした。 まだまだ琉大アドベントカレンダーは空きがあるので皆さんの参加お待ちしております!!! 学科システム さて僕た…

あるgitリポジトリのcommitterを全員出す

なんかRustのリポジトリに何人関わったか調べたくなったので、ググったらあった。 $git log --format='%aN' | sort -n | uniq 参考文献 www.commandlinefu.com

rustコンパイラのデバッグではrust-lldbはだめ

今日明日やっている河野先生のコンパイラ読み会で今年はRustを読んでいるけれど、rust-lldbはどうもrust compilerレベルの巨大なプロジェクトのデバッグは微妙っぽい。 どうも見たら公式がNone of the LLDB work is upstream. This rust-lang/lldb wiki page…

Growiで使っているmongodbのupgrade

普段運用しているgrowiがバージョン4.2.0がリリースされ、mongodb 4.4をサポートする様になったのでアップグレードしてみた。 github.com アップグレードに関してはドキュメントがあるのでドキュメントの通りにやっていくのが良い。 docs.growi.org 推奨され…

singularityを使ったRustコンパイラのデバッグビルド

学科システムにはsingularityというコンテナサービスを導入している。動かしているpodmanと比較するとこのあたりが便利と思っています。 ceph fs上でも結構高速に動作 root権限がいらない podmanもrootlessではあるが、ceph FS上だと遅い... singularity she…

Perlでgrowiのバックアップファイルからmarkdownを生成する(version1くらい)

研究室ではwikiとしてgrowiを使っています。 growi.cr.ie.u-ryukyu.ac.jp まぁ便利なのですが、growiはデータベースがmongoDBなので、心もとないという意見や、せっかく階層構造を持っているのでmarkdown単体で保存しておきたいという意見が出ています。 も…

pukiwikiのattachファイルをutf8なファイル名に変換する

pukiwikiではファイルアップロードをattachプラグイン経由で実行可能になっている。 attachでアップロードしたファイルは、index.phpがあるディレクトリの、attachディレクトリ以下に次のようなファイルとして保存される。 A5C7A5B8A5BFA5EBBFAEB9E6BDE8CDFD…

RustのXML操作ライブラリのquick_xmlを使ってみた

なんとなくRustを勉強している中で、virshのxmlを編集する必要が出てきたため、ググって一番最初に見つかったquick_xmlを使ってみました。 github.com quick_xmlは特徴としてRustのXMLライブラリの中でも特に早く動くらしいです。 cargo.tomlへの設定 0.20.0…

調子に乗ってentrypoint.shのshebangを省略しない

元気に$podman runしたところ、下記のようなエラーが出た standard_init_linux.go:211: exec user process caused "exec format error" 一体何を...バイナリでも壊したかな.......みたいな気分だったが、Dockerfileで最後のCMDとして指定している CMD ["./en…

Rustで文字列が数値かどうかの判定

String変数を.parseしてOkかErrかどうかで判定可能。 たぶん<u8>じゃなくて<u16>とかにすると範囲が拡大する。 let name = match name.parse::<u8>() { Ok(_) => String::from(format!("{}-{}", user_name, name)), Err(_) => name, }; この例だと数値が来ていた場合はuse</u8></u16></u8>…

ISUCON10に出場して再起動試験で泣いてきました

ISUCON10にチームINJとして学生枠で出場し、結果としては学生本戦出場枠には入っていましたが、再起動試験で失格でした。 isucon.net 今年は最後の学生枠みたいなところがあったので、まぁ思い出づくりも兼ねて id:unimarimo (jogo)と研究室の後輩でありシス…

openldapはldapsの代わりにldapを使っていても死なない

今日のツラミポイント。 学科で運用しているOpenLDAPサーバー(slapd)の設定(slapd.conf)で詰まったやつ。 別で作成したslapdをプロバイダにして、いままでプロバイダだったslapdをコンシューマーにしようと、設定を書いていた。 overlay syncprov syncrepl r…

ubuntu上にOpenLDAPの構築

学科というか琉大では学生のアカウント管理にLDAPを使っている。 学科の場合はセンター(大本)のLDAP情報を同期した、学科システム上に構築したslapdをLDAPサーバーとして活用している。 今年は学科システムの式年遷宮の年なので、Centosで従来動いていたシス…

netplanは拡張子にうるさい

netplanがapplyしても全然使い物にならなくてキレていたが拡張子が問題だった。 netplanの設定ファイルはYAMLで書くのだけれど /etc/netplan/ccc.yml だとだめで /etc/netplan/ccc.yaml じゃないとだめらしい。こういうので人生消費したくない........

新鮮なFedora32にwordpressを構築するansbile

ということで書きました。OSの課題で使ういつものやつです。 ie.u-ryukyu.ac.jp もともとは先輩が書いていたものですが、今年はシステム更新などでapacheを学科から追放したい気分があったのでnginxでリライトしました。といいつつ大体先輩のコードをそのま…

apacheからnginxへの移行時の証明書周りの設定

歴史的な理由もあり学科のweb周りはapacheが元気に稼働しているケースが多い。 とはいえもうapacheの面倒を見るよりはnginxに移行したほうが何かと便利そうなので、現在apacheからnginxへの乗り換えを仕込んでいる。 先週の台風の際に学科システムへのダメー…

ansibleでpackageのinstall時にloopは使わないほうが良い

教えてもらったので。 ansibleでyum,dnf, apt を使っていくつかのpackageをまとめてインストールする際に、癖でloop(with_items)を使っていたのだけど、これは非推奨らしい。 というのも - name: install dnf packages become: yes dnf: name: - "{{ item }}…

macのopenコマンドでURLっぽいファイルを指定したときの挙動

並行で学科のWordPressからコンテンツをダウンロードするくんを書いていた所、ミスでカレントディレクトリにhttp:/みたいなディレクトリを生成してしまった。 $ ls http:/ $ tree . └── http: └── anatofuz.net └── test.html 2 directories, 1 file こんな…

大乱闘障害復旧バトル2020/08/01-2020/08/02

ということで学科システムに障害が発生していました。具体的に言うと学科内から外に行けない、一部VMに学内からでもアクセスできないなどでした。 この障害は突然発生したものではなく琉大工学部で定期的に発生する計画停電によるものです。 原因としては3つ…

流れに乗って @xtetsuji さんからの出題をやってみる

ということで流れに乗ってみました。 毎週火曜日のペアプロ講習用に作成した問題を昨晩の #Perl入学式 オンラインミーティングで紹介したので Twitter でも紹介。情勢が収束したらまた懇親会でピザを食べつつお題に興じたい。 pic.twitter.com/n68luVPNEg— O…

シグナルでプロセスが終了されるとぴえんするコマンド作った

最近YouTubeでPIENのプレイ動画をよく見るので作りました pienの後に渡したプログラムがシグナルで死んだ場合はぴえんの歌が再生されます github.com なんとなくRustの勉強も兼ねてRustで書いてます。 地味にbrewでもダウンロードできるようになってます。 $…

apache -> nginx -> gitlab-ceのプロキシを止める

追記 2020/07/15 8080ポートはgitlabのrailsアプリケーションのポートなのだけど、ここに直接プロキシするのではなく、gitlabのHTTPのルーティングを行っているgitlab-workhorseの8181ポートに繋げないと駄目だった 自分が在籍している学科ではオンプレ上にg…

Akka実践バイブル読み始めた

追記 akkaとakkaHTTPを最新にしてみたら動いた diff --git a/chapter-up-and-running/build.sbt b/chapter-up-and-running/build.sbt index 1d6c95a..4e10c25 100644 --- a/chapter-up-and-running/build.sbt +++ b/chapter-up-and-running/build.sbt @@ -7,…

学科newsサイトのhugo移行への道のり 1

自分が在籍している学科(琉大工学部知能情報コース)は学科関連のお知らせをインターネット経由で流している。歴史的にはネットニュース(fj)時代から運用されており、その後wordpressに移行している。 現在はここから見れる。 WordPressでの運用は元気に動い…

golangのldflagsに引っかかった

golangにはビルド時のリンク関連の制御のldflagsオプションがある。 ldflagsを利用するとビルド時に変数の埋め込みなどが出来るのだが、これで引っかかった。 やろうとしていたことは次の様なコード。 環境変数の代わりにldflagsで変数埋め込みを行い、実行…

WEB+DB PRESS vol.117 「Perl Hackers Hub」 第62回「Perl歴史散策」に寄稿しました

というわけで一度投稿してみたかったエントリです!!! 2020年6月24日(水)に発売される WEB+DB Press Vol.117 の Perl Hackers Hub に「Perl歴史散策」を書かせていただきました!!みんな買ってくれ!!!!!! 沖縄だと多分無いですが大手書店では6月16日からテスト…

docker-composeのvolumeを途中から移動させたら上手く行かなかった

dockerでDBを使っているとデータを永続化させるためにローカルの特定のディレクトリなどをマウントさせる事が多い。運用しているdocker-composeを次のような感じで書いていた。 image: mongo:3.6 restart: unless-stopped volumes: - mongo_configdb:/data/c…

yaml, toml, json, hclの相互変換ツールsclevine/yjの紹介

yjっていうコマンド名多すぎ問題がある気がしますが、YAML, TOML, JSON, HCLの相互変換をしてくれるツールの紹介です。 tomlを使う必要があったのですが、いまいち形式になれてないのでjsonで見たいと思い探していました。 github.com プルリクとissueが溜ま…

個人サイトをGitHubPagesベースに変えた

ということで個人サイトこと anatofuz.net をGitHubPagesベースかつhttpsに変更しました。 anatofuz.net 以前までの個人サイト もともとこの個人サイトは、沖縄でGCPUGのイベントがあった際にLT駆動開発としてGoogle Domainでドメインを買って作成したもの。…

growiとhackmd(codimd)をhttpsで配信しながらhackmd連携を使う

研究室のwikiとして最近growiを使っている。 growiの構築には公式が出しているdocker-composeを使うのが便利で、研究室のwikiもこれを使って運用している。 さらにgrowiにはhackmdのOSSバージョンであるCodiMDを呼び出して使える機能があり、これも公式のdoc…