Symfoware

Symfowareについての考察blog

avconv(ffmpeg)でmp4の動画ファイルからjpg形式で画像を取り出す

Python YouTubeの動画をダウンロード(pytube,Pafy)

ここで取得したmp4形式の動画ファイルを1秒毎にjpg画像で切り出してみます。



avconv



画像の切り出しはdebian 8で行いました。

動画といえばffmpegだろうと思っていたのですが、
https://wiki.debian.org/ffmpeg

今はffmpegからフォークしたavconvがパッケージに登録されているようです。
apt-getでインストール。


# apt-get install libav-tools







画像の切り出し



ここが参考になりました。

https://gist.github.com/patrickward/7799742

https://wiki.libav.org/Snippets/avconv



# avconv -i target.mp4 -vsync 1 -r 1 -an -y -qscale 1 '%4d.jpg'



これで1秒毎に連番のjpgファイルが出力されました。
「-qscale 1」のオプションを指定して、jpgのクオリティーを上げておくと
劣化の少ない画像が取得できます。




テーマ:プログラミング - ジャンル:コンピュータ

  1. 2017/01/24(火) 00:22:07|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

汎用SQLクライアント「DBeaver」を Ubuntu 16.04へインストール

データベースサーバーに対してSQLを実行したい時、
普段は「HeidiSQL」を使用しています。

UbuntuでSQLを実行したい時、wineでHeidiSQLを実行すれば良いのですが、
sshトンネルがうまく動かせず困っていました。


DBeaver



DBeaver
Free Universal SQL Clientとのこと。

Java製のツールのようです。
Ubuntu 16.04にインストールして動かしてみます。


http://dbeaver.jkiss.org/download/
こちらから、Linux Debian package 64 bit (installer)をクリック。

728_01.png


ダウンロードした「dbeaver-ce_3.8.3_amd64.deb」をダブルクリックするとインストールできました。

728_02.png



起動と接続設定



dashで「db」ぐらいまで入力すると候補に表示されると思います。
アイコンをクリックして起動します。

728_03.png


初回起動時、データベースへの接続ウィザードが始まります。
接続できるデータベースの種類が多いです。
JDBCドライバーが用意されているデータベースは候補として選択できるようでした。

今回はMariaDBを選択しました。

728_04.png


接続情報を入力しています。

728_05.png

728_06.png

728_07.png


接続時、必要なドライバーがローカルに存在しない場合、jdbcドライバのダウンロード要求画面が表示されます。
「Download」をクリックして取得します。

728_08.png


接続できました。
Eclipseをベースにした画面のようですね。

728_09.png



SQLの実行



SQLを直接実行するには、「F3キー」を押してSQL Editorタブを追加。
SQL文を入力後、「Ctrl + Enter」で実行できます。

728_10.png


しばらく使ってみようと思います。




テーマ:プログラミング - ジャンル:コンピュータ

  1. 2017/01/22(日) 21:33:27|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

Kong 0.9.7をDebian 8にインストール

オープンソースのAPIゲートウェイ「Kong」
https://getkong.org/


Kong 0.9.7をDebian 8.7にインストールしました。
0.8系の時と設定ファイルの記載方法が微妙に異なっていたので改めてメモしておきます。
API GatewayのKongをDebian 8にインストール



PostgreSQL 9.6のインストール



データベースはCassandraとPostgreSQLのいずれかが選択できます。
今回はPostgreSQL 9.6を使用することにしました。

インストールはこちら。
Debian 8.7(Jessie)にPostgreSQL 9.6をインストールし、外部接続を許可する

ユーザー:pgadmin
パスワード:P@ssw0rd
で接続できるようにしておきました。

事前に「kong」というデータベースを作成しておきます。


# psql -h localhost -U pgadmin -W -d postgres
ユーザ pgadmin のパスワード: [pgadminのパスワードP@ssw0rd]
psql (9.6.1)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: オフ)
"help" でヘルプを表示します.

postgres=# create database kong;
CREATE DATABASE
postgres=# \q






debパッケージの取得とインストール



こちらを参考にしました。
https://getkong.org/install/debian/


必要なライブラリをインストール


# apt-get update
# apt-get install netcat openssl libpcre3 dnsmasq procps perl




debパッケージを取得。
kong本体をインストールします。


# cd /usr/local/src/
# wget https://github.com/Mashape/kong/releases/download/0.9.7/kong-0.9.7.jessie_all.deb
# dpkg -i kong-0.9.7.*.deb






