Atsushi2022の日記

データエンジニアリングに関連する記事を投稿してます

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

【Linux Tips】コマンドの実行結果を日時文字列ファイルに出力

コマンドの出力結果を日時文字列ファイルに出力するのが面倒だったので、エイリアスを登録して省力化する。 エイリアスの設定 $ alias logd='touch log.`date +%Y%m%d%H%M%S` && ls log.`date +%Y%m%d%H%M%S`' ↑のエイリアスは、日時文字列ファイルをtouchで…

【Linux Tips】色々メモ

実行権限がないファイルの実行 実行権限がないファイルでも読み取り権限があれば、bashやsource等の引数にすれば実行できちゃう。 $ id uid=1001(test01) gid=1001(test01) groups=1001(test01) $ ls -l test.sh -rw-rw-r-- 1 test01 test01 5 Dec 9 23:24 t…

Linux iptablels

Dockerコンテナ外部からの通信制御はiptablesを使用して行う。(参考) Dockerコンテナ外部からの通信制御について理解したいので、まずiptablesについて復習していきたい。 iptablesはLinuxでパケットフィルタリングを行うツール。iptablesには後継のツール…

iptablesの後継 nftables

nftablesはパケットフィルタリングツールで、iptables、ip6tablesなどの後継。 簡単なユースケースではfirewalldを使用するが、複雑なケースやネットワーク全体に対する設定はnftablesを使用する。今後はiptablesの代わりに、nftablesの試用が推奨される。 …

Red Hat カーネルのアップグレード

カーネルとはハードウェアとソフトウェアアプリケーションの仲立ち(インターフェイス)をするLinux OSのコアの部分。 Red Hatだと、カーネルはRPM形式でパッケージ化されており、yum(ないし、dnf)で簡単にアップグレードできる。 カーネルRPMパッケージは…

glibcとは?

glibcはシステムコールといったLinuxシステムの根幹をなすプログラムのライブラリ。 「GNU Project」による標準ライブラリ「libc」の実装。C言語の標準ライブラリ名をlibc(リブシー)といい、多くのプログラムで共通して使われるような、システムコールを始…

とりあえずGCEでLinuxマシンを作成する手順

GCP

手順 APIを有効にしておく(特にCloud Identity-Aware Proxy APIは忘れがち) VPC network作成 GCE作成(ネットワークタグを付与) ファイアウォールでCloud Identity-Aware Proxyからのアクセス(35.235.240.0/20)とクライアントからのアクセスを許可(22…

Linuxにおけるリポジトリ、yumあるいはdnf

Linuxにおいてリポジトリとは、ダウンロードのためにパッケージ(.rpm, .deb)などを配置してくれているサーバのこと。 例えば、ニフクラさんは、rhui-rhel-8-for-x86_64-baseos-rhui-rpmsやrhui-rhel-8-for-x86_64-appstream-rhui-rpmsというリポジトリ(サー…

Pythonでのオブジェクト指向プログラミング

概要 Microsoft LearnにPythonでのオブジェクト指向プログラミングがわかりやすくまとめられていたので、概要をメモしておく。 https://learn.microsoft.com/ja-jp/training/modules/python-object-oriented-programming/ Python を使用したオブジェクト指向…

UDPパケット受信時の一般的な処理実装

◆外部公開しているシステムがUDPパケットを受信した場合 パケットを無視する。なにもしない。ログも吐かない。 ログを吐くとディスクをひっ迫させる攻撃を受けるリスクがある。 ◆外部公開しないシステムがUDPパケットを受信した場合パケットは無視するが、ig…

Pytestを試してみる

Pytestの概要 pytestはPython用のソフトウェアフレームワーク。記述したテストを文字列で発見して、自動的にテストを行ってくれる。Circle CIなどのCIツールと組み合わせることで、テスト自動化ができる。 pytestはpip install pytestでインストールする。 i…

Airflowを試してみる

Airflowの要点っぽいところ AirflowではワークフローをDAGと呼ぶ。DAGは複数のTaskからなる。 Taskが様々な処理を実行し、DAGが各Taskの実行順序を定義する。 TaskにはOperartorやSensorといった種類がある。 なので、関係性は次のようなイメージ。 DAG Task…

ncコマンドでUDPパケットを送信する

ncコマンドでUDPで送信するには、-uオプションを使用する。 これを知らずにTCPで送信し続けて、なぜ届かないの(?)となってた。 とはいえ、nc -vuz [宛先IPアドレス] [ポート番号]とかで、宛先IPアドレスへの到達性確認しようとしてもUDPパケットなので、パケ…

[CircleCI] 新規リポジトリのセットアップ

[CircleCI] 新規リポジトリのセットアップ Bitbucketで新規リポジトリを作成して、CircleCIと連携させる流れについて忘備のためメモ。 Bitbucketで新規リポジトリを作成する。 CircleCIの[Projects]で該当のリポジトリに対し、[Set Up Project]をクリックし…

WindowsにリモートログインしてInSpecを実行する

Windowsマシンを構築した際に、リモート接続&PowerShellコマンド実行して、設定が想定通りになっているか確認したいことありますよね。 そういう場合は、Winrmで接続して、InSpecのpowershellリソースを使えばいけます(To: 未来の自分)。 WinrmでWindows…

DockerコンテナでつくるChef InSpec実行環境

なにも努力はいりません。GitHub上に公式が用意したDockerfileがあります。 ベースイメージがUbuntu 22.04なので個人的にとてもつかいやすい(軽量のベースイメージだと色々と入ってないものがあって面倒なので。) inspec/Dockerfile at main · inspec/insp…

Dockerコンテナのベースイメージの確認方法

このコンテナのOSなんだっけな?となって、何の気なしにDockerコンテナに入ってuname -r した。 ホストOSが表示されて「ん?」となったが、よく考えたらコンテナなので納得。 Debian系は/etc/os-releaseを確認すれば、ベースイメージを確認できる。 RedHat系…

pyproject.toml 知らんかった。

qiita.com nikkie-ftnext.hatenablog.com

AzureでのDNSサーバー=168.63.129.16、およびRHELのNetworkManagerについて

AzureでプライベートDNSゾーンを作成したら、名前解決してくれるDNSサーバもプライベートNW内に作るのかと思いきや、168.63.129.16がDNSとして稼働してるらしい。 https://learn.microsoft.com/ja-jp/azure/virtual-network/what-is-ip-address-168-63-129-1…

SAML連携したTableauにTableau Desktopから接続できない問題 ⇒ プライベート認証局によるサーバー証明書の署名で解決

SAML連携したTableau Serverに対して、Tableau Desktopから接続しようとしたところ、以下のエラーが出てうまくいかなかった。 Cannot connect to Tableau Server. Please check the server name and port and try again. Internet communication error: SSL …

挙動の違い:プロキシサーバ v.s.ファイアウォール

先日、ファイアウォールを経由させて外部に送信したHTTPリクエストが403エラーになったことがあった。 てっきり経由させているファイアウォールが403エラーを返してきたのかと思ったが、インターネットの向こう側にいるAWS ELBが返してきていた。 先輩に話し…

サブジェクト代替名 - Subject Alternative Names

サブジェクト代替名、知らんかった、、、 Tableau Prepで自己証明書を使う場合は、サブジェクト代替名を入れて、と記述があり、「???」となって調べたら、コモンネームよりもむしろサブジェクト代替名でホスト名との一致チェックをするっぽい。 参考⇩ 【…

シンボリックリンク@Windows

WindowsでもコマンドプロンプトやPowerShellでシンボリックリンクを張れることを知ったのでメモ。 コマンドプロンプトではmklink 、PowerShellでは New-Item コマンドを使う。 とりあえず、コマンドプロンプトのmklinkコマンドでディレクトリにシンボリック…

【Azure】RHEL VMでのディスク拡張

AzureでRHEL8のVMを構築した際に、デフォルトでパーティションに割り当てられている論理ボリューム(LV)だと足りなかったので、lvextend でLVを拡張してあげました。手順のメモを以下に記載します。 まずは lsblk で割り当てられているボリュームサイズを確認…

GKEでAirflowを動かす

要件 GKEでAirflowを動かして、外部NWからAirflow UIにアクセスしたい。 HTTPSで通信を暗号化したい。 構成 External HTTP(S) Load Balancingを使用した構成にする。こいつでHTTPS終端する。 GKEの観点だとIngressとService(NodePort)を使うことになる。 構…

Visual Studio Codeの設定

改行コードの設定 VS Codeのデフォルトの改行コードはCRLF (\r\n)。 LinuxのスクリプトにCRLFが混じっているとエラーになってしまうので、改行コードをLF (\n)にしておく。 /bin/bash^M: bad interpreter: そのようなファイルやディレクトリはありません atm…

【GCP】2種類のファイアウォールサービス

GCPの2種類のファイアウォールサービス GCPには2種類のファイアウォールサービスがある。 それが、VPC ファイアウォールルール と ファイアウォールポリシー。 それぞれの違いはこちらがわかりやすい、 blog.g-gen.co.jp Terraformだと、 google_compute_fir…

ADサーバ構築 ⇒ ドメイン参加 ⇒ GPO作成

ADサーバー構築 ↓ Windows ServerでADサーバーを構築する。 dev.classmethod.jp ドメイン参加 ↓ Windowsをドメイン参加させる。 server-network-info.blogspot.com GPO(グループポリシーオブジェクト) ↓ GPOを作成し、割り当てる。 ittrip.xyz mseeeen.msen.…

GCP DevOps Learning Log

Google SRE's best practicee https://sre.google/sre-book/table-of-contents/ Incident Document It should contain the followings. Incident timeline List of actions carried out to restore the service Command hierarchy: The roles such as Incide…

GCP Professional Cloud DevOps Engineerの勉強に参考になりそうなサイト

www.youtube.com DevOps とは: 研究とソリューション | Google Cloud sre.google github.com Google Professional Cloud DevOps Engineer Practice Exams examtopics.com docs.google.com blog.g-gen.co.jp cloud.google.com sre.google