chevron_left

メインカテゴリーを選択しなおす

cancel
社外SE技術日記(OUTPUT) https://www.mtioutput.com/

インフラ部門の社外SEが学んだことを発信しています。最近は自動化技術に興味があります。

社外SEくん
フォロー
住所
未設定
出身
未設定
ブログ村参加

2019/07/13

arrow_drop_down
  • 【uCAR】正常停止時にもスナップショットを出力させる設定

    やりたいこと 正常停止を含めたサービスの停止時にスナップショットを出力する。 環境情報 P-9W43-9Q11 : uCAR with Java for Spring Boot Red Hat Enterprise Linux 9.5 (Plow) やり方 設定ファイルである~/ucars/conf/config.propertiesに以下を追加する。 snapshot.log.filepath=/tmp/snapshot snapshot.onshutdownrequest.collect.condition=ALWAYS同設定を追加後、SIGTERMによってサービスを停止させるとzipファ…

  • 【AWS/ECS】FluentBitのfluent.confで環境変数で値を指定する

    やりたいこと Fluent Bitの設定ファイル(fluetnt.conf)に環境変数を指定し、環境変数経由で値を指定する。 環境情報 ECS Fargate 1.4 aws-cli/2.15.5 Fluent Bit v1.9.10 やり方 環境変数MYSERVICEを利用したい場合、以下のようにconfファイルに記載を行う。 [OUTPUT] ... log_group_template /test/${MYSERVICE} ...以下、補足です。 補足 環境変数として以下のように値を定義しておくと export MYSERVICE=hogeFluentBitの起動ログを見ると、環境変数に…

  • 【AWS】CLIを用いてCloudFrontのキャッシュを削除する

    やりたいこと CloudFrontのオリジンとしてS3のホスティングを利用している際、S3のファイル格納後にエッジキャッシュをクリアしたい。 環境情報 aws-cli/2.15.5 やり方 CloudFrontにて該当のDistribution IDを特定し、以下のコマンドを実行する。 $ aws cloudfront create-invalidation --distribution-id xx --paths "/*"その結果として標準出力に以下のような結果が表示される。 { "Location": "https://cloudfront.amazonaws.com/2020-05-31…

  • 【AWS】CLIを用いたEC2とS3のルートテーブルの確認の流れ

    はじめに EC2からS3を利用しようとaws s3 lsを打つも、反応がなかった際の調査ログを記載します。尚、EC2はプライベートサブネットに存在し、インターネットへの経路はなくS3のVPCエンドポイントは作成済みとします。 環境情報 aws-cli/2.15.5 調査の流れ 同事象が起きた場合、一番怪しいのはS3のVPCエンドポイントがEC2のルートテーブルに紐づいていない状態となっています。リージョンを指定してS3のエンドポイントを指定して出力すると $ aws ec2 describe-vpc-endpoints --filters "Name=service-name,Values=c…

  • 【Linux】数秒毎にCPUやメモリのリソースをsarで取得して可視化する

    やりたいこと Linuxサーバの負荷状況を見るため、性能試験としてCPU等のリソースを取得してグラフを作成する。 環境情報 Red Hat Enterprise Linux 9.3 sysstat version 12.5.4 やり方 以下のように間隔(秒)と回数、出力先を指定すると # /usr/bin/sar -A -o /tmp/sar 5 1000パフォーマンスファイルが作成される。 # file /tmp/sar /tmp/sar: data可視化をするためにsadfにて画像ファイルを出力させたものをブラウザで表示すると # sadf -T -g -- -A /tmp/sar > t…

  • 【AWS/ECS】タスク定義(Task Definition)をCUIで更新する

    はじめに ECSのタスク定義に修正を加える場合、AWSの管理コンソールにて”新しいリビジョンの作成(Create new revision/Create new revision with JSON)から行います。一方でコンテナイメージのタグのみを変更する等、軽微かつ機械的な置換で行えるものはCUIから操作したい場合もあると思います。というわけで、今回は自動化を想定してAWSCLIにてタスク定義に微修正を加え、新たなバージョンで作成する流れを検証しました。 はじめに 環境情報 更新する前のタスク定義を取得する タスク定義に修正内容を反映させる 新たなリビジョンのタスク定義を作成する 終わりに …

  • 【AWS/ECS】Firelensで指定したディレクトリのファイルをCloudWatchLogsに連携する

    はじめに ECSで稼働するコンテナは、awslogsというログドライバーを有効化することで標準出力がCloud Watch Logsに連携されます。 簡易的な使い方であればこれでいいものの、より細かい用件でログルーティングを行う場合は不十分であり、代わりにFirelensコンテナを利用した構成を取る必要があります。本記事ではコンテナ内のディレクトリを指定し、そのディレクトリ配下のログをファイル毎にログストリームを分けて出力する方法について解説します。 環境情報 ECS Fargate 1.4 aws-cli/2.15.5 Fluent Bit v1.9.10 実装の流れ FirelensとはO…

  • 【AWS/ECS】Taskの異常終了に伴う自動復旧時間の検証

    はじめに ECSのサービスにてTaskを1つだけ稼働させ、そのTaskを異常終了させた際にどの程度の時間でECSが別のTaskを復旧させるのかを実機を用いて検証を行いました。尚、構成としてはALBを経由してECSのサービス(Apacheをコンテナとして起動)に割り振りを行う構成で、ALB経由で通信を断続的に行うことで業務通信を想定して応答結果を整理しています。構成概要 環境情報 ECS Fargate 1.4 aws-cli/2.15.5 障害の再現と計測対象 ECSのタスクの中に入り、EntryPointで指定したコマンドをkillします。 $ aws ecs execute-command…

  • 【Keycloak/RHBK】OutOfMemoryErrorで停止する際にJavaのダンプファイルを出力させる

    はじめに Keycloak(RedHat Build of Keycloak)はJavaアプリケーションとして動作するため、メモリ不足で落ちる際の挙動はJava実行の引数で渡すことができます。本記事では実際にメモリ不足(Out Of Memory)を起こし、その際にヒープダンプを出力する挙動の確認を行いました。 環境情報 Red Hat Enterprise Linux 9.3 rhbk-24.0.5 内容確認 Keycloakを起動するkc.shでは以下の箇所でメモリー関連の値を設定しています。 if [ -z "$JAVA_OPTS_KC_HEAP" ]; then JAVA_OPTS_K…

  • 【AWS/Bedrock/RAG】CloudTrialを活用した不正ログの検出

    はじめに RAG構成のAmazon Bedrockを利用している際に不審なアクセスがないかどうかを確認したいケースがあります。そのような際にAWSのCloudTrialが利用できるため、実際にログの確認を行いました。 執筆時期 2025/02 CloudTrialの設定 まず初めに、CloudTrial側でBedrock関連の操作を拾えるようにします。 そもそもCloudTrialでは「Management events」と「Data Events」があり、後者は明示的に有効化をしないと出力されません。BedrockのログはData Eventsに相当します。手順としては、AWS管理コンソール…

  • 【AWS/ECS】コンテナの停止とALBのターゲットグループからの解除タイミングについて

    はじめに ECSのサービスがApplication Load Balancerの後段にある場合、ECSがコンテナを停止(SIGTERMの送信)する前に、ターゲット グループからタスクを解除する挙動をします。具体的には以下のフローとのこと。Graceful shutdowns with ECS より抜粋本記事では、この挙動をタスクの再起動時に以下を計測することで確認しました。 ターゲットグループに登録されているターゲットと状態 ECSタスクで起動しているタスク数 ECSタスクのログ 環境情報 ECS Fargate 1.4 aws-cli/2.15.5 事前準備 以下の構成を準備し、Task数は…

  • 【Apache】一部の通信のみプロキシをせずローカルのページを返す

    やりたいこと Apacheが受けた通信は別サーバにプロキシを行うが、特定のパスの通信に関してはプロキシをせずに自サーバのリソースで応答したい。例として/healthというリクエストに関しては/var/www/html/health.htmlを表示させる。特定のパスはAapche内のリソースで応答したい 環境情報 Apache/2.4.37 (Red Hat Enterprise Linux) やり方 /var/www/html/health/health.htmlを準備した上で、以下のhttpd-proxy.confを/etc/httpd/conf.d/に配置をし、サービスを起動する。 Pro…

  • 【AWS/ECS】タスクとして実行したスクリプトの終了コードを取得する

    はじめに ECSではタスク定義を指定した上で「Run Task」を行うことでコンテナをバッチのようにして起動ができます。また、起動したコンテナの実行結果は、ステータスとして完了したかだけではなくシェル終了時の終了コード(Exit Code)としても取得が可能です。本記事では実際にタスクとしてスクリプトを異常終了させ、その終了コードをコマンドから取得する流れを記載しました。 環境情報 ECS Fargate 1.4 aws-cli/2.15.5 事前準備 下記のように終了コードを5で返すスクリプトを作成した上で #!/bin/bash sleep 10 exit 5コンテナイメージを作成します。…

  • 【コンテナ】Dockerfileを編集してログを標準出力に出す方法

    やりたいこと Dockerfileの修正によってコンテナのログを標準出力に出すことでdocker logsで拾えるようにしたい。 例としてAapacheのコンテナを扱う。 環境情報 Amazon Linux 2 Docker 20.10.23 やり方 Dockerfileの中で以下のようにログと標準出力をリンクさせる。 RUN ln -sf /dev/stdout /var/log/httpd/access_log例えば以下のようなDockerfileでイメージをビルドしてコンテナを起動すると FROM registry.access.redhat.com/ubi8/ubi RUN yum -…

  • 【AWS】awsコマンドを用いてSNSでメールを送付する

    やりたいこと awscliを利用してメールを送付する。 環境情報 $ aws --version aws-cli/2.15.23 Python/3.11.6 ... やり方 トピックを作成し、そのトピックに紐づくサブスクリプションを宛先メールアドレスと共に設定。作成したトピックのARNを引数に以下のように指定をしてコマンドを押下すると $ aws sns publish --topic-arn "arn:aws:sns:ap-northeast-1:xx:xx" --message "Test"メッセージが送付される。 { "MessageId": "xx" }届いた電子メールは以下。 Fro…

  • 【AWS】CUIにてNetworkACLで特定通信をブロックする

    やりたいこと awscliを利用し、特定のIPアドレスからの通信を拒否する。尚、通信はサブネットをまたぐ通信とする。 環境情報 $ python3 --version Python 3.8.16 やり方 サブネットに紐づくNetwork ACLのIDを利用し、以下のように設定を行う。(インバウンドであれば--ingress) $ aws ec2 replace-network-acl-entry --egress --network-acl-id xx --rule-number 10 --protocol -1 --rule-action deny --cidr-block 10.xx.xx…

  • 【AWS/IAM】EC2のロールではなく個人ユーザでawsコマンドが実行される事象

    事象 EC2にログイン後、AWSコマンドとして利用しているユーザを表示するとRoleの権限ではなくユーザのArnが表示される。 $ aws sts get-caller-identity { "UserId": "..", "Account": "...", "Arn": "arn:aws:iam::..:user/xx@yy" } 環境情報 # aws --version aws-cli/2.15.2 Python/3.11.6 Linux/5.14.0-362.24.1.el9_3.x86_64 exe/x86_64.rhel.9 prompt/off 原因/解決策 AWSの認証情報と設定…

  • 【Keycloak/RHBK】WindowsServerでkc.batをサービス化する流れ

    はじめに Keycloak(RedHat Build of Keycloak)はLinuxではkc.sh、Windowsではkc.batを利用して起動します。 これらを自動起動させたい場合、Linuxにてsystemdでサービス化するのと同じようにWindowsでもサービスに登録する必要があります。一方で公式ドキュメントには同手順が公開されていないため、RedHat Single Sign Onと同じ方式でKeycloakのサービス化を行いました。その際の手順をログと共に記載しています。 環境情報 Windows Server 2019 RedHat Build of Keycloak pro…

  • 【Java】keytoolコマンドを利用したjksの証明書確認方法

    やりたいこと Javaアプリケーションにて利用されるキーストアであるjksファイルの、中に格納されている証明書の情報をコマンドから確認する。 環境情報 Red Hat Enterprise Linux 9.3 java-17-openjdk-17.0.11 やり方 Javaをインストールする際に同梱されるkeytoolコマンドを利用して $ which keytool /usr/lib/jvm/java-17-openjdk-17.x.el9.x86_64/bin/keytool 以下のようにファイルの場所及びパスワードを指定したlistオプションを利用する。 $ keytool -list …

  • 【Keycloak/RHBK】データベース接続検証を有効にした際の挙動確認

    はじめに Keycloak(RedHat Build of Keycloak)ではQuarkusの設定でJDBCの接続プールの値を調整でき、その中にデータベース接続の検証を担う箇所があります。本記事では同設定を入れた状態と入れていない状態を用意し、Keycloakの管理コンソールを操作した際の挙動がどのように変化するのかを確認しました。尚、今回は接続を取得する前の検証(フォアグラウンド検証)を有効にします。 quarkus.datasource.jdbc.background-validation-interval=0s quarkus.datasource.jdbc.foreground-v…

  • 【Keycloak/RHBK】クラスタ構成で起動時に"relation jgroupsping does not exist"というエラーが出る

    エラー内容 Red Hat Build of Keycloakをcache-ispn.xmlでクラスタ構成にした上でkc.sh startを実施するも以下のエラーが発生する。尚、JDBC_PINGの接続先はDB(PostgreSQL)を接続先としている。 # ./bin/kc.sh start ... ERROR [org.jgroups.protocols.JDBC_PING] (keycloak-cache-init) JGRP000138: Error reading JDBC_PING table: org.postgresql.util.PSQLException: ERROR: r…

  • 【Keycloak/RHBK】起動時にconfigure your keys/certificatesというエラーが出る

    エラー内容 Red Hat Build of Keycloakをkc.bat startを実施するも以下のエラーが発生する。尚、HTTPS接続は要件ではない。 .. ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Failed to start server in (production) mode .. ERROR [org.keycloak.quarkus.runtime.cli.ExecutionExceptionHandler] (main) ERROR: Key mate…

  • 【AWS/Bedrock/RAG】PythonからKnowledge BaseをAPIで利用する

    やりたいこと Cloud9からRAG構成のAmazon Bedrockを利用する。尚、KnowledgeBaseによるS3及びベクトルDBは事前に作成/配置済みとする。 環境情報 $ python3 --version Python 3.8.16 やり方 作成したKnowledge Baseから以下を値を確認した上で KnowledgeBaseId DataSourceId="XX" 下記のコードを実行する。 import boto3 KnowledgeBaseId="XX" DataSourceId="XX" Text = "hogeの好きな食べ物は?" ModelArn = "arn:aw…

  • 【Keycloak】ユーザ数に依存するAdminAPI応答時間の実機検証

    はじめに 認証認可を担うKeycloakというソフトウェアを開発モード(start-dev)で動作させた際にユーザ数がどの程度パフォーマンスに影響するのかを簡易的に調査しました。具体的にはユーザ数が以下の場合に「ユーザ数の取得」「具体的なユーザの検索」をAPI経由で行い、時間の計測を行っています。 50 500 5,000 50,000 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) Memory : 4GB CPU : 1 socket x 2 cores x 1 threads keycloak-22.0.8 調査方法 レルムを指定した上で同レルムに属…

  • 【Keycloak/RHBK】接続先データベースをPostgreSQLに変更する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にて接続先のデータベースを初期状態のH2からPostgreSQLに変更する。 尚、PostgreSQLは既にインストール済みとする。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-24.0.5 postgresql-16.4 やり方 conf/keycloak.confにて以下の変更を行い # The database vendor. db=postgres # The username of the database user. db-username…

  • 【RHEL】PostgreSQLをインストールした上でサンプルデータベースを作成する

    はじめに OSSのデータベースであるPostgreSQL(ポスグレエスキューエル)をRed Hat Enterprise Linuxにインストールし、テスト用のデータベースを作成するまでの流れを実施しました。そのコマンドの結果と合わせてメモとして残しておきます。 環境情報 Red Hat Enterprise Linux VERSION="9.3 postgresql-16 PostgreSQLのインストール リポジトリに関するファイルのインストールを行い # dnf -y install https://download.postgresql.org/pub/repos/yum/reporp…

  • 【Linux/RHEL】systemctlでの起動が環境変数起因で動かない際の対処法

    事象 ExecStart=に記載のあるコマンドをコンソールから実行すると起動ができるが、systemctlからは起動ができない。 具体的には以下のようにJavaのバージョンが原因で起動できていないように見える。 # systemctl status rhbk × rhbkservice - Keycloak Application Server Loaded: loaded (/etc/systemd/system/rhbk.service; disabled; preset: disabled) Active: failed (Result: exit-code) since xx; 2s …

  • 【生成AI/Marmaid記法】Bedrockを用いた画面遷移図の生成検証

    はじめに テキストで与えた入力情報を元に、AWSの生成AIであるBedrockに画面遷移図を作成させる検証を行いました。尚、できるだけ自動化を行うために画像出力部分はマーメイド記法のテキストを元に画像化するmmdcコマンドを利用しています。尚、全体の流れは プロンプトを記載した入力ファイルの準備 入力ファイルを元にBedrockへ質問/回答取得 回答結果を元に画像を出力 となります。 環境情報 Amazon Linux 2 mmdc 10.6 Python 3.7.16 Claude-v2 入力情報の準備 テキストファイルにて以下のような文章を用意しました。図に使う文字を英語にしている理由は、…

  • 【Keycloak/RHBK】AdminAPIで作成したユーザのidをLocationから取得する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でユーザを作成した際にその応答結果から新規作成されたユーザのユーザーID(id)を取得する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 curl 7.76.1 (x86_64-redhat-linux-gnu) やり方 ユーザー作成時のcurlにて-Dオプションを利用してファイルに出力をさせると $ curl -D location.txt --request POST 'http://localhost:80…

  • 【Ver22/Ver24】開発モードで利用しているKeycloakをアップデートする

    はじめに Keycloak(RedHat Build of Keycloak)は開発モードで起動を行うと、特に設定をせずともH2という同梱されているデータベース上に情報が補完されます。本記事ではそれらのデータを新しいバージョンに持っていくために実際にデータをコピーし、起動させた際の備忘録を残しておきます。 環境情報 Red Hat Enterprise Linux VERSION="9.3 rhbk-22.0.8 rhbk-24.0.5 事前準備 新バージョンのZipを配置し、解凍します。 # ls rhbk-24.0.5 bin conf lib LICENSE.txt providers …

  • 【Keycloak/RHBK】AdminAPIでResourceTypeを指定してパーミッションを作成する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でリソースタイプと紐づくリソースベースドパーミッションを新規作成する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークン及び該当のクライアントのID及び組み合わせるポリシーのIDを控えた上で以下のようにPOSTを行うと curl -X POST http://localhost:8080/admin/realms/master/clients/<client-id>/authz/resourc…

  • 【Keycloak/RHBK】AdminAPIでAggregate Policyを作成する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でAggregate Policyを新規作成する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークン及び該当のクライアントのID及びAggregate Policyに組み合わせるポリシーのIDを控えた上で以下のようにPOSTを行うと $ curl -X POST 'http://localhost:8080/admin/realms/master/clients/<client-id>/aut…

  • 【Keycloak/RHBK】AdminAPIでAggregate Policyに紐づくポリシーを取得する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でAggregate Policyに関する情報を取得する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークン及び該当のクライアントのID及び該当のAggregate PolicyのIDを控えた上で以下のようにGETを行うと $ curl --location --request GET 'http://localhost:8080/admin/realms/master/clients/<cl…

  • 【Keycloak/RHBK】AdminAPIを用いてユーザのグループ情報を操作する

    はじめに Red Hat build of Keycloak(Keycloakの商用版)ではユーザにグループという属性があります。 属性とは違ってサブグループ/親グループという階層構造となっているのが特徴で、ユーザへのロールマッピングにて利用されます。そんなグループですが、本記事はAdminAPIを利用して既存のグループに関して参照/変更を行う方法とその結果を記載します。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 はじめに 環境情報 参照系 グループの一覧 ユーザのグループ表示 追加系 削除系 終わりに 参照系 グループの一覧…

  • 【Keycloak/RHBK】AdminAPIでクライアントリソースを新規作成する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でクライアントリソース(client resource)を作成する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークン及びリソースを作成したいクライアントのIDを用意した上で以下のようにPOSTを行う。 $ curl --location --request POST 'http://localhost:8080/admin/realms/master/clients/XX/authz/res…

  • 【Linux/RHEL】Node.jsのバージョンを16から18に上げる

    はじめに 既にNode.jsのVer16が入っているRHEL環境にて、Node.jsをVer18にあげました。せっかくなので、その際の手順と出力結果をメモしておきます。 # npm -v 8.19.4 # node -v v16.20.2 環境情報 Red Hat Enterprise Linux 9.3 背景 特に何も考えずにyumコマンドでnpmをインストールすると # yum install npm ... ... Installed: nodejs-1:16.20.2-4.el9_3.x86_64 nodejs-docs-1:16.20.2-4.el9_3.noarch nodejs-…

  • 【Keycloak/RHBK】ユーザのアカウントロックをAdminAPIで行う

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にて任意のユーザのアカウントロック(アカウントの無効化)を取得する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 ユーザのIDをURIに付与した状態でenabledをtrueからfalseに変更する。 $ curl --location --request PUT 'http://localhost:8080/admin/realms/master/users/'"$id"'' --header 'Content-Type: ap…

  • 【Keycloak/RHBK】特定のユーザーが所属しているグループ名を取得する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてユーザ名をキーにグループ名を取得する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 以下のようにユーザ情報を出力した上で ./kc.sh export --dir Test --users different_filesユーザ情報が格納されたmasterファイルからユーザ名(test01)を条件にグループ情報を出力する。 $ cat master-users-0.json jq -r '.users[] select(…

  • 【Keycloak/RHBK】jqコマンドを利用してGETするユーザを属性の値で絞る

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でリスト表示するユーザを絞る。 具体的には属性hogeの値がfugaのユーザのみの出力を行う。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークンの取得を行い $ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin …

  • 【Keycloak/RHBK】PowerShellからREST経由でアクセストークンを発行する

    やりたいこと PowerShellからKeycloak(RedHat Build of Keycloak)のアクセストークンを発行する。尚、adminユーザを利用したパスワード方式での実行を想定する。 環境情報 rhbk-22.0.8 PowerShell 7.3.11 やり方 ボディデータをハッシュテーブルで定義した上でInvoke-RestMethodでPOSTリクエスト送信する。具体的てには以下スクリプトを実行することで取得が行えた。 $client_id = "admin-cli" $client_secret = "admin" $token_endpoint = "http://x…

  • 【Linux】Powershellのスクリプト(.ps1)を実行する

    やりたいこと Linux機でPowerShellのスクリプトファイル(.ps1)を実行する。 環境情報 Amazon Linux 2 PowerShell 7.3.11 やり方 マイクロソフトのリポジトリ情報を追加した上で $ curl https://packages.microsoft.com/config/rhel/7/prod.repo sudo tee /etc/yum.repos.d/microsoft.repoインストールを行うと $ yum -y install powershell以下にPowerShell用のコマンドが配置される。 $ which pwsh /usr/b…

  • 【Keycloak/RHBK】ログイン後のセッション情報をブラウザとサーバー側で確認する

    はじめに Keycloak(RedHat Build of Keycloak)ではログインに成功すると内部的にはセッションが生成され、サーバ側で認証されたユーザを管理しています。また、その情報に相対する情報がブラウザ側にもクッキーとして保管されます。本記事ではサーバ側及びブラウザ側それぞれで、ログイン前/ログイン後に発行されるセッションに関する値を確認してみました。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 GoogleChrome 122.0.6261.69 ログイン前の状態 今回はテスト用ユーザにて管理用コンソールへのログ…

  • 【Keycloak/RHBK】AdminAPIでログイン済みのセッション数を取得する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でログイン済みのユーザセッション数の合計を取得する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークンの取得を行い $ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin -H 'content-type: app…

  • 【AWS/EC2】IAMロール変更時にFailed to replace instance profileとエラーが出る

    事象 InstanceProfileとしてIAMロールを設定していたEC2に対して「Modify IAM role」を実行すると Failed to replace instance profile The association iip-assoc-xx is not the active association というエラーとなる。 環境情報 $ aws --version aws-cli/2.15.5 Python/3.11.6 Linux/4.14.336-257.562.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off 原因/解決策 インスタスプロフ…

  • 【NGINX/Linux】特定の文字列が入ったリクエストをエラーにする

    やりたいこと リクエストの中で指定されるURLの中に指定した文字列が入っていた場合にエラー処理を行う。 例としてAmazon Linuxにて検証を行い、"a"という文字列が入っていた場合に応答コード400でエラーとする。 環境情報 # nginx -v nginx version: nginx/1.25.1 (nginx-plus-r30-p1) やり方 mapディレクティブにて特定のリクエストとして"a"が含まれる場合の設定を行い http { ... map $request_uri $invalid_uri { default 0; "~*a" 1; } ... その条件の場合のエラーコ…

  • 【Keycloak/RHBK】AdminAPIで100ユーザ以上の情報を一括で取得する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でユーザ情報を一気に取得する。尚、デフォルトでは100ユーザを上限として出力される。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークンの取得を行い $ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin -H 'c…

  • 【Keycloak/RHBK】AdminAPIでユーザ名からidを取得する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でユーザ名(username)からidを取得する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークンの取得を行い $ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin -H 'content-type: appl…

  • 【Keycloak/RHBK】AdminAPIで既存ユーザのパスワードを設定する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でユーザのパスワードを設定する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークンの取得を行い $ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin -H 'content-type: application/x…

  • 【RHBK】AdminAPIによるPOSTで新規ユーザを作成する

    やりたいこと Red Hat build of Keycloak(Keycloakの商用版)にてAdmin API経由でユーザを作成する。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) rhbk-22.0.8 やり方 アクセストークンの取得を行い $ AT=`curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/token --user admin-cli:admin -H 'content-type: application/x-www-f…

  • 【RHEL】RHBK(Build of Keycloak)のインストールの流れ

    やりたいこと Red Hat build of Keycloakのインストール作業を行う。 環境情報 Red Hat Enterprise Linux : 9.3 (Plow) openjdk 17.0 やり方 Javaの環境をインストールした上で # yum install java-17-openjdk# java --version openjdk 17.0.10 ... LTS OpenJDK Runtime Environment (Red_Hat-17.0.10.0.7-1) (build 17.0.10+7-LTS) OpenJDK 64-Bit Server VM (Red_H…

  • 【AWS/Route53】Pythonで特定のAレコードのIPアドレスを変更する

    やりたいこと Lambda関数にてRoute 53に登録してあるドメインのAレコードを変更する。 環境情報 Python 3.2 やり方 変更したい Hosted zone ID Record name を確認し、IPアドレスをValue欄に入力を行い実行する。 import boto3 AWS_HOST_ZONE_ID="XX" AWS_RECORD_NAME="XX" r53 = boto3.client('route53') def lambda_handler(event, context): response = r53.change_resource_record_sets( Ho…

  • 【AWS】CloudWatch AlarmsにてLambdaが権限不足で実行されないエラー

    事象 CloudWatchのActionにて以下のような設定が"Actions enabled"になっているが Type Description Config Lambda When ALARM, invoke "xx" Lambda Function - アラーム発動時にHistoryには以下のような失敗のログが表示される。 Date Type Description xx Action Failed to execute action arn:aws:lambda:xx:function:xx. Received error: "CloudWatch Alarms is not autho…

  • 【Bash/Linux/sed】開始文字と終了文字を与えてその部分を置換する

    やりたいこと 以下のような文があるとして ef&abc;gh&と;で挟まれている箇所を"A"で置換して efAghとする。 環境情報 sed (GNU sed) 4.4 やり方 sedコマンドを用いて以下のように置換をかける。 $ sed -e 's/&.*;/A/g'実際に置換をかけた結果は以下。 # echo "ef&abc;gh" sed -e 's/&.*;/A/g' efAgh以下、補足です。 補足 任意の二つの文字で挟まれた箇所を切り取るワンライナーとなります。 例えば別の例として以下のような例でも、正常に動作していることが分かります。 $ echo "abcdefghijkl…

  • 【自動更新】QiitaのDailyランキングTop10

    更新日時 2024/01/11/07:07 Qiita Trends Daily 1位 ※前日2位 Python,機械学習,pandas,データ分析,ibis-framework Qiita Trends Daily 2位 [New] Python,GUI,Tkinter,Udemy,デスクトップアプリ Qiita Trends Daily 3位 ※前日6位 JavaScript,日本語訳,proposal,es2024 Qiita Trends Daily 4位 [New] Python,GitHub,自然言語処理,Python3,アプリ開発 Qiita Trends Daily 5位 [N…

  • 【Keycloak/Nginx】プロキシ型でアプリケーションを認証保護する流れ

    はじめに ウェブサーバであるNginxと認証認可ツールKeycloakを連携させることで、アクセス時にユーザ認証をかけることが可能です。 本記事では実際にNginxとKeycloakを連携させ、アクセス時にログイン画面が表示される動きを確認しました。 環境情報 keycloak-23.0.3 nginx version: nginx/1.25.3 Linux 事前準備(Nginx) Nginxを準備した上でJavaScriptのモジュール(njs)をインストールします。 $ yum install nginx-plus-module-njs ... Installing: nginx-plus…

  • 【mermaid-cli】Error: Failed to launch the browser processというエラー

    事象 マーメイド記法を扱うツールであるmermaid-cliを以下のようにインストールした後に $ npm install -g @mermaid-js/mermaid-cli ... added 94 packages, and audited 95 packages in 2s ... found 0 vulnerabilities同コマンドの実行を行うも $ mmdc -i test.mmd -o test.png以下のエラーとなる。 Error: Failed to launch the browser process! /home/ec2-user/.cache/puppeteer/…

  • 【AWS/Bedrock】Pythonから日本語でチャットAPIを利用する

    やりたいこと Cloud9からAmazon Bedrockを利用する。尚、サンプルとしては「こんにちは」と入力する。 環境情報 Python 3.7.16 Anthropic Claude Instant やり方 boto3をインストールした上で $ pip install --upgrade boto3 Defaulting to user installation because normal site-packages is not writeable Collecting boto3 Downloading boto3-1.33.13-py3-none-any.whl (139 k…

  • 【AWS/EKS】You must be logged in to the server (Unauthorized)というエラー

    事象 マネージメントコンソールから作成したEKSに対してCloud9からkubectlコマンドで接続に行くも以下のようなエラーとなる。 $ kubectl get svc error: You must be logged in to the server (Unauthorized)詳細なデバッグログは以下。 $ kubectl get svc -v=9 ... helpers.go:246] server response object: [{ "metadata": {}, "status": "Failure", "message": "Unauthorized", "reason":…

  • 【AWS/EKS】Cloud9からプライベートのエンドポイントに接続できない

    事象 Cloud9から「API server endpoint access」が「Private」であるEKSに対し、接続ができない。 具体的にはaws eks update-kubeconfig --name xxによってコンフィグファイルに接続先情報が入っているにも関わらず以下のように応答が返ってこない。 $ kubectl get pod ^C 環境情報 EKS : 1.28 aws-cli/2.15.5 原因/解決策 EKSに設定したSecurity Groupによって通信がブロックされている。 該当のEKSに入っている設定は「Networking」タブの「Cluster securi…

  • 【AWS/EC2】RHELに対してEC2 Instance Connect Endpoinでログインする

    やりたいこと プライベートサブネットに立てたRed Hat Enterprise Linuxを搭載したEC2に対し、EC2 Instance Connect Endpoint経由での接続を行う。 環境情報 RHEL-9.3.0_HVM やり方 初期状態でオーダーをしただけでは以下のようなエラーとなる。 Failed to connect to your instance Error establishing SSH connection to your instance. Try again later. 原因としては接続用のモジュールが不足しているため、ユーザスクリプト(インスタンス作成時に…

  • 【NGINX Plus】yumによるインストール時におけるconflicts with fileというエラー

    事象 既にNginxをインストールしている環境にNginx Plusをインストールをすると以下のエラーとなる。 # yum install -y nginx-plus ... Downloading Packages: nginx-plus-30-2.amzn2023.ngx.x86_64.rpm 1.2 MB/s 3.5 MB 00:02 ------------------------------------------------------------------------------------------------------------------------------…

  • 【AWS】Fleet ManagerによるRemote Desktopを行う際の権限エラー

    事象 EC2にて用意したWindowsServerに対してSystem Manager > Fleet Manager > Remote Desktop にてキーペアを指定して接続を試みるも以下のエラーとなる。 An error occurred while calling the StartConnection API operation. AccessDeniedException: User: arn:aws:iam::xx:user/xx is not authorized to perform: ssm-guiconnect:StartConnection on resource: …

  • 【Nginx】末尾にスラッシュ/をつけないと301 Moved Permanentlyとなる事象を解消する

    事象 sample/index.htmlにアクセスさせるために/sampleとたたいた際に以下となる。 $ curl localhost/sample <html> <head><title>301 Moved Permanently</title></head> <body> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.24.0</center> </body> </html>尚、末尾にスラッシュをつけると正常に用意したものが表示される。 $ curl localhost/sample/ my sam…

  • 【vi/vim】viへのコピペでインデントがずれる事象への対策

    事象 コピー(Ctrl+c)したテキスト情報をviのinsertモードでペースト(Ctrl+v)するとインデントがずれていく。 具体的には以下のようになる。 [ { "Notification": { "NotificationType": "ACTUAL", 環境情報 $ vi --version VIM - Vi IMproved 9.0 対応策 viのコマンドモードにて以下を入力する。 :set pasteこの状態でinsertモードに入ると下部にてpaste modeとなっていることが表示され -- INSERT (paste) -- インデントがずれずにペースト(貼り付け)が行える。…

  • 【AWS/Cost Explorer】CLIによる通知付きBudgetの作り方及び通知設定の確認方法

    やりたいこと AWSコマンドで予算を管理するバジェットを作成し、作成したバジェットを確認する。 環境情報 aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112 やり方 作成方法は以下。 $ aws budgets create-budget --account-id xx --budget file://a.json --notifications-with-subscribers file://b.jsonアカウントIDは以下で確認を行い $ aws…

  • 【AWS】LambdaでEC2にRole/InstanceProfileを付与する

    やりたいこと Lambdaを利用してEC2に特定のRoleを付与する。 尚、言語はPythonとした上でAWSリソースをPython から操作するためのライブラリであるboto3を利用する。 環境情報 aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112 やり方 「ec2.associate_iam_instance_profile」を利用する。 Cloud Trialのイベントを引数にした場合の具体的なコードは以下。 import boto3, js…

  • 【AWS/EventBridge】ユーザネームの部分一致でパターンを記載する

    やりたいこと Amazon EventBridgeにて特定のユーザ群がEC2インスタンスをLaunchした場合のパターンを記述する。尚、ユーザ名はTESTで始まるとする。 環境情報 aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112 やり方 Event pattern部分に以下のJSONを記載する。 { "source": ["aws.ec2"], "detail-type": ["AWS API Call via CloudTrail"], "de…

  • 【AWS/SageMaker】Session-Hrs ,KernelGateway費用を止めるためにドメインを削除する

    やりたいこと 使用していないドメインを削除することでAWSの機械学習系サービスであるSagemakerに伴って発生している以下のコスト請求を停止させる。以下はCostExplorerにて表示されるタグ。 APN1-Canvas:Session-Hrs APN1-Studio_DW:KernelGateway-ml.m5.4xlarge 環境情報 aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112 やり方 アプリケーション、ユーザプロファイルを削除した…

  • 【AWS/Comprehend】日本語文章に対してawsコマンドからポジネガ判定を行う

    はじめに AWSの機械学習系サービスである「Amazon Comprehend」を利用するとドキュメント内のテキストから価値あるインサイトを導き出し、理解することが可能です。同サービスにはいくつかの機能がありますが、その中で「感情の検出」を担うdetect-sentimentを日本語文章に対して実施してみました。 環境情報 aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.322-244.536.amzn2.x86_64 botocore/1.20.112 ポジネガ判定の流れ 以下のコマンドでポジネガ判定が行えます。 $ aws c…

  • 【Keycloak】Admin REST APIを利用してユーザ一覧を取得する

    やりたいこと Keycloak(RedHat SSO)上に存在するユーザをAdmin REST APIを利用して取得する。 尚、今回はデフォルトで存在するクライアント「admin-cli」を利用するケースで記載を行い、masterレルムを取得対象とする。 環境情報 Linux(fedora) keycloak-21.1.2 やり方 Keycloakが動作しているサーバに対して以下のようにアクセストークンの発行を行なった上で # curl --insecure -X POST http://localhost:8080/realms/master/protocol/openid-connect/…

  • 【Keycloak】H2データベースに格納された情報をコマンドから確認する

    はじめに Keycloak(RedHat SSO)は開発モード(start-dev)で起動するとH2データベースに情報が格納されます。 本記事では同データベースに保管されているデータをLinux機のターミナル上で確認する流れについて記載しました。 環境情報 Linux(fedora) keycloak-21.1.2 h2-2.1.214 事前準備 h2の公式サイトから「h2-2022-06-13.zip」をダウンロードし、Keycloakが動作しているサーバ上で解凍します。今回はLinuxなのでh2.shを利用しますが $ ls h2/bin/ h2-2.1.214.jar h2.bat h2…

  • 【Keycloak】一時パスワードのままのユーザをコマンドから確認する

    やりたいこと Keycloak(RedHat SSO)上に存在するユーザにて一時パスワード(Temporary)のユーザをコマンドから確認する。 環境情報 Linux(fedora) keycloak-21.1.2 やり方 Keycloakが稼働しているサーバ上でレルムに関するファイルを出力した上で $ /kc.sh export --file ./test.json --realm master同ファイルの「requiredActions」が「UPDATE_PASSWORD」となっているユーザを確認する。 "requiredActions" : [ "UPDATE_PASSWORD" ],以…

  • 【Keycloak】User Storage Providerを利用してテキストファイルでユーザ管理を行う

    はじめに Keycloak(RedHat SSO)には「User Storage SPI」という拡張機能があり、これを用いると直接接続しているデータベースとは別の認証情報ストアを利用することができます。本記事では公式が提供する「user-storage-simple」というチュートリアルを利用し、テキストファイルで保持されたユーザ名パスワードを利用してユーザ管理を行う流れを記載しました。 環境情報 Linux(fedora) keycloak-21.1.2 Apache Maven 3.8.8 事前準備 Keycloakをインストールした上で管理者ユーザでログインできるようにしておきます。 管…

  • 【Linux】maxloginsを用いて同時ログイン数に制限をかける

    やりたいこと 同一ユーザの同時ログイン数に制限をかける。 環境情報 $ uname -a Linux ... .amzn2023.x86_64 ... GNU/Linux やり方 下記のファイルにて /etc/pam.d/password-authpam_limitsモジュールを利用する設定を入れた後に session required pam_limits.so下記ファイルに /etc/security/limits.confユーザー名とmaxloginsの数値を入れる。2と入れた場合は同時ログインの最大は2となる。 ec2-user - maxlogins 2以下、補足です。 補足 該当の…

  • 【ExcelVBA】Word.Applicationを用いてファイル全体の形態素分割を行う

    やりたいこと 特定ファイルの全てのセルを対象に形態素毎に分離を行い、結果を別のシートに格納する。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 Word文書の新規文書を用意した上で Set wd = CreateObject("Word.Application") Set doc = wd.Documents.Add解析対象のファイル名を取得した上でVBAが書かれているファイルのアクティブシートを取得し fName = Dir(ThisWorkbook.Path & "\*解析対象のファイル名*.xlsx", vbNormal) Se…

  • 【ExcelVBA】文字列の長さでソートを行う

    やりたいこと 文字列の長さで列の値をソートする。 例としては 123 あい abcdを abcd 123 あいに並び替える。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 並べ替えを列の最終行を取得した上で(1列目とする) lastRowNum = wb.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Rowその列の隣に文字列の長さを記載し For i = 1 To lastRowNum ... Cells(i,2)=Len(Cells(i,1))2列目をキーにソートを行う。 Dim sortRang…

  • 【Keycloak】Direct access grantsを利用してcurlでアクセストークンを発行する

    はじめに DirectAccessGrantsとはクライアントがユーザー認証を行う際の方式の一つで、主に簡易的な認証手段として利用されます。 直接ユーザ名とパスワードでのみ認証を行うことからクライアント側での認証実装が不要であるため、今回はKeycloakの動作検証として同方式でアクセストークンを発行する流れを記載しました。 環境情報 Linux(fedora) keycloak-21.1.2 事前準備 Keycloakを立ち上げた上で $ ./bin/kc.sh start-devKeycloakの管理コンソールにログインし、テスト用のレルム(testrealm)1を用意した上でその中にクラ…

  • 【Keycloak】管理コンソールを開いた際にHTTPS requiredという画面になる事象

    事象 トップ画面にて管理コンソール(Administration Console)を表示するために進めようとするもトップ画面「We are sorry... HTTPS required」という画面に遷移してエラーとなる。HTTPS requiredという画面 環境情報 Linux(fedora) keycloak-21.1.2 原因/解決策 KeycloakがSSL通信を必須としているためログインエラーとなっている。 以下はエラー時のログ。 ... WARN [org.keycloak.events] (executor-thread-2) type=LOGIN_ERROR, realmId…

  • 【Keycloak/Linux】tarで配置した資材からインストールを行う流れ

    はじめに IAMに関するOSSであるKeycloakですが、同ツールをインストールするためにはJDK環境が必要です。 本記事ではJDKのインストールからKeycloakの起動を行うまでの流れを記事にしました。尚、インターネットから隔離された環境を考慮してyum等のツールは利用していません。 環境情報 fedora keycloak-21.1.2 Javaのインストール OpenJDKの公式サイトからLinux用のモジュール(openjdk-xx_linux-x64_bin.tar.gz)を入手した上で展開します。 # ls openjdk-20_linux-x64_bin.tar.gz # w…

  • 【AWS】CloudShell / EC2 Instance ConnectでESCが効かない

    事象 Google ChromeでCloudShellを利用時にEscキーが効かなくなる。 環境情報 $ aws --version aws-cli/2.11.25 …Vimium : 1.67.4 原因/解決策 GoogleChromeにて利用していた拡張ツール(Vimium)によってショートカットとして認識されていた。 同拡張を無効化することで正常にESCキーが反応するようになった。以下、補足です。 補足 viを利用している際に多用するEscですが、Vimiumを利用しているとEscが効かなくなるシーンがありました。 ターミナルからであれば問題ないものの、ブラウザ経由で操作する場合に特定の…

  • 【AWS】SecurityGroupを削除時にhas a dependent objectというエラーになる

    事象 不要になったセキュリティグループ(SecurityGroup)をコマンドから削除するも $ aws ec2 delete-security-group --group-id sg-xx以下のエラーで失敗する。 An error occurred (DependencyViolation) when calling the DeleteSecurityGroup operation: resource sg-xx has a dependent object 環境情報 $ aws --version aws-cli/2.11.25 … 原因/解決策 以下のどれかが原因と考えられる。 ネット…

  • 【macOS】FFmpegを利用してMP4ファイルから画像データを抽出する

    やりたいこと 映像データ(MP4)から写真データを出力する。 尚、FFmpegはインストール済みでコマンドは打てる状態とする。 環境情報 macOS 10.15 ffmpeg version N-106666 the FFmpeg developers やり方 動画データ(test.mp4)にピクセルにてサイズ(1920x1280等)を指定した上で以下のように出力先を与えると $ ./ffmpeg -i test.mp4 -s 1920x1080 -r 1 -q:v 1 -vcodec png Test/%06d.png以下のような標準出力の後に動画を1秒毎に切り出した画像が出力される。 fr…

  • 【PowerAutomate】Outlookの定期開催の会議情報を取得する

    やりたいこと PowerAutomateにて特定日の個人予定に格納されている会議情報を全て取得する。 環境情報 Microsoft Teams バージョン 1.6 Power Automate Free Power Automate for Office 365 やり方 アクション「イベントのカレンダービューの取得(V4)」を利用する。 注意点としてアクション「イベントの取得(V4)」を代替として利用すると、定期的に開催される会議情報が初回以外取得ができない。以下、補足です。 補足 会議情報を取得すると以下のような形式にて情報が格納されるので { "subject": "テスト", "star…

  • 【ExcelVBA】列に選択式の入力規則を追加する

    やりたいこと 特定の列に対し、プルダウンリスト(ドロップダウンリスト)をVBAにて設定する。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 選択式にしたいセル範囲をRangeで用意した上で以下のように記載することで With Range(hoge).Validation .Delete .Add Type:=xlValidateList, Formula1:="A,B,C" End With セルにはA、B、Cを選択して入力することしかできなくなる。以下、補足です。 補足 範囲情報はデータ行の最初から最後までなので、以下のように最終行…

  • 【ExcelVBA】結合されたセルの左上と右下のアドレスを取得する

    やりたいこと 以下のように結合されたセルがB2:C2とE2:E4に存在する場合に A B C D E 1 あ い う え お 2 かきく けこそと 3 さ し す せ 4 た ち つ て それらのセルのアドレス情報をVBAにて取得したい。 環境情報 Microsoft Visual Basic for Applications 7.1 やり方 以下のように記載することで For c = 1 to 10 For r = 1 to 10 If Cell(r,c).MergeCells Then x = Cells(r,c).Address(False,False) y = Range(x).Mer…

  • 【Python/tweepy】tweepy.Clientを利用するためにtweepyのバージョンをあげる手順

    やりたいこと Twitter API v2経由でツイートをするためにtweepy.Clientを利用したい。 ただし、現状のバージョンでは以下のエラーとなるためPython/tweepyのバージョンアップが必要。 # python3 test.py Traceback (most recent call last): File "test.py", line 9, in <module> client = tweepy.Client(BT, AK, AS, AT, ATS) AttributeError: module 'tweepy' has no attribute 'Client' 環境…

  • 【Linux】日本語を含む文字列を文字サイズ順に並べ替えるワンライナー

    やりたいこと 以下のようなファイルがあった場合に $ cat test.txt いちに onetwo 12 一二日本語の文字も1文字扱いで文字数順に並び替えたい。 環境情報 GNU bash, 4.4.12(1)-release (x86_64-pc-linux-gnu) やり方 以下を実行すると $ cat test.txt while read line; do echo "$line" wc -m;echo $line; done awk 'NR%2 != 0{printf "%s ", $1} NR%2 == 0 {printf "%s\n",$1}' sed -e s…

  • 【入門/暗号】離散対数問題とは?

    はじめに 主に公開鍵暗号の方式で活用される離散対数問題。辞書にて以下のように解説されています。 離散対数問題とは、ある計算の結果から簡単に逆算ができないような数学上の問題の一つで、整数のべき乗(冪乗)を素数で割った余りを求める計算を用いるもの。 本記事ではそこから「具体的にどういう問題?」「なぜ暗号の世界で利用されているの?」という観点で深掘りし、分かりやすく説明してみました。 離散対数問題とはどういう問題? 離散対数問題を理解するために質問ですが、「とある整数aを冪乗した時、とある整数bで割った余りはいくつか?」という問題と「整数aを何乗すれば整数bで割った余りがcになるか?」という問題、ど…

  • 【Linux】任意の数値の小数点以下の桁数を削除する

    やりたいこと 1.2345のような数値列がある際に以下のような切り出し方を行う。 1.2 1.23 1.234 環境情報 $ bc --version bc 1.06.95 やり方 数値列に対して1での除算を行う。 $ echo "scale=1;1.2345/1" bcscaleで指定する数値を変更することで小数点以下の桁数を指定できる。 $ echo "scale=2;1.2345/1" bc 1.23 $ echo "scale=3;1.2345/1" bc 1.234以下、補足です。 補足 以下のように数値をそのまま入れるだけでは小数点処理はされないため $ echo "s…

  • 【Python】スクリプトで利用する環境変数を設定ファイルから読み込む

    やりたいこと 以下のようにスクリプト内で利用する変数の値を client = tweepy.Client(BT, AK, AS, AT, ATS)別ファイルからの読み込みで与えたい。 環境情報 Debian GNU/Linux 9 Python 3.9.2 やり方 スクリプトが配置されているディレクトリ内に.envファイルを用意し、スクリプト内からそれを読み出す。具体的にはdotenvモジュールを以下のようにインストールした上で # pip3 install python-dotenv ... Successfully installed python-dotenv-1.0.0 ..スクリプト…

  • 【Linux】grep実行時に「無効な範囲終了です」というエラーになる

    事象 二つのファイルの比較作業として以下を実行した際に $ grep -x -v -f /root/test2.txt /root/test1.txt以下のエラーとなる。 grep: /root/test2.txt:128: 無効な範囲終了です 環境情報 $ grep --version grep (GNU grep) 2.27 原因/解決策 正規表現で使用する特殊な文字(\、[、]、^、$、*、.など)が該当行に存在した。 特殊文字をエスケープせずに検索するためにFオプションを利用することで解消する。 $ grep -x -v -F -f /root/test2.txt /root/test…

  • 【Db2】特定のSQLに対してインデックスの利用有無を確認する

    やりたいこと Db2環境で発行するSQLにてテーブルに作成してあるインデックスの利用有無を確認する。 環境情報 DB2 v11.5 RHEL 7 やり方 db2explnコマンドを利用する。接続情報及びqオプションにて発行したいSQLを記載した結果にて $ db2expln -d sample -u DB2INST1 P@ssword -t -g -q "select * from sales where SALES = 15"以下のようにIndexが含まれているかどうかを確認する。 Optimizer Plan: Rows Operator (ID) Cost 12.6715 RETURN …

  • 【Db2】SQLにかかる時間をdb2batchで計測する

    やりたいこと Db2環境で発行するSQLの処理時間を確認する。 環境情報 DB2 v11.5 RHEL 7 やり方 db2batchコマンドを利用する。 $ which db2batch ~/sqllib/bin/db2batchSQL分を記載したファイルを用意した上で select * from sales; 以下のように引数にてデータベースへの接続情報を入力すると $ db2batch -d XX -a DB2INST1/XX -f test.sql -i complete -o f -1 p 1 o 5以下のようにSQLの実行結果及び計測結果が出力される。 * 2176 row(s) f…

  • 【Kubernetes】特定のPodに対してパケットキャプチャーをしかける

    やりたいこと WorkerNode上で動作する特定のPod(例IngressController等)を宛先とする通信のパケットを取得する。 環境情報 Kubernetes v1.23 やり方 tcpdumpが含まれたコンテナイメージを用意した上でIngress ControllerのPodが動くWorkerNodeを以下のYAMLのnodeSelectorに記載。 apiVersion: v1 kind: Pod metadata: name: test namespace: default spec: containers: - args: ["-c", "sleep 1d"] comman…

  • 【JP1/AJS3】ジョブネットの実行予定と実行結果をコマンドで表示させる

    やりたいこと JP1/AJS3 ManagerがインストールされたLinux機において特定のジョブネットの実行予定時刻及び実行結果を確認する。 環境情報 JP1AJS_1260L01 JP1AJS_1260W01 やり方 ジョブスケジュール(test)を以下のように指定すると実行結果が確認でき # /opt/jp1ajs2/bin/ajsshow -T "/test/*" AJSPATH = /test/ Name Type Status Code Start time End time test2_jpb net normal *** ... 1:00 ... 1:00 AJSPATH = …

  • 【JP1/AJS3】ジョブネットとジョブの一覧をコマンドで出力する

    やりたいこと JP1/AJS3 - Viewにて以下のように表示されている場合にジョブネット定義ジョブネット、ジョブの一覧をLinux機側で表示する。 環境情報 JP1AJS_1260L01 JP1AJS_1260W01 やり方 ajsprintコマンドで表示する。 # /opt/jp1ajs2/bin/ajsprint -a "/*" grep unit出力情報としてジョブグループやジョブネットが以下のような形式で表示される。 # /opt/jp1ajs2/bin/ajsprint "/*" grep unit unit=test,,jp1admin,; #ジョブグループ unit=…

  • 【JP1/AJS3】Managerのインストール/初期構築の流れ

    はじめに ジョブスケジューラのJP1構築の参考として Linux側にJP1/Base&Jp1/Managerをインストール Windows側にViewをインストール ViewからManagerに接続 を実施した流れを記載します。 環境情報 JP1AJS_1260L01 JP1AJS_1260W01 Manager(Linux)側のインストール モジュール(JP1AJS_1260L01_P1.iso)を配置した上で展開し、以下のディレクトリにあるLINUX/SETUPからインストールを行います。 # find JP1AJS_1260L01_P1 grep -i setup JP1AJS_12…

  • 【JP1/AJS】認証サーバのホスト名を確認する

    やりたいこと JP1/Automatic Job Management System 3における、JP1/Baseの認証サーバに指定しているホスト名を確認する。 環境情報 CentOS 7 P-812C-6LCL,125004(T),JP1/Base やり方 以下のファイルを確認する。 # file /opt/jp1/hcclibcnf/regdir/HKEY_LOCAL_MACHINE.dat /opt/jp1/hcclibcnf/regdir/HKEY_LOCAL_MACHINE.dat: ASCII text具体的にはSVNAMEという項目で値が管理されている。 # cat /opt/j…

  • 【AWS】作成済みのIAMユーザに対する対するパスワードの強制変更フラグ付与

    やりたいこと AWSアカウントにおいて、既にプロファイル作成済みのIAMユーザーに対してパスワードの強制変更フラグを付与してパスワードを変更する。 環境情報 $ aws --version aws-cli/2.11.25 … やり方 該当のユーザを—user-nameで指定した上で以下のようにログインプロファイルをアップデートする。 $ aws iam update-login-profile --user-name test --password p@ssw0rd --password-reset-required尚、パスワードの強制変更のフラグの有無は以下にて確認ができる。 $ aws i…

  • 【Linux】crontabにて%を付与したコマンド実行がエラーとなる

    事象 crontabに以下のような記載をした場合に # crontab -l * * * * * curl test.com -o /dev/null -w '%{http_code}\n' -scronログにはエラーとして出力される。 /bin/sh: -c: line 0: unexpected EOF while looking for matching `'' /bin/sh: -c: line 1: syntax error: unexpected end of file 環境情報 Red Hat Enterprise Linux Server 7.9 原因/解決策 コマンド部分の%…

arrow_drop_down

ブログリーダー」を活用して、社外SEくんさんをフォローしませんか?

ハンドル名
社外SEくんさん
ブログタイトル
社外SE技術日記(OUTPUT)
フォロー
社外SE技術日記(OUTPUT)

にほんブログ村 カテゴリー一覧

商用