設定ファイルの編集



設定ファイルの雛形をコピーし、データベース接続情報を記載します。


# cp /etc/kong/kong.conf.default /etc/kong/kong.conf
# vi /etc/kong/kong.conf




以前はyml形式でしたが、conf形式に変わったようです。
100行目付近にデータベースの設定があります。
コメントを解除し、設定を変更します。


database = postgres
pg_host = 127.0.0.1
pg_port = 5432
pg_user = pgadmin
pg_password = P@ssw0rd
pg_database = kong





設定が終わったら「kong start」でkongサーバーを起動してみます。


# kong start
migrating core for database kong
core migrated up to: 2015-01-12-175310_skeleton
core migrated up to: 2015-01-12-175310_init_schema
core migrated up to: 2015-11-23-817313_nodes
core migrated up to: 2016-02-29-142793_ttls
migrating hmac-auth for database kong
hmac-auth migrated up to: 2015-09-16-132400_init_hmacauth
migrating rate-limiting for database kong
rate-limiting migrated up to: 2015-08-03-132400_init_ratelimiting
rate-limiting migrated up to: 2016-07-25-471385_ratelimiting_policies
migrating acl for database kong
acl migrated up to: 2015-08-25-841841_init_acl
migrating ip-restriction for database kong
ip-restriction migrated up to: 2016-05-24-remove-cache
migrating jwt for database kong
jwt migrated up to: 2015-06-09-jwt-auth
jwt migrated up to: 2016-03-07-jwt-alg
migrating galileo for database kong
galileo migrated up to: 2016-04-15_galileo-import-mashape-analytics
migrating key-auth for database kong
key-auth migrated up to: 2015-07-31-172400_init_keyauth
migrating oauth2 for database kong
oauth2 migrated up to: 2015-08-03-132400_init_oauth2
oauth2 migrated up to: 2016-07-15-oauth2_code_credential_id
oauth2 migrated up to: 2016-12-22-283949_serialize_redirect_uri
migrating response-ratelimiting for database kong
response-ratelimiting migrated up to: 2015-08-03-132400_init_response_ratelimiting
response-ratelimiting migrated up to: 2016-08-04-321512_response-rate-limiting_policies
migrating basic-auth for database kong
basic-auth migrated up to: 2015-08-03-132400_init_basicauth
3 migrations ran
Kong started





ブラウザでhttp://[サーバーIP]:8001/にアクセスすると、ステータスが表示されるはずです。

727_01.png

テーマ:サーバ - ジャンル:コンピュータ

  1. 2017/01/15(日) 22:50:35|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

Debian 8 + NginxでActive Directory認証を使用する

nginxでの認証方法を調べています。

Debian 8 + NginxでBasic認証の設定
Debian 8 + NginxでPAMを使用した認証

今回は、pam_krb5を使用してActive Directory認証してみます。
Active DirectoryはWindows Server 2016で構築したものを使用しました。
Windows Server 2016にActiveDirectoryの機能を追加



nginxのインストール



pam認証モジュールが使用できるようnginx-extrasをインストールしました。
nginx-fullでも問題ないと思います。


# apt-get install nginx-extras




続いて、libpam-krb5をインストール。
これがケルベロス認証を行うモジュールになります。


# apt-get install libpam-krb5




インストール中、ドメイン名を尋ねられるので「大文字で」ドメイン名を入力します。

721_01.png


続いて、サーバーのホスト名の入力を求められます。
こちらはIPアドレスを入力しました。

721_02.png

721_03.png


ここで入力した値は、「/etc/krb5.conf」に反映されます。
もし、インストール時に初期値を指定しなかった場合は、直接ファイルを編集します。


# vi /etc/krb5.conf




追加されるのは以下の2箇所のようです。


[libdefaults]
    default_realm = TEST.LOCAL

# The following krb5.conf variables are only for MIT Kerberos.
    krb4_config = /etc/krb.conf
    krb4_realms = /etc/krb.realms


(略)


[realms]
    TEST.LOCAL = {
        kdc = 192.168.1.110
        admin_server = 192.168.1.110
    }







pamファイルの設定



ここでやったノウハウが役に立ちました。
Debian 8 + NginxでPAMを使用した認証

まず、Active Directory認証するための設定ファイルを作成します。
試行錯誤の結果、これで良いようです。


