地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

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

【Linux】TCPの再送制御あたりのソースを眺める

概要 ブラウザからWebサーバを経由しAPサーバにアクセスする場合の通信に関する説明をざっくりまとめてみました。再送制御あたりがメインです。 記事を書こうと思った背景 AWSの資格学習をしていてRDSあたりのフェールオーバ ーあたりで「DNSベースでやるの…

【Linux】new macについてのリーナスの回答

www.realworldtech.com リーナスへの質問でM1 macについてどう思うかの回答があった。Linuxが動くなら欲しいと回答している。ARMベースのラップトップはずっと欲しかったらしい。 どこかしらはARMベースのmacでLinuxを動かそうとしてるプロジェクトはあるだ…

【GitHub Actions】ブランチ名やコミットIDなどをシェル芸やらずに欲しい値だけ抜き出すaction 「GitHub Environment Variables Action」が便利だった話

ryuichi1208.hateblo.jp ↑の記事を書いてる最中にもずっと思ってがGitHub Actionsが公式で提供してくれてるリポジトリ名って扱いづらいなと。 で、調べていたら同じようなことを思っている人たちはそれなりにいて(stack overflow調べ)いい感じに変数を設定し…

【Terraform】foreachが使えた話

Terraform を使ってVPCやらIAMユーザを管理する際に一つのtfで大量にパラメータを管理するの大変そうって思って調べてたらfor_eachが比較的最近のバージョンで入ったらしく使ってみたのでメモ。loopで書くよりも取得自体は直感的にでもないけど可読性は確実…

【AWS System Manager】基本情報

AWS

AWSでのDevOpsあたりの資料を読んでると結構頻繁に登場するSystem Manager。実際雰囲気しか理解してないしでいい機会なのでまとめてみた。 System Managerとは AWSでインストストラクチャを表示及び制御するためのAWSのサービス。複数のAWSのサービスのオペ…

【Bash】変数展開で置換をやるイロハ

