Mov to mp4/gif with ffmpeg


For the sake of my memory.

mov to mp4

mov to animation gif


[LXD/LXC] lxd imageのexportとimport方法


LXDのversionは3.03

LXD export

作成してあるコンテナのイメージではなくて初期起動時にダウンロードしてくるOSイメージをexportするにはlxc launchで指定するイメージ名を引数にいれてexportする。

LXD import

version3.03ではtar.xzとsquashfsが作成されるのでこれを2つとも指定し、importする。aliasで名前をイメージ名を指定できる。:(コロン)は使えないので注意。

launchまでの速度比較

同じfingerprintのイメージをimageリストに持てないので、ubuntu16と18で比較してますが、、だいたい同じになると思います。

イメージダウンロード後にLaunch

約3分半。

importしてlaunch

52秒ぐらいで2分半は早く起動できることを確認!


RedashのLet’s encryptによるhttps化


Business IntelligenceのRedashはデータから経営判断するとても良いツールです。
SQLさえ書ければ、難しいプログラミング知識も必要のないのでテックに強いスタッフにSQLを勉強してもらえれば使ってもらえます。

AWSのAMIイメージも用意されてるのですぐに導入できます。しかし、TLS/SSL化されてないので大事なデータを傍受されてしまう危険性があります。
そこで、https化ですが、少し手間取ったので記録しておきます。

AMIを中身を見るとわかるのですが、DockerでRedash周りのプロセスが動いています。なので、方針として、ホスト側にlet’s encryptを入れる。Let’s encryptのキーがあるディレクトリをdockerからマウント。ホストでcertbotのリフレッシュで期限切れになるのを防ぐという感じです。

1. ホスト側にcertbot導入

方法はいろいろあると思いますが、AWSのRoute53を利用して作成しました。

参考:https://qiita.com/komazarari/items/88c1ed18765fb7cab6c1

https://certbot.eff.org/lets-encrypt/ubuntubionic-other通りにcertbotをインストールして、

pipでcertbot-dns-route53アドオンをインストール

AWSのsecretkey/apikeyをセットして、下記で/etc/letsencrypt以下にファイルを作成。systemd経由で期限切れの確認が走っているみたい。

2. Redash nginxのconfig作成

参考:https://gist.github.com/arikfr/64c9ff8d2f2b703d4e44fe9e45a7730e

redashのインストール場所に行って、ディレクトリとファイルを作成。

nginx.confは下記のようにした。

3. Redashのdocker composeファイルの編集

/opt/redash/docker-compose.ymlを開いて、

その後、リスタート。

systemdのpost-hook設定

直接certbot.serviceファイルを触るのはあまり良いプラクティスでなさそうだが、、

で開いて下記を追加(/usr/local/bin/certbotに変更。でないとバージョンのエラーで失敗していた)

sysytemdのコンフィグをリロードすればOK.


Rails経由でAWS Lambda(ruby)を使いファイルをs3にアップロードする方法


タイトルが渋滞していますが、、やったことは下記のこと。

  1. Railsが非同期ジョブ走らせる
  2. 非同期ジョブはlambdaをinvokeする
  3. lambdaがcurlでファイルを持ってきて、s3にアップロードする
  4. その結果のアップロード先URLをRailsのDBに保存

AWS Lambdaを触ったのは初めてです。nodeではなくrubyで動かします。まずは、AWS上にLambda関数を作ります。今回は、コードは短いだろうと予想し、ローカルにインストールせずにAWSのWEB UIのエディタを使いました。

Role 追加

登場ロールは2つ、Rails側でlambdaをinvokeするロールとlambda関数を走らせるロール

Rails側でlambdaをinvokeするロール

*全部必要ではないかもしれませんが、面倒なので全て権限をあげました。

lambda関数を走らせるロール

Rails側のコード

AWS Ruby SDK version2 です。RequestResponseだと同期で処理します。返り値を拾うためにもここは同期で処理。invoke_copy自体を非同期で走らせるイメージです。

Lambda関数のコード

AWS Ruby SDK version3です。Lambdaの/tmpのみがwritableな場所で、maxで512MBです。
したがって、これ以上コピーできません。


[Linux] シンプルなプロセス監視にはimmortalが便利


プロセスがなにかの理由で死んだら、単純にリスタートさせたい。けど、systemdとかmonitとかの設定ファイルを書くのが面倒だなって思っていて調べていた。シェル(Bash)でLoopでかけそうだけど、

Ref: Stackoverflow

これも面倒だと思ってしまいました。スクリプトの前にone command置く感じでやりたいなって調べてみると、immortalというツールを発見!早速インストール。

使い方もシンプルで

付属のimmortalctlで、管理できる。


sshのknown_hostsのチェックを無視する方法


動的にドメインを貼るようなシステムだと毎回SSHするたびにknown_hostが違うと怒られる。これを回避するには、いくつか方法があるが.ssh/configに下記を書くのが一番簡単だと思う。


[Ubuntu]古いバージョンのdockerのインストール方法


ある機能が現バージョンは動かなかったりで、昔のdockerをインストールすることがあった。
パッケージレポを設定して、apt-cache policyでイントールできるバージョンを確認して、現行のをアンインストールして、該当パッケージを入れるだけ。


[Chromeos]localhost:portをCrostini VMのIP:portにフォワードする方法


Crostiniがstableにきた!と思ってbetaからstableに変更したらLinuxVMが無くなりました。気をつけてください。。
stableに変更したのが理由なのかわかりませんが、socatでcrostiniのlocalhostのポートへのマッピングがうまくいかなくなりました。
例えば、開発時にlocalhost:3000をcrostini vm上で立ててもホストのchromeosのchromeからアクセスできなくなりました。

下記のようなエラーでうまくいきません。

解決方法をさがしているとRedditで同じようなことを聞いている人がいました。

Connection Fowarderdというextensionを入れ、forwardingを設定します。

ifconfigでVMのIPを調べてDestinationを適宜変更してください。


Vimの検索単語ハイライト時の背景色の変更方法


/で検索しているときにどれがハイライトされているかわからなかったので調べてみた。.vimrcに下記を追加。

色は下記で確認。

参考:https://stackoverflow.com/questions/7103173/vim-how-to-change-the-highlight-color-for-search-hits-and-quickfix-selection


Scroll to top