# vi /etc/pam.d/nginx_krb5



内容は以下の2行。


auth        sufficient    pam_krb5.so use_first_pass
account     sufficient    pam_krb5.so




続いて、このファイルを使用した認証を行うよう、nginxの設定ファイルを変更します。


# vi /etc/nginx/sites-available/default




テスト的に、locationに設定しました。


        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
                auth_pam "Secure Zone";
                auth_pam_service_name "nginx_krb5";

        }




「nginx_krb5」という名前は、/etc/pam.d/に作成したファイル名と揃えます。
auth_pamに指定する文字列は、認証ダイアログに表示されます。

設定が終わったらnginxを再起動。


# service nginx restart




これで設定は完了です。






認証テスト



Active Directoryに適当なユーザーを作成します。
今回は「madoka」というユーザーを作成しました。

721_04.png


ブラウザでアクセスしてみると、ちゃんと認証ダイアログが表示されます。

721_05.png


Active Directoryで設定したユーザーID、パスワードを入力すると認証を通過できます。

721_06.png

/var/log/auth.logに認証のログが出力されます。
こんなログが出力されているはずです。


Dec 4 22:46:20 debian-ad ker process: pam_krb5(nginx_krb5:auth): user madoka authenticated as madoka@TEST.LOCAL






【参考URL】


http://www.bnote.net/kuro_box/krb5_ad.shtml
http://infra.blog.shinobi.jp/Entry/93/

https://www.linux.iastate.edu/content/using-pam-kerberos-authentication-and-group-access-control
http://serverfault.com/questions/442286/restrict-su-to-domain-user-in-winbind-kerberos-linux-ad-integration

テーマ:サーバ - ジャンル:コンピュータ

  1. 2016/12/04(日) 23:28:47|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

Ubuntu Systemdでプログラムをサービス起動する(窓使いの憂鬱)

今まで窓使いの憂鬱(mayu)をinit.dで起動していました。
Ubuntu 16.04に窓使いの憂鬱をインストールする

OSを再インストールする機会があったので、init.dによる起動ではなく、
systemdによる起動に変更しようと思います。


serviceファイルの作成



こちらを参考にしました。
Systemdを使ってさくっと自作コマンドをサービス化してみる
systemdについて調べたメモ

窓使いの憂鬱のインストールと、設定ファイル(~/.mayu)の編集が終わっているところから始めます。

「mayu.service」というファイルを作成。


$ sudo vi /etc/systemd/system/mayu.service




内容は以下の通り。


[Unit]
Description = mayu daemon

[Service]
ExecStart = /usr/local/bin/mayu
Restart = always
Type = simple

Environment="HOME=[.mayuファイルを保存したディレクトリ]"

[Install]
WantedBy = multi-user.target




Environmentの指定は環境により異なります。
私の環境ではこうなりました。


[Unit]
Description = mayu daemon

[Service]
ExecStart = /usr/local/bin/mayu
Restart = always
Type = simple

Environment="HOME=/home/baranche"

[Install]
WantedBy = multi-user.target




サービスとして認識されたかチェックします。


$ sudo systemctl list-unit-files --type=service | grep mayu

mayu.service                             disabled



ちゃんと結果が表示されました。
サービスを有効にします。


$ sudo systemctl enable mayu




サービスを開始します。


$ sudo systemctl start mayu




ステータスを表示していみると、ちゃんと起動していますね。


$ sudo systemctl status mayu
● mayu.service - mayu daemon
Loaded: loaded (/etc/systemd/system/mayu.service; enabled; vendor preset: ena
Active: active (running) since 日 2016-11-06 16:46:24 JST; 9s ago
Main PID: 17350 (mayu)
CGroup: /system.slice/mayu.service
         └─17350 /usr/local/bin/mayu

11月 06 16:46:24 baranche systemd[1]: Started mayu daemon.
11月 06 16:46:25 baranche mayu[17350]: loading: /home/baranche/.mayu
11月 06 16:46:25 baranche mayu[17350]: loading: /usr/local/share/mayu/linux109.
11月 06 16:46:27 baranche mayu[17350]: successfully loaded.




init.dよりもお手軽になりました。



【参考URL】

Systemdを使ってさくっと自作コマンドをサービス化してみる
systemdについて調べたメモ

テーマ:サーバ - ジャンル:コンピュータ

  1. 2016/11/06(日) 23:03:58|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
前のページ 次のページ