100回ぐらいググっているやつ。bashにある変数展開は多機能だがその中でもたまにつかう置換機能の紹介です。 記法 概要 ${変数#パターン} 文字列先頭の最短マッチ部分を削除 ${変数##パターン} 文字列先頭の最長マッチ部分を削除 ${変数%パターン} 文字列末…

【Python】正規表現が取りうる値をリストで返してくれるライブラリ「sre_yield」

github.com タイトルの通り。書いた正規表現が取りうる値を表示してくれるツール 実行結果 実行するとこんな感じ。便利すぎる。。。 1-4-テスト 2-4-テスト 3-4-テスト 1-5-テスト 2-5-テスト 3-5-テスト 1-6-テスト 2-6-テスト 3-6-テスト 1-4-test 2-4-tes…

【AWS IAM】IAMポリシーに入門

AWS

AWS IAMポリシーとは 「誰が」「どのAWSサービスの」「どのリソースに対して」「どんな操作を」「許可する(許可しない)」、といったことをJSON形式で記述するもの。このJSONをロールやらユーザやらリソースへ紐付けてJSONの内容でアクセス制御するよって感じ…

【vim】Failed to load the ESLint library for the document

coc.nvimでjsを弄ってたらエラーが出てた。既にissueも上がってたのでそちらを元に対応。 github.com 対応 nodeのバージョンが古すぎてyarnが失敗してたのでそちらが原因。nodebrewも古くなっていたのでbrewを使ってそこからアップデートして対応した。 $ br…

【Fluentd】プラグインを追加する

$ gem install fluent-plugin-s3 $ fluentd -c sample.conf 別のターミナルで以下のようにすると、 $ echo hello >> input.txt S3のバケットの中身を見ると、データが保存されているのが確認できます。chunk_limit_records 1なので、1ファイルに1レコードの…

【Bash】エクスポネンシャルバックオフ

> Exponential Backoffこれ名前あったんだ。。https://t.co/vZomHNRHoF— Ryuichi@vimなにもわからない (@ryuichi_1208) November 16, 2020 仕組み自体は前から知ってたけど正式な名前はさっき知った。そして指数関数的なリトライの実装って実はライブラリが…

【GitHub Actions】set-envの代替え

github.blog set-env/add-pathがCVEの関係で非推奨となったらしい。すぐに対応する必要は無さそうだがどうせ使えなくなるのならと言うことで代わりに使える方法が書いてあったので使ってみた。 サンプルyaml echo "{name}={value}" >> $GITHUB_ENVみたいな感…

【GitHub Actions】 特定ブランチへのpushだけ動作するジョブ 2

ryuichi1208.hateblo.jp この前かいたやつの追加版。特定ブランチが単独じゃなくて複数だった場合に上のままだと無限にjobsが増えてしまう。その対策が以下のように書ける。 contains('refs/heads/develop refs/heads/main', github.ref) containsはGitHub A…

【Linux】autofsと始めるNAS

autofsとは 自動的に適切なファイルシステムをマウントするためのクライアント側のサービスです。クライアントが現在マウントされていないファイルシステムをアクセスしようとすると、autofs ファイルシステムはその要求に介入し、automountd を呼び出して要…

【Bash】パイプ有無での実行シェルの違い

シェルスクリプトを書いていて関数を定義した際にlocalを付けずに変数を宣言するとグローバル領域に定義されたような動作をする。これはこれでグローバルにフラグを持っておいて関数内で書き換えたりっていう処理を書くなら直感的で個人的には良いなと思って…

【Terraform】TerraformからAnsible

Terraformはリソースのプロビジョニングツール。Ansibleはサービスの構成管理を行うツール。同じIaCを実現するためのツールでもそれぞれ得意領域と言うのがあって使い分けるのがベストプラクティスな模様なので連携させてみた。 (Ansibleで無理やりリソース…

【Ansible】userモジュールが常にchangedとなってしまうのを防ぐ

- name: Creating user "{{ uusername }}" with admin access user: name: {{ uusername }} password: {{ upassword | password_hash('sha512') }} groups: admin append=yes userモジュール使ってパスワードを設定しようとすると毎回changedが出てしまいhan…

【OSS】plant umlのSVGをpushごとに生成してブラウザから確認する

OSS

github.com pmlファイルがpushされたら動くパイプラインを自前で書いてたがそれ用のアクションが便利だったので紹介してみる。*.pmlを指定するとそのファイルの更新時にSVGを自動で生成してブラウザから確認できるようにしてくれるアクション。 yamlの例 公…

【GitHub Actions】pull_requestイベントからメッセージを取得したい。

pull_requestのイベントからメッセージとかブランチとかを取得して何かをしたいワークフローがある場合に使える。PR->リリースみたいなケースでもこのフローを使っておけば問題ない予定。 PULL_REQUEST_NUMBER : ${{ github.event.pull_request.number }} PU…

【Terraform】そこそこ便利コマンドTips

一昨日あたりにterraformに入門した。 補間をいれる 必須なやつ。zshだとインタラクティブにオプションやらサブコマンドを選べるので無いと困るってぐらい必須 $ terraform -install-autocomplete 基本コマンド apply: 変更の実行。デプロイを行う。 Usage: …

【Docker】20.10のリリースノートが公開されていた

github.com 20.10のCHANGELOGが公開されていた。リリースはまだなので変更点を確認するぐらいしか今のところない(ビルドして使おうとは思わないので。。) RootlessのGAがとても大きそう。Rootlessのためにpodmanについて調べようとか思ってたけど何もしてな…

【Redis】scanの話と計算量

Redisで有名なKEYSは、特定のパターンにマッチするKeyを検索する手法。このコマンド自体はO(N)の計算量でありデータ数が多いとその他リクエストが詰まる。パターンマッチなんかやりたくても気軽に打てないコマンド。その計算量は耐えられない場合に使えるsca…

【Ansible】Platform darwin on host using the discovered Python interpreter

macでansible使ってたらでたメッセージ2.9っていう最近のバージョンを使うと出るらしい。 Platform darwin on host using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this…

【Ansible】: Invoking "yum" only once while using a loop via squash_actions is deprecated.

Ansibleの警告文をまじまじと見てたら見つけた警告文。シンタックス的には問題ないし動作も大丈夫だよって場合にエラーにならずにログに出てるようだ。 [DEPRECATION WARNING]: Invoking "yum" only once while using a loop via squash_actions is deprecat…

【Python】cv2で画像サイズを変更

会社の精算時に領収書の添付が必要なのだがスマホで撮影して添付しようとするとサイズが大きすぎってエラーがでる。windowsでどうやって小さくするんだって考えた結果書いた方が今後も使える気がすると思い書いてみた。(それっぽいソフトは大量に引っかかる…

【memcached】memcacehdのソケットバッファのサイズ

先日調べたソケットバッファに関する記事でmemcachedはどのくらいの値を設定してるのかと思って調べたのでメモ。 memcacehd.cでsetsockopt(2)を読んでいた static void maximize_sndbuf(const int sfd) { socklen_t intsize = sizeof(int); int last_good = …

【TCP】tcpdump特定フラグのたったパケットを採取する方法

tcpdump -i eth0 '(tcp[tcpflags] & tcp-syn)' != 0 www.tcpdump.org syn以外もrstやらpshも取れるので割と重宝してます。

【Linux】net.core.(r|w)mem_maxあたりの話

概要 netstatの実行でたまに見るSendQとかRecvQの値の決定はどこで行っているかを確認した際のメモ Send-Q/Recv-Qとは Recv-Q このソケットに接続されたユーザープログラムに渡されなかったデータのバイト数。 Send-Q リモートホストに受け入れられなかった…

サービスディスカバリに関するメモ書き的なもの

概要 サービスディスカバリを初めてみたのでそのメモ サービスディスカバリとは サービスディスカバリ(Service Discovery、サービス検出[1])はサービスのインスタンスがもつネットワーク上の位置を決定することである[2]。 引用元: サービスディスカバリ -…

サービスディスカバリに関するメモ書き的なもの

概要 サービスディスカバリを初めてみたのでそのメモ サービスディスカバリとは サービスディスカバリ(Service Discovery、サービス検出[1])はサービスのインスタンスがもつネットワーク上の位置を決定することである[2]。 引用元: サービスディスカバリ -…