コピペコードで快適生活

明日使えるソースを自分のために

データソースのアーキテクチャ

データソースのアーキテクチャについて学んだことメモ。 TableDataGateway インスタンスがテーブル内のすべての行を操作する。 SQLはこのインスタンス内に閉じる。 https://bliki-ja.github.io/pofeaa/TableDataGateway/ RowDataGateWay 1クラス=1テーブル、…

リーン顧客開発の読後メモ

https://www.amazon.co.jp/dp/4873117216 を読んで、いいなと思ったポイントをメモ。 1.顧客開発の目的 顧客が欲しがるものについての誤った思い込みを早く見つける 本当に購入してくれる製品の開発に集中できるように 2.何からやるか チームで時間を作って…

OS起動時に自動でディレクトリやファイルを作成する

たとえば、CentOS7では、/var/run/* がシャットダウン時に削除されるけど、OS起動時にはディレクトリ作っておいてほしいケースとかで使う。 設定ファイル置き場 /etc/tmpfiles.d/*.conf 記法 # ディレクトリがなければ作る d /var/run/my_app 755 root root …

kubectlでpodのログを確認するまで

context、namaspace、deploymentがわかっている状態からどうやって確認するかメモ contextの確認・設定 設定は ~/.kube/config に書いてある。 # 一覧表示 kubectl config get-contexts # 切り替え kubectl config use-context my-context # 現在のcontextの…

プロセスが掴みっぱなしの削除済ファイルを取り出す

ファイルを作成して、lessで掴む $ echo 'dummy data' > example.txt $ less example.txt 別ターミナルで、掴んだファイルを消す $ rm example.txt 削除済のファイルを掴んでいることを確認できる $ ps a | grep less 23249 pts/14 S+ 0:00 less example.txt…

VSCodeメモ

VSCodeを使うことにしたので、基本的な使い方を逐次追加していく。 ファイル名検索 Command+P コマンドパレット Command+Shift+P 置換 コマンドパレット → replace 大文字変換 コマンドパレット → Uppercase 矩形選択 始点をクリックしてから、終点を[Shift…

systemctlコマンドメモ

# サービス一覧 # 設定ファイルの配置場所: https://kinosuke.hatenablog.jp/entry/2021/03/18/195942 systemctl list-unit-files --type=service # サービス起動 systemctl start ${svc_name} # サービス停止 systemctl stop ${svc_name} # サービス再起動…

WordPressの自動アップグレードの挙動

古いWordPressをインストールしたはずなのに、管理ページにログインしたら「WordPressは最新です」という表示が出ていたので、おやおやこれはどういうことだろうと思って、調べてみた。 バージョンの区切りは メジャーver.メジャーver.マイナーver 5.7.1 の…

MySQLのレプリケーションユーザ名を修正する

MySQLのレプリケーションユーザ名を間違っていたので、mainの稼働を止めずに修正する。 やること概要 レプリケーション停止して、設定をリセットする mainでユーザ名を変える mainからバックアップを取得する replicaにリストアする レプリケーションの接続…

MySQLリストアした後にログインできない

症状 リストアしたDBに、一部のユーザでMySQLにログインできない 原因 mysql.userテーブルを直接更新した場合、権限設定が自動で再ロードされないため。 対応方法 mysqldをrestartするか、 mysql> FLUSH PRIVILEGES; すればOK。 経緯 移行元 # 移行元からダ…

MySQLのnative_passwordとold_password

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) - コピペコードで快適生活 の続き パスワードの設定 # ユーザ作成時に設定する CREATE USER 'jeffrey'@'localhost' IDENTIFI…

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

$ mysql -u app_user -h 192.168.0.1 -p Enter password: ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled) とでた。 mysql_native_passwordで認証しようとしたけど、mysql_ol…

トラブルシュート時に使うコマンドメモ(2)

# wchanでプロセスの待ち状態を表示 sudo ps ax -opid,cmd,wchan # fオプションでプロセスをツリー表示 ps auxf # システムコールレベルでの処理をトレース strace -p <プロセスの PID> # 子プロセスもまとめてトレース strace -p <プロセスの PID> -f # プ…

GTMの用語メモ

GoogleTagManagerをはじめて使ったので用語をメモ。 アカウント(GTM埋め込みコードと1対1対応) workspace 複数持つことができる下書き git branch みたいなの workspaceで修正したものはプレビューで確認可能 公開とするとこで本番反映される タグ(実際に埋…

consulのリーダー選出の仕組み

よくわかっていなかったのでメモ。 consulのリーダー選出には、Raft プロトコル(分散合意アルゴリズム)が使用されている。 各ノードは次の3つのステートを持つ。 leader follower candidate 遷移 起動直後はみんな follower followerはランダムなTimeout…

CentOS7にcurl最新版をインストールする

古いディストリビューションへの最新のパッケージ提供を行っている city-fan からyumリポジトリを取得して、そこからインストールする。 rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-2-1.rhel7.noarch.rpm yu…

ルーティングの確認&更新

よくわかっていなかったので整理。 # ルーティングテーブルの確認 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 192.168.0.1 0.0.0.0 UG 100 0 0 eth0 # デフォルトゲートウェイ = 192.168.0.1 default 1…

LVSとかkeepalivedとか

用語の整理 LVS これはなに? Linux Virtual Serverの略称で、負荷分散装置に求められる基本的な機能を提供する。 構成要素 IPVS(IP Virtual Server) 負荷分散機能を提供する ipvsadmユーティリティ LVSのほとんど全ての設定をipvsadmコマンドで行う 使い…

CentOS7 systemd のファイル・フォルダ構成

/etc/init.d に慣れすぎて覚えられないのでメモ。 /usr/lib/systemd/system CentOS 7 のデフォルトで設定されているサービスや、yum などで提供されているソフトウェアをインストールした際のデフォルト設定を保存する /etc/systemd/system サーバーの管理者…

chefで手っ取り早くデバッグ出力

# 手っ取り早くデバッグ # 以下を仕込んで、 # why-runすればコンソールにされる log 'debug_message' do message 'DEBUG MESSAGE!!!' level :fatal end https://docs.chef.io/debug/

chefのsearch

コマンドでsearch # dbを名前に含むnodeを検索する bundle exec knife search node "name:*db*" recipe内でsearch # nameがserver01のnode情報を取得 info = search(:node, 'name:server01') node以外にもclient、DATA_BAG_NAME、environment、roleから検索…

Linuxグループ

/etc/group cat /etc/group root:x:0:root ... my_group:x:501:user01,user02 my_group: グループ名 x: シャドウパスワードを使用 501: グループID(GID) user01,user02: セカンダリグループとして所属しているユーザーアカウントのリスト。カンマ区切り。 プ…

sudoers

sudoersはユーザにどんなsudo権限があるかを決定する。 設定ファイル # /etc/sudoers # /etc/sudoers.d/* # 誰が どのホストで=(誰として) 何をできる # rootユーザは、誰にでもなれて、なんでもできる root ALL=(ALL:ALL) ALL # wheelグループは、誰にでも…

仮想IPの設定メモ

# eth0に仮想IPアドレス(192.168.1.200)を割り当てる # ifconfigによる変更はサーバ再起動で無効化。 sudo ifconfig eth0:0 192.168.1.200 netmask 255.255.255.0 up # 仮想IPアドレスの割当を無効化 sudo ifconfig eth0:0 down # arpリクエストを投げて、同…

トラブルシュート時に使うコマンドメモ

カーネルのパラメータ確認 すべてのパラメータ(-a)から、パターンマッチしたものを表示 sysctl -a --pattern *** インターフェース設定ファイル(CentOSのみ) cat etc/sysconfig/network-scripts/ifcfg-eth0 # 修正後にrestartで反映 systemctl restart netwo…

consulことはじめ

全然わかってなかったのでメモ。 概要 何やってくれるの サービスディスカバリやってくれる ヘルスチェック等 リーダーについて クラスタとして動作するためにリーダーが必要。 リーダーはサーバモードとして立ち上げているノードから自動選出される。 非サ…

ncコマンド

# TCP 11111ポートでLISTENする nc -kl 11111 # TCP 11111ポートにつなぐ # 起動後に文字をうつと、LISTENしている側に表示される nc localhost 11111

zipコマンドメモ

随時追加していく。 # ディレクトリを圧縮する zip -r FILENAME.zip FILE_DIR # 解凍する unzip FILENAME.zip # xxx.mdだけ解凍する unzip FILENAME.zip FILE_DIR/xxx.md # 解凍結果を標準出力する unzip -p FILENAME.zip FILE_DIR/xxx.md

GithubActionsの設定

忘れる自信があるので、ymlの書き方をメモしておく。 # ファイルパス: .github/workflows/xxx.yml name: CI on: push: branches: master # masterブランチへのpush,merge時に発火 pull_request: # PR作成,更新時に発火 jobs: test: # 実行するJOBの識別子 na…

chefでencrypted data bagsを使うメモ

作る .chef/knife.rbに追加 knife[:editor] = "/usr/bin/vim" bundle exec knife data bag create users app_user --secret-file .chef/secret_data_bag_key --local # で editorが開くので編集して保存する。 # で、自動で暗号化されたjsonファイルが生成さ…