はるかのブログコンテンツへスキップはるかのブログ﻿メニューとウィジェットプロフィールじゅん主にLinux系のインフラエンジニアで、オンプレミス環境、AWSを中心としたインフラ設計・構築に携わっています。ここ数年は、SQLServerの設計、構築、運用や、Fluetd、embulk、BigQueryを組み合わせたビッグデータの転送基盤構築なども行なっています。Actionsを使ってみましたのでメモを残します。Registry)にアップロード3GCRよりGKE上のkubenetesにデプロイ4部分的にチャットワークにメッセージ送信の4つです。GCPのcredential.jsonをGithubのSercretに登録するGCPを触るので、事前に取得した認証ファイルを使うことになりますが、リポジトリ内に認証ファイルを上げずに、githubのsercretに登録します。jsonファイルの中身をそのまま貼り付けるのではなく、base64エンコード形式で貼る必要があります。#認証ファイルGithubActionファイルの作成Actionメニューより、NewWorkFlowを選択します。以前の情報を見ると、初期の頃はビジュアライズなインターフェースで作成が出来たようですが、今はYAML形式での記載になります。imageのテンプレートを選びます。リポジトリの/.github/workflows/dockerimage.ymlとしてテンプレートが挿入されるので、以下のようにカスタマイズします。deployを強制する為にマニフェストの一部を置換しています。"https://api.chatwork.com/v2/rooms/${ROOM_ID}/messages"一度定義したenvは他の場所でも参照出来ると思います。flaskで作りましたOSの環境変数(.bash_profileなど)にLINE_CHANNEL_SECRETとLINE_CHANNEL_ACCESS_TOKENを設定します。pythondkronを触ってみたcrondで動くジョブスケジューラーがSPOFになっているサービスは多いと思う。自社サービスも例に漏れずに、そうなっているので良さげなジョブスケジューラーが無いのか探していたところ、dkron(https://dkron.io/)というOSSがシンプルで良さげだったので、触ってみた。発展途上なのか、GUIの表示で部分部分がおかしい箇所もあるが、crondよりは十分と思える動きです。バックグラウンドサービス昨日作ったetcdを使います。dkron設定サーバー3台でクラスタを作成する為、それぞれ設定します。node03はfalseとします。[Dkron]設定後にdkronを起動します。dkronVirtualBoxのポートフォワードの設定後、http://localhost:8080にアクセスすると、dkronのダッシュボードが表示されます。ジョブは以下のようにjsonで登録します。crondと近い書き方。batch:2であれば、3台中2台のノードで実行する。trueを2台は必須と思われます。先日、開発用サーバーがDiskFullで停止した。/どうやら、logrotateで圧縮したファイルを握っている残留プロセスがあり、消せないファイルとして握られているようだ。killしたところ、dfでみた場合の容量が正常値に戻った。Linuxetcdのクラスタ設定でハマった事まとめ初めてetcdを触ってみたので、個人的にハマったポイントも含めて備忘録を残します。https://qiita.com/hana_shin/items/602f98bd9b153d22e50cに記載がある通り。本日、小学6年生の息子にスマホを買って上げました。子供にスマホを持たせるのは賛否両論がありますが、今は部活の連絡もLINEで連絡が回ってくる時代なので、我が家では「まだ早い!」と突っぱねるのでは無く、子供にネットリテラシーなどを覚えて貰うきっかけになればと思い、持たせることにしました。システム的な制限の2つを掛け合わせて運用してみる事にしました。スマホのルール色々なサイトを参考にしましたが、基本的にはスマホ18の約束を真似て作っています。作成したスマホルール我が家のルールは、緩い方だと思います。そこは、子供への信頼や、後述するシステム的な制限を入れているというのもあります。こんなルールを作る必要があるのか?子供を制したいのでは無く、自由にさせてあげたい。守って欲しい最低限のルールしか書いていません。我が子は、「例えば・・・」の話をした方が理解しやすいみたいで、沢山例を上げました。「俺の事を信用していないの!?」となります。システム的な制限と言っても大げさな物ではありません。我が子に買って上げたスマホは、Androidのミドルクラス(3万〜4万)のスマホです。ファミリーリンク」を使いました。ファミリーリンクで、とりあえずは以下の制限を行なっています。可能な限り、子供向けコンテンツのみ表示(1)(2)は、1週間のスケジュール設定が行えますが、祝日や冬休みの対応は、変更が必要です。変更は、親のスマホにインストールしたファミリーリンクアプリから出来ます。(3)は、文字通り強制的に画面をロックし、緊急電話しか行えなくなります。子供がパスワードや指紋認証でロックを解除した場合、以下のように表示されるので子供にも分かりやすいですね(4)は、子供がPlayストアでアプリをインストールしたい場合、保護者に承認を送る事が出来ます。「それじゃ遅いよ!!」という嫌われポイントが少なくなります。子供からリクエストが来たら、電車の中だろうと確認して「承認」をすれば良いだけですからね。有料のコンテンツは、奥さんに確認してから承認、却下をするだけですし。chromeとかgoogleのアプリ限定で機能するのではないでしょうか?実際、LINEのトーク内のURLをクリックしてWebブラウザを起動した場合、制限を行なっていてもアダルトサイトなど見えてしまう状態です。ネットワーク周りのフィルタリングを、もう少し強化する為に、WifiのアクセスポイントをIO-DATAのWN-AX2033GR2に変更しました。従来モデルでご好評の悪質サイトやフィッシングサイトをフィルタリングする「ネットフィルタリング」機能(5年無料)や、お子様の利用時間を制限する「ペアレンタルコントロール」機能はもちろん、パソコンやスマートフォン、ゲーム機など、Wi-Fi接続端末を管理できる「Wi-Fiマモル」機能を搭載。セキュリティ効果を高めることができます。こちらはネットワークでの制限になるので端末のMACアドレスが必要になります。設定してみると不適切なコンテンツを閲覧しようとした場合に、Wifiのエラー画面に遷移します。2018の13日目の記事です。(後追い)プロキシサーバーと言えばsquidと思い浮かべるように、どメジャーなミドルウェアですが、今回はsquidを使って「複数のグローバルIPでインターネットにアクセスするプロキシサーバー」を作ってみました。複数人でプロキシサーバーを使ったアクセスを行うと、すぐに接続元IPアドレスによるアクセス拒否が行われてしまうサイトにアクセスする際にどうぞ。アドレスの最大数が異なりますので以下を参考にして下さい。https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-eni.html今回はt2.largeにし、eth0の18080ポートで、外部からの通信を受け入れ、eth1に9個のセカンダリプライベートIPをアサインして、それぞれにElasticIPを付け、計10個のIPアドレスからインターネットに出るようにしたいと思います。インスタンスを作る上で注意する点は、最初からeth1を作成する事ぐらいです。Typeで作成しています。インスタンスが起動したら、メニューからIPアドレスの管理を選択します。eth1側に必要な数分、プライベートIPを割り当てます。ここでは、DHCPでアドレスが割り当たりませんので、手動で入力していく必要があります。(当たり前ですが、eth1が所属するサブネットの範囲で割り当てて下さい)なお、eth1のeni-で始まる管理番号は、次で利用しますので控えておいて下さい。忘れないように、セキュリティグループの穴あけもやっておきましょう。ElasticIPを発行するElasticIPを発行します。ここで注意する点は、eth1のセカンダリIPアドレスに割り当てるElasticIPは、ネットワークインターフェイスでのみ検索、表示出来る。ラジオボタンがインスタンスのままだと表示されません。複数のグローバルIPアドレス分、この割り当て作業を繰り返します。squidエラーが無く起動が出来れば、eth0に割り当てたElasticIPの18080をブラウザのプロキシに設定し、IP確認くんなどで通信確認とeth1のセカンダリIPアドレスに割り当てたElasticIPで通信が行えているか確認をしてみて下さい。2018の8日目の記事です。ユーザーとしてAPIを使って、Gmailのメールを方法はいくつか見つけましたが、管理者視点での操作をしている情報が少なかったので、備忘録として残します。特定のユーザーがメールが一杯になってしまうと、送信側であるお客様や取引先に迷惑が掛かるので、Gsuiteの管理者の視点としてGsuiteユーザーのGmailの容量(標準だと30GB)の利用統計を取りたい。いうのがあると思います。Thunderbirdなどのメーラーを使ってGmailを使っている人は、今の容量を知る術がありません。そこで、日時でGsuiteの全ユーザーの情報を取得するスククリプトを書いて、日時で回して運用する事にしました。作成したコードは以下になります。OAUTH認証設定(https://console.cloud.google.com/apis/credentials/consent?)を行なって下さい。認証情報を格納するディレクトリ「.credentials」の設定。'%Y-%m-%d')取得対象日時の指定です。Gsuiteのレポートは、リアルタイム性はありません。12/8に前日分の情報を取得しようとすると、スクリプトを回すと以下のように怒られます。later">メールだけの正確なチェックではなありませんが、usage_percentが高いユーザーに連絡を行い、事前にデータの整理を行なってもらうように促せます。pythonSSH接続時にMacのターミナルのプロファイルを切り替える何故、YAMAHA機器の文字コードはsjis何だろう・・・と嘆いていましたが、MacのターミナルからSSHの接続先でプロファイルを切り替える方法を記載します。itermでも同様の事が行えるようですが、sshのconfigのHostname情報と完全一致しないとプロファイルの切り替えがダメそう。iTerm2でSSHログイン先別にプロファイルを自動的に切替えて事故防止する方法192.168.x.xはYAMAHAしかないし、複数のL2スイッチ、L3スイッチ、ルーターとconfigを書きたくないんじゃー!という方向け。ターミナルのプロファイルを好きに作成します。Homebrewから複製。Homebrewから複製。背景は拾ったネットワークチックな画像に差し替え。文字コードをsjinに変更。~/.bash_sshなどに以下のスクリプトを記載します。$@fi実行権限を付けるのを忘れないように。~/.bash_ssh.bash_profileで、sshコマンドへのaliasを設定します。最終行に以下を追記します。$@"これで、itermのプロファイル切り替えとほぼ同等の事が出来るようになります。違う点は、sshで接続終了後「ターミナルのデフォルトのプロファイル」に戻らないのは美しくありませんが、他のサーバーに繋ぐと改めてプロファイルが適用されますので、あまり気にしない事にします。