hassy

駆け出しのシステムエンジニアです。主にLinux、Python、Azureを使用してい…

hassy

駆け出しのシステムエンジニアです。主にLinux、Python、Azureを使用しています。

最近の記事

Dockerイメージのlatestタグについて

プライベートなACR(Azure Container Registry)に色々と加工したコンテナイメージを置いて利用しているのですが、latest を指定して最新のイメージを取得することができませんでした。 その理由と対処法を調べたので、まとめようと思います。 メモ程度のものですが、何かの参考になれば幸いです。 latestタグとは dockerコマンドでコンテナを扱うとき、イメージの最新版を指定するつもりで、〇〇(イメージ名):latest と書きますが、それのことで

    • Azureにおけるプライベート通信について

      Azureで使用しているリソース間の通信をインターネット経由させず、プライベート化する設定作業を、一時期かなりやっていました。 いずれ役立つときが来るかもしれないので、そのときのメモをまとめました。自分用のメモではありますが、何かの参考になれば幸いです。 前提Azureでは、特に設定しない限り、基本的に全ての通信がパブリック(=インターネット)に向かいます。 そのため、通信がインターネットを経由しないプライベートな環境を実現するには、意図的な設定が必要です。 AWSやO

      • sshの設定について

        リモートホストへの ssh 接続に関する設定について、まとめました。 クラウドの仮想マシンなどでは、セキュリティの観点から公開鍵認証を用いるべきということで、パスワードでの認証については書いていません。 sshの設定ファイル等の所在 設定ファイル等は、通常、ユーザのホームディレクトリ直下の .ssh という隠しディレクトリに配置します。 .ssh 配下の主なファイル 接続される側 authorized_keys: 接続する側が持っている秘密鍵に対応した公開鍵を記述しま

        • CIDR計算ツール

          ネットワークの設定を行っていた際、IPアドレスのCIDR表記(10.0.0.50/28など)が登場して、ぱっと見では実際のIPアドレス範囲を判断できずに難儀しました。 計算サイトはたくさんあるので使えばいいのですが、せっかくなので自分でも計算ツールを作りました。 IPアドレス概要(今回の記事に関わる部分だけの超簡易版) ※注意※ CIDR計算ツールを作ることを主眼に置いているため、IPやネットワークの説明としてはあまり適切でない可能性があります。 IPアドレスを A.B

        Dockerイメージのlatestタグについて

          Linuxで複数のコマンドを1行で連続実行する

          以前にプロジェクトにいた人が書いて、今も動いているスクリプトの中で多用されているものの、仕組みがよく分からなかったので、調べて整理しました。 前のコマンドの終了を待たずに、次のコマンドを実行 CMD & CMD 前のコマンドが実行された瞬間に、次のコマンドが実行されます。 前のコマンドはバックグラウンド処理になります。 次のコマンドを書かずに、コマンドの後ろに&を付けてもバックグラウンドになるので、これは連続実行とは少し違うかもしれません。 $ sleep 10 &

          Linuxで複数のコマンドを1行で連続実行する

          クォーテーションの使い分け(Bash)

          Bashでの変数に対するクォーテーションの使い分けについて整理しました。 詳しい人にとっては当たり前の話かもしれませんが、知らなければ意識しないままになってしまうところではないかと思います。 (実のところ最近まで私も特に気にしていませんでした…) 以下3パターンでの動作の違いを見ていきます。 クォーテーションなし シングルクォーテーション ダブルクォーテーション 確認用の変数 test1="aaa"test2=`ls -l | grep (絶対に存在しないファイ

          クォーテーションの使い分け(Bash)

          エポックタイム(正式名称が分からず…)を変換する

          unixエポック 1970-01-01から1秒ずつカウントした時刻 windowsエポック 1601-01-01から100ナノ秒ずつカウントした時刻 というように、システム上の時刻のようなものがあることは知っていたのですが、先日、Azureで0001-01-01から100ナノ秒ずつカウントした時刻が使われていることを知りました。 (仮称)Azureエポック 0001-01-01から100ナノ秒ずつカウントした時刻 azコマンドのクエリ条件として使うために、一般的な日

          エポックタイム(正式名称が分からず…)を変換する

          AzureにおけるAPIの使い方

          本記事では、以下2つのAPIを叩くスタート地点までのやり方をまとめようと思います。 Azure Resource Manager REST API Microsoft Graph API azコマンドでも大抵のことはできますが、一部の操作はAPIでしか実施できない場合もあり、使い方を知っていると役立つ場面があります。 事前準備 APIの認証に必要なアクセストークンを取得するには、ログインしておく必要があります。 az login URLと認証コードが表示されるの

          AzureにおけるAPIの使い方

          メンバー組分けツールを作りました

          普段、チームのメンバーで二人組を作ってペアプログラミングをしているのですが、たまに組み合わせをシャッフルしないとパターンが固定されてしまうので、マンネリを感じたときに使うツールとして作りました。 使用言語はPythonです。 二人組作成ツール メンバーが何人いようが、とにかく二人組に分けます。 ペア作業の組をランダムな組み合わせで作成することができます。 import randommembers = ["Aさん", "Bさん", "Cさん", "Dさん", "Eさん"

          メンバー組分けツールを作りました

          テスト用のコンテナ・Podを用意する

          仕事でよくAzure Kubernetes Service(AKS)を使うのですが、ネットワーク周りの設定が上手くいっているか確認するために、使い捨てのテスト用環境が必要な場面が、しばしばあります。 そういった場面で使っているコマンドのメモ程度のものですが、何かの参考になれば幸いです。 ちなみに、イメージの指定がubuntuなのはただの趣味というか、利便性重視の結果なので、ほかのイメージでも問題ありません。 普通はalpineなどの軽量なイメージを使うものだと思います。

          テスト用のコンテナ・Podを用意する

          ランダムな文字列がほしい

          何かしらのユーザアカウントを払い出すときに仮設定しておくパスワードのように、ランダムな文字列がほしいときに使えるコマンドです。 cat /dev/urandom | tr -dc 'a-zA-Z0-9!?+*' | fold -w 12 | head -n 1 仕組みパイプでつないでいる各コマンドを詳しく見ていきます。 ぐちゃぐちゃな文字列を取得 cat /dev/urandom /dev/urandomをcatして、ランダムで長い文字列を取得します。 文字や記号の

          ランダムな文字列がほしい

          UbuntuへのSSH接続が認証エラーになる

          先日この件で苦戦したので、(しかも過去に対処したことがあったのを忘れていたので、)メモ代わりに書きました。 最近のUbuntuでは公開鍵のssh-rsaアルゴリズムがデフォルトで無効になっていますが、状況次第で、ssh-rsaを使うしかないこともあります。 そういうときは、追加の設定が必要です。 認証ログを確認する まずは状況を確認しましょう。 Ubuntuの認証ログは、以下のファイルに書き込まれています。 /var/log/auth.log このファイルに、以下の

          UbuntuへのSSH接続が認証エラーになる

          時刻をJSTで取得したい

          時刻をJSTで取得したい場面はしばしばあります。 標準ではUTCになっていることが多く、JSTにするにはどうすればいいのか迷いがちなので、まとめておくことにしました。 日付だけほしいときでも、朝のうちに取得すると前日の日付になってしまうので、JSTで取得するようにしておくのが無難です。 個人的によく使うどころのBashとPythonでのやり方をまとめました。 何かのお役に立てば幸いです。 Bashの場合 #現在の日付を取得date --iso-8601=date --

          時刻をJSTで取得したい

          Gitコマンドの使い方まとめ

          はじめに仕事でGitコマンドを使うことが多くなってきたので、知識整理をしておこうと思いました。 なるべく裏取りはしていますが、初心者の私見が混ざっているかもしれないので、参考にするときはお気をつけください。 とはいえ、何かのお役に立てば幸いです。 Gitとはソースコード管理の仕組みです。 ローカルリポジトリで編集を行い、その内容をリモートリポジトリに反映する、というのが基本的な流れになります。 ※リポジトリは、ソースコードの置き場のようなものです。 ローカルリポジトリ

          Gitコマンドの使い方まとめ

          Azure Application Gatewayについて

          はじめに最近、仕事上でApplication Gatewayに触れる機会が多く、機能や設定について整理しておきたいと思いました。 自分用の覚え書きなので言及しない項目もありますが、読んだ方の参考になれば幸いです。 Application Gatewayとは簡単に言えば、アプリケーションのフロントに設置して通信を制御するロードバランサーです。 NSGを設定してアクセス元のIPアドレスを制限するようなL3(ネットワーク)レベルの通信制御も可能ですが、本質的にはL7(アプリケーシ

          Azure Application Gatewayについて

          Dockerを1から学ぶPart4

          Dockerを学ぶといっておきながら早々に応用編に入ってしまうようなものですが、Kubernetesについても、基本を押さえておきたいと思います。 Kubernetesとはコンテナのオーケストレーションを行うものです。 コンテナを始めとした各種リソースの作成や管理を行うことができ、特に大規模なシステムで使われることが多いそうです。 学習環境デスクトップ版のDockerに付属しているため、それを有効化すれば自動的にインストールされます。複雑な手順はありません。 基本的な考

          Dockerを1から学ぶPart4