Bookmark
Windows
Windows Server
- Windows Server 2019 評価版:ライセンス登録エラー
- snmpd 設定方法 (Windows Server 2019/2022の場合)
- Windows Server 2019 DHCPサーバ高可用性設定(HAクラスタ構築)
- WindowsServer2016のネットワークチーミング設定
Active Directory
Windows11
WSUS
コマンド
- copy、xcopy、robocopy の機能な明確な違い
- robocopy 日付フォルダ分けバックアップする方法
- Windows の Teredo Tunneling Pseudo-Interface を{無効|有効}にする
Windows Firewall
イベントログ
KMS
Linux
基礎
- hostname, domainname設定のメモ(CentOS7)
- CentOS7 パスワードポリシーの設定
- AlmaLinux 8を日本語化する
- Linuxサーバー時刻を(現在時刻と)合わせる
- CentOS7でSELinuxを無効化する
- Viで「E325:ATTENTIONエラー」の対処
- sudo / visudo で、一時的にvim を使い nano を使わない。
- /dev/null
- いい加減覚えよう。
command > /dev/null 2>&1
の意味 - nmcli c down eth0; nmcli c up eth0
ディスク系
- LVMが使用されているかの確認方法
- VM の HDD サイズを拡張する
- 【Linux基礎】LVMでディスク追加する方法
- LVMによるディスク領域の拡大と縮小[ext4]"(CentOS8.3)"
- LVMで 論理ボリュームの作成、拡張、縮小、複製
ログ関連
- rsyslog + logrotateでログ保管サーバーを構築する
- logrotate.confファイルを読み解くメモ
- 任意のログをlogrotateを使って管理する
- /etc/rsyslog.conf 設定解剖
- 【logrotate】の仕組みと書き方, オプション一覧, 設定反映と再起動について
- ログローテートソフトウエア logrotate についてまとめ
- ログ “X messages lost due to rate-limiting” とログの抑制について (rsyslog)
- rsyslog(/etc/rsyslog.conf)のデフォルト内容読解(Cent8.3)
cron
パッケージアップデート関連
/boot
ssh
grep
firewall関連
- CentOS 7 firewalld よく使うコマンド
- 特定のIPアドレスのみ全ポート・プロトコルを許可するFirewall設定
- 【RHEL 7】TCP Wrapper によるアクセス制御設定について
その他
'mount /dev/sr0 /mnt/cdrom'の後に'mount : /dev/sr0 is write-protected, mounting read-only'って書かれるのはエラーじゃない。
AWS
EC2
接続
- EC2 Instance Connect を使ってみた
- Windows端末からPrivate環境下のWindowsサーバにSSMポートフォワード経由でRDPする方法をまとめてみた
- プライベートサブネットのWindows EC2インスタンスへSSMポートフォワード経由でRDP接続する方法 (MFAあり)
リザーブドインスタンス
Ubuntu on EC2
- [Ubuntu][AWS] lightsailなイメージのapt updateに失敗する。
- AWS EC2 (Ubuntu) で DNS のスタブリゾルバ 127.0.0.53 と Amazon Provided DNS の関連を確認する
- EC2のUbuntuがapt-get出来なくなってしまっている:一応解決済み
- Ubuntu - sudo apt-get update のエラー Ubuntu
SQL Server on EC2
- AWS が提供する SQL Server AMI - Amazon Elastic Compute Cloud
- SQL Server on EC2を選定、初期設定する際のTips集
- AWS EC2でSQL Serverを構築したらすべき事
- AWD EC2 on SQL Serverのコンピュータ名を変更するとサービスの開始や停止がSSMS上からできなくなる
GPUインスタンス
Amazon SES
Amazon Route53
AWS Certificate Manager
AWS Site To Site VPN
S3
Direct Connect
AWS Backup
メール
Postfix
- ローカル環境のPostfix構築
- Postfixのstatus=deferredを対応した件
- Postfix でメールリレーの設定 (SMTP クライアント + SMTP Auth)
- 【メール調査(postfix)】メールログの見方
- Postfixのmain.cfの設定パラメータについての説明
Dovecot
セキュリティ
コマンド
Gmailに送信できない件
Googleのドキュメント
DNS周り
SPFレコード
DKIM
- CentOSのPostfixで迷惑メール判定されないようDKIMを設定する
- PostfixによるSMTPサーバーの構築
- DKIMセレクタとは何ですか?
- DKIM ADSP は廃止されています (HISTORIC です)
- Opendkimの設定やってみた
メールクライアント
メールヘッダ
Microsoft
Active Directory
Azure AD Connect
- proxyAddresses 属性の設定方法は、Azure AD - Active Directory
- Azure AD Connect の備忘録
- Set-AzureADUserExtension で AzureADのカスタム属性に値をセットする&確認する方法
- Azure AD への認証が失敗する (エラー コード AADSTS1002016) 際の対処策について
シームレスなSSO
- Hybrid ID 環境でシームレスシングルサインオンを実現する
- Mozilla Firefox (すべてのプラットフォーム)
- mozilla/policy-templates
- グループポリシーを使用して Firefox をカスタマイズする
- Mozilla Firefox ESR60でのPolicy Engineによるポリシー設定の方法と設定項目のまとめ
- グループポリシー – Firefox の設定項目を追加する
ライセンス
Exchange
- 知らないと損!?Exchange Onlineの4種類のアドレスを使いこなそう!
- Office365でのメールエイリアスについて
- 【Microsoft365 管理者用】誤ったドメインへの誤送信を防ぐ方法
PowerShell
- PowerShell で Microsoft 365 ユーザー アカウントを表示する
- (Office365)Powershellにてユーザーを一括登録する方法を検証してみた 〜New-MsolUser〜
- Export-Office365LicenseStatus のご紹介
- PowerShell を使用して配布リスト グループを管理する
- Microsoft Entra ID (旧 Azure AD) に登録された情報を PowerShell から確認する方法
- Microsoft 365 ユーザーのProxy Addresses属性を編集する方法
- 【Office365参考書】UPN(ユーザー名)とプライマリアドレスを新しいドメインに変更する方法
- Azure AD PowerShell v2チートシート
- よく使うコマンド集 (Azure)
Graph API
Power Automate
EntraID
SSO
認証系
OIDC
- mod_auth_openidcによりApache HTTP ServerをOpenID Connect Relying Partyにする -- Google編
- OIDCRemoteUserClaim doesn't seem to work on RHEL-based distros
Keycloak
- Keycloak - downloads
- Getting Started Guide(日本語ドキュメント)
- Keycloakのインストールと構築例
- Unable to create the the first administrator remotely #10262
- Keycloakの管理コンソールの機能をみてみる(利用者編)、ユーザー・アカウント・サービス
- KeycloakのAdmin CLIを使う
- Keycloakを冗長構成で動かしてみる
- Keycloakのカスタマイズポイントを整理してみる
- Keycloakが出力するログについて
- 第12章 JBoss EAP を用いたロギング
- keycloakをnginxでhttpsで起動する
- Can't extend Keycloak.v2 theme's AccountPage.js
- Keycloakコンテナ(jboss/keycloak)の構築手順
- KeycloakをPostgreSQLに対応させる
- KeycloakのDBをpostgreSQLに変更する
- Keycloakのインストール方法をわかりやすく手順化してみた
GoogleとのSSO
データベース
PostgreSQL
- PostgreSQL で DB ダンプをエクスポート・インポートする
- ShellでSQLを実行する方法(PostgresQL)
- 【初心者向け】PostgreSQLのロールについて分かり易く解説
- PostgreSQLのユーザ一覧情報を参照する方法
- PostgreSQL 15ではpublicスキーマへの書き込みが制限されます
- PostgreSQL/PostgreSQLのユーザ一覧情報を参照する方法
- PostgreSQL データ削除時のエラー: database XXXX is being accessed by other users
- pg_controlファイル
- KeycloakをPostgreSQLに対応させる
- KeycloakのDBをpostgreSQLに変更する
アプリケーションサーバ
Tomcat on Windows
Webサーバ
Apache
Nginx
-
サービス起動時に以下のエラーとなった場合は、/etc/nginx/nginx.confのpidの設定と/usr/lib/systemd/system/nginx.serviceのPIDFileの設定を/run/nginx.pidに修正する。
[emerg] open() "/run/nginx/nginx.pid" failed (2: No such file or directory)
Nginx on Linux
SSL化
Radius
- FreeRADIUS構築メモ
- 無線LAN(Wi-Fi)接続認証をパスワードからLDAP認証に切替えた話(FreeRADIUS+OpenLDAP連携)
- FreeRadiusインストールするがradtestがうまくいかないメモ(CentOS)
- FreeRadius 3.0.13-8.el7_4 が起動/認証に失敗する←神
- EAP対応 Radius認証テストツール (eapol_test)
- RADIUSにおけるPerlを用いたEAP-MSCHAPV2認証について
- CentOS7から/var/run以下のpidディレクトリがOS再起動の度に削除される
- AWS Directory Serviceを使ってEnterprise Wi-Fiを使う
セキュリティ
OpenSSL
プロトコルバージョン
Kubernetes
parted /dev/sdb
GNU Parted 3.2
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) mklabel gpt
(parted) p
モデル: VMware Virtual disk (scsi)
ディスク /dev/sdb: 3299GB
セクタサイズ (論理/物理): 512B/512B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
(parted) q
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
fdisk /dev/sdb
fdisk (util-linux 2.32.1) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます 。
書き込みコマンドを使用する際は、注意して実行してください。
コマンド (m でヘルプ): n
パーティション番号 (1-128, 既定値 1):
最初のセクタ (34-6442450910, 既定値 2048):
最終セクタ, +セクタ番号 または +サイズ{K,M,G,T,P} (2048-6442450910, 既定値 6442450910):
新しいパーティション 1 をタイプ Linux filesystem、サイズ 3 TiB で作成しました。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 3 TiB, 3298534883328 バイト, 6442450944 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: F16EDAE4-C95A-47E2-A321-6CBE8E6CF3EB
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/sdb1 2048 6442450910 6442448863 3T Linux ファイルシステム
コマンド (m でヘルプ): t
パーティション 1 を選択
パーティションのタイプ (L で利用可能なタイプを一覧表示します): L
1 EFI System C12A7328-F81F-11D2-BA4B-00A0C93EC93B
(略)
パーティションのタイプ (L で利用可能なタイプを一覧表示します): 31
パーティションのタイプを 'Linux filesystem' から 'Linux LVM' に変更しました。
コマンド (m でヘルプ): p
ディスク /dev/sdb: 3 TiB, 3298534883328 バイト, 6442450944 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: F16EDAE4-C95A-47E2-A321-6CBE8E6CF3EB
デバイス 開始位置 終了位置 セクタ サイズ タイプ
/dev/sdb1 2048 6442450910 6442448863 3T Linux LVM
コマンド (m でヘルプ): w
パーティション情報が変更されました。
ioctl() を呼び出してパーティション情報を再読み込みします。
ディスクを同期しています。
lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1T 0 disk
sda1 8:1 0 600M 0 part /boot/efi
sda2 8:2 0 1G 0 part /boot
sda3 8:3 0 1022.4G 0 part
sdb 8:16 0 3T 0 disk
sdb1 8:17 0 3T 0 part
sdc 8:32 0 4.7T 0 disk
sr0 11:0 1 11.7G 0 rom
ml-root 253:0 0 1018.4G 0 lvm /
ml-swap 253:1 0 4G 0 lvm [SWAP]
pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
pvdisplay /dev/sdb1
"/dev/sdb1" is a new physical volume of "<3.00 TiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <3.00 TiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 50AsKV-6mIC-Oos5-X3Ca-jmvW-onXf-1fdpfN
vgcreate VG_data /dev/sdb1
Volume group "VG_data" successfully created
vgdisplay VG_data
--- Volume group ---
VG Name VG_data
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <3.00 TiB
PE Size 4.00 MiB
Total PE 786431
Alloc PE / Size 0 / 0
Free PE / Size 786431 / <3.00 TiB
VG UUID XBYXbi-Melr-Im47-N9Ih-M9xK-wgNx-xzEGXX
lvcreate -l 786431 -n LV_data VG_data
Logical volume "LV_data" created.
lvdisplay
--- Logical volume ---
LV Path /dev/VG_data/LV_data
LV Name LV_data
VG Name VG_data
LV UUID viO9mA-7E7p-lYBl-KMpx-Zmwj-pAKK-27IMx6
LV Write Access read/write
LV Creation host, time XXXXX2, 2024-01-09 17:09:28 +0900
LV Status available
open 0
LV Size <3.00 TiB
Current LE 786431
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
mkfs.xfs /dev/VG_data/LV_data
meta-data=/dev/VG_data/LV_data isize=512 agcount=4, agsize=201326336 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=805305344, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=393215, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
mount /dev/VG_data/LV_data /data
mount: (hint) your fstab has been modified, but systemd still uses
the old version; use 'systemctl daemon-reload' to reload.
systemctl daemon-reload
df -h
ファイルシス サイズ 使用 残り 使用% マウント位置
devtmpfs 394G 0 394G 0% /dev
tmpfs 394G 0 394G 0% /dev/shm
tmpfs 394G 8.7M 394G 1% /run
tmpfs 394G 0 394G 0% /sys/fs/cgroup
/dev/mapper/ml-root 1002G 1.9G 949G 1% /
/dev/sda2 974M 156M 751M 18% /boot
/dev/sda1 599M 5.8M 594M 1% /boot/efi
tmpfs 79G 0 79G 0% /run/user/1000
/dev/mapper/VG_data-LV_data 3.0T 22G 3.0T 1% /data
Alt+F11
Alt押しながらI+M
Sub 全ページをA1に()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Activate
Range("A1").Select
Next ws
End Sub
JDKインストール確認
$ apt list --installed | grep jdk
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
default-jdk-headless/jammy,now 2:1.11-72build2 amd64 [installed,automatic]
default-jdk/jammy,now 2:1.11-72build2 amd64 [installed]
openjdk-11-jdk-headless/jammy-updates,jammy-security,now 11.0.15+10-0ubuntu0.22.04.1 amd64 [installed,automatic]
openjdk-11-jdk/jammy-updates,jammy-security,now 11.0.15+10-0ubuntu0.22.04.1 amd64 [installed,automatic]
openjdk-11-jre-headless/jammy-updates,jammy-security,now 11.0.15+10-0ubuntu0.22.04.1 amd64 [installed,automatic]
openjdk-11-jre/jammy-updates,jammy-security,now 11.0.15+10-0ubuntu0.22.04.1 amd64 [installed,automatic]
JMeterダウンロード
$ cd /home/admin/JMeter
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//jmeter/binaries/apache-jmeter-5.4.3.tgz
$ ls -l
total 69140
-rw-rw-r-- 1 admin admin 70796171 Dec 24 2021 apache-jmeter-5.4.3.tgz
JMeter展開
$ tar xvzf apache-jmeter-5.4.3.tgz
シナリオ実行
$ cd ./apache-jmeter-5.4.3/bin/
$ ./jmeter -n -t [実行するシナリオファイル.jmx] -l [結果ファイル.jtl]
参考資料
20220617 講習
-
テストユーザのCSVはbinの下に置くと楽。
-
たくさんユーザ作っておいて、必要なユーザだけ利用も可。
-
負荷試験の結果がミリ秒単位で表示される。
-
Ramp-Up:指定した期間で指定した人数が実行される
普通にやるとn人全員一気に実行、設定するとm分間でn人とか -
コマンドラインからの実施が推奨
-
変数に書けない、ログイン後のセッションやトークンを取得できる
-
SSOができるかは試したことない
-
数万人のテストをする場合はマスターノードとワーカーノードのようにできる
3000~4000人であれば1台でいいはず
マスターとワーカーの設定はプロパティファイルで行う
ノード間で必要なポートを開けたりすればOK
シナリオ作成手順
- HTTPプロキシサーバでポートを設定
- ブラウザのプロキシとして先ほど指定したポートを設定
- テストするサイトを表示し、やりたいシナリオを実施。
- JMeterに戻って記録を停止
- 記録コントローラで必要な操作を選択する
準備
設定
-
DNS Cashe Manager
- Clear cache each iteration
-
スレッドグループ > Ramp-Up期間
- 指定した期間で指定した人数が実行される(n分でm人みたいな)
-
スレッドグループ > サンプルエラー後のアクション
- テスト停止
-
スレッドグループ > 設定エレメント > HTTPクッキーマネージャ
- 「繰り返しごとにクッキーを破棄しますか?」にチェック
構築手順
AADC設定
- AADCサーバにドメインアカウント(PW:my1-Bcs)でログインする
- AADCのインストールmsiを実行する(SQLServerが勝手に入る)
- カスタマイズ設定で、パスワードハッシュ同期にチェックを入れる(オンプレADとM365のパスワードが同期される)
- シングルサインオンにチェックを入れる(今回の主目的)
- Azure ADの接続は、M365の管理者アカウントを利用
- ディレクトリの接続で、「ochadom.cc.ocha.ac.jp」を選択
- ドメインとOUのフィルタリングで、テスト用のOUとocha_usersだけ選択する
- 一意のユーザー識別で、メール属性を選択する
同期の確認
オンプレADサーバで確認
- AADCの設定が済むとオンプレADのochadom.cc.ocha.ac.jp>Computersに「AZUREADSSOACC」というアカウントが作られる
- 表示 > 拡張機能を選択してから、AZUREADSSOACC > プロパティ > 属性エディタ > whenCreatedがAADC設定の時間になっているか確認する
- テストOUにテストアカウントを作成し、プロパティからメールアドレスを設定する
AADCサーバで確認
- PowerShellで下記コマンドを実行し、強制的に同期をかける
Start-ADSyncSyncCycle -PolicyType Delta
- スタートメニュー > Azure AD Connect > Syncronization Serviceを開くと同期の実行結果が見られる
AzureAD管理ポータルで確認
- Azure AD connect>シームレスなシングルサインオンで先ほど作成したアカウントが居ることを確認する
注意事項
- AADC設定時にドメイン選択するといきなり既存アカウントのパスワードが上書きされてしまう
- AzureADConnectで2つのドメインを利用することはできない(テストドメインと本番ドメインとか)
- 各アプリのPlan1同士とか、Plan1とPlan2は競合するので一緒に付与することはできない
Tips
M365側の拡張属性に値を入れる
- PowerShellでAzureにログインし、値を入れたいユーザのObjectIdを確認する
- ObjectIdを指定して属性値を設定する
> Install-Module AzureAD
#Yを2回
> Connect-AzureAD
Account Environment TenantId TenantDomain AccountType
------- ----------- -------- ------------ -----------
<UPN> AzureCloud 8101e58b-ec3d-4424-ad65-3bc327a8d126 <ドメイン> User
> Get-AzureADUser -SearchString citskodomo15 | Select-Object *
ExtensionProperty : {[odata.type, Microsoft.DirectoryServices.User], [createdDateTime, 2023/03/15 9:21:09]
, [employeeId, ], [onPremisesDistinguishedName, ]...}
DeletionTimestamp :
ObjectId : 5bb916c7-bf98-4380-90f2-99a393800cc3
ObjectType : User
AccountEnabled : True
> Set-AzureADUserExtension -ObjectId 5bb916c7-bf98-4380-90f2-99a393800cc3 -ExtensionName extensionattribute1 -ExtensionValue A3Faculty
> Set-AzureADUserExtension -ObjectId 5bb916c7-bf98-4380-90f2-99a393800cc3 -ExtensionName extensionattribute1 -ExtensionValue A1plusStudent
> Set-AzureADUserExtension -ObjectId 5bb916c7-bf98-4380-90f2-99a393800cc3 -ExtensionName extensionattribute1 -ExtensionValue A3Faculty
> Set-AzureADUserExtension -ObjectId 5bb916c7-bf98-4380-90f2-99a393800cc3 -ExtensionName extensionattribute1 -ExtensionValue A3Student
インプレースアーカイブの容量確認
- AADCサーバで実行(最後のファイル出力パスを変更する)
$UserList = Get-Mailbox -Resultsize unlimited -RecipientTypeDetails UserMailbox
$MailboxStat = $UserList | Foreach {Get-MailboxStatistics $_.UserPrincipalName ; Start-Sleep -m 200}
$MailboxStat | Select DisplayName,ItemCount,TotalItemSize | Export-CSV -NoTypeInformation -Encoding UTF8 "C:\Temp\TotalItemSize.csv"
同期について
- Synchronization Rules Editorを使うと、同期するユーザの制御などができる
- M365管理センターでユーザを見る時、同期がかかっていないユーザは「同期の状態」が雲アイコンになり、同期がかかると本になる
多要素認証の強制
- M365管理画面でユーザ選んで多要素認証押すと多要素の画面になる
- 多要素の画面は虫眼鏡で検索できる
FirefoxでシームレスなSSO
設定手順
-
Firefox 向けグループポリシーテンプレート(policy_templates_v4.8.zip)を下記からダウンロードする
https://github.com/mozilla/policy-templates/releases -
ダウンロードしたファイルを展開して、ファイルを下記に配置
コピーするファイル コピー先
\policy_templates_v4.8\windows\firefox.admx C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions
\policy_templates_v4.8\windows\mozilla.admx C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions
\policy_templates_v4.8\windows\en-US\firefox.adml C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US
\policy_templates_v4.8\windows\en-US\mozilla.adml C:\Windows\SYSVOL\domain\Policies\PolicyDefinitions\en-US -
ポリシーを設定
ユーザーの構成>管理用テンプレート>Mozilla>Firefox>Authentication
「SPNEGO」を有効化し、値「https://autologon.microsoftazuread-sso.com」を設定
参考ドキュメント
- Mozilla Firefox (すべてのプラットフォーム)
- mozilla/policy-templates
- グループポリシーを使用して Firefox をカスタマイズする
- Mozilla Firefox ESR60でのPolicy Engineによるポリシー設定の方法と設定項目のまとめ
- グループポリシー – Firefox の設定項目を追加する
その他
- グローバルアドレス一覧の設定をいじっても、オンプレから同期しているので拒否される
- 同期拒否しているユーザはaadcのログから確認する
- shodan、censysというサイトで外部宛にポート開いてるか確認できる
あなたはシステムエンジニアです。以下の要求を満たすスクリプトを生成してください。
要求
・GAMを利用する
・既存のGoogleアカウントに対してニックネームを追加するコード
・入力csvファイルパスはコマンドライン引数で受け取る
・言語はbashを用いる
・適度にコメントを付与する
以下は、要求を満たすスクリプトの例です。
#!/bin/bash
# 入力csvファイルパスをコマンドライン引数から取得
csv_file=$1
# GAMを利用してGoogleアカウントにニックネームを追加する関数
add_nickname() {
# GAMコマンドを実行してニックネームを追加
gam update user $1 nickname $2
}
# csvファイルを読み込み、各行のデータを処理する
while IFS=, read -r email nickname; do
# ニックネームを追加する関数を呼び出し
add_nickname $email $nickname
done < $csv_file
このスクリプトでは、
csv_file変数を使ってコマンドライン引数から入力csvファイルパスを取得し、
add_nickname関数を定義しています。
add_nickname関数では、GAMコマンドを使って指定されたGoogleアカウントにニックネームを追加します。
その後、whileループを使ってcsvファイルを1行ずつ読み込み、
各行のデータをadd_nickname関数に渡してニックネームを追加します。
スクリプトを実行する際は、以下のようにコマンドライン引数として入力csvファイルパスを指定します。
bash script.sh input.csv
なお、このスクリプトはGAMコマンドがインストールされていることを前提としています。GAMコマンドはGoogle Workspaceの管理者向けのツールであり、事前にインストールしておく必要があります。
GAMコマンドのインストール方法を教えてください。
GAMコマンドのインストール方法は、以下の手順に従って行います。
-
Pythonのインストール:
GAMコマンドはPythonで書かれているため、まずPythonをインストールする必要があります。公式ウェブサイト(https://www.python.org/downloads/)から最新バージョンのPythonをダウンロードし、インストールしてください。 -
GAMコマンドのダウンロード:
GAMコマンドの最新バージョンをGitHubリポジトリ(https://github.com/jay0lee/GAM)からダウンロードします。以下のコマンドを実行して、GAMコマンドをダウンロードします。
curl -L https://git.io/install-gam | bash
このコマンドは、GAMコマンドをダウンロードしてインストールするスクリプトを実行します。
- GAMコマンドの設定:
GAMコマンドを使用する前に、GAMコマンドを設定する必要があります。以下のコマンドを実行して、GAMコマンドの設定を行います。
gam config
このコマンドを実行すると、Google Workspaceの管理者アカウントにログインするための認証プロセスが開始されます。認証が完了すると、GAMコマンドの設定が完了します。
以上の手順に従ってGAMコマンドをインストールし、設定を行うことで、GAMコマンドを利用する準備が整います。詳細な使い方やコマンドのオプションについては、GAMコマンドの公式ドキュメント(https://github.com/jay0lee/GAM/wiki)を参照してください。
- AzureADConnect強制同期(PowerShellで実行)
Start-ADSyncSyncCycle -PolicyType Delta
- コマンドプロンプトにでlogoffコマンドを実行するとログオフできる。
MySQL・mariadb
rootでログインできなくて、かつ構築中の場合
- 初期化した方が速い
# systemctl stop mariadb
# rm -rf /var/lib/mysql/*
# systemctl start mariadb
# mysql_secure_installation
->全てYで進める。
#mysql -u root -p < [ダンプファイル]
root以外でログインできない時
- エラーは下記のような感じ
[root@mysql dbbackup]# mysql -u official -p
Enter password:
ERROR 1045 (28000): Access denied for user 'official'@'localhost' (using password: YES)
- ユーザ自体が居るか確認(この時はrootでログイン)
MariaDB [(none)]> select host, user ,password from mysql.user;
+--------------+----------+-------------------------------------------+
| host | user | password |
+--------------+----------+-------------------------------------------+
| localhost | root | *718FDC14B9A6CB7E143299AD18C330ACC01C84AE |
| 127.0.0.1 | root | *718FDC14B9A6CB7E143299AD18C330ACC01C84AE |
| 192.168.0.% | root | *718FDC14B9A6CB7E143299AD18C330ACC01C84AE |
| 172.16.1.% | root | *718FDC14B9A6CB7E143299AD18C330ACC01C84AE |
| 192.168.0.22 | official | *A5CA8A74703F8CA54A03C9D3DC3AEF295B55F234 |
| % | official | *A5CA8A74703F8CA54A03C9D3DC3AEF295B55F234 |
| % | schola | *7F67F2E67278CE4298B0AA7FB079C10ADD9FC33C |
+--------------+----------+-------------------------------------------+
- パスワード再設定
- 2行目だけで行けることもあるが、いけないときは2行目が必要
MariaDB [(none)]> grant all on *.* to user@localhost identified by 'password';
MariaDB [(none)]> set password for user@localhost = password('password');
PostgreSQL
バックアップ・リストア
pg_dump -h <IP> -p 32584 -U keycloakuser keycloak > 20231017.sql
スクリプト形式でバックアップするなら、リストアは以下になるかと。
psql -h <IP> -p 32584 -U keycloakuser -d keycloak -f ファイル名
以下でもリストアできた
$ psql -f infile postgres
tips
v15からpublicスキーマに対する接続制限が行われる
Crunchy Postgres for Kubernetes
- マスタ/レプリカの確認はDBPodのyamlから実施
postgres-operator.crunchydata.com/role: master #マスタDB
postgres-operator.crunchydata.com/role: replica #レプリカDB
Apache
Java
Tomcat
Nginx
ダウンロード
- mainlineは最新版で、実験的なモジュールを含む場合があり、バグがあるかもしれない。
- stableには重要なバグフィックスが適用される。実稼働サーバーにはstable版が推奨される。
コマンド
- 起動
start nginx - 再起動
nginx -s restart - 停止
nginx -s stop
nginx -s quit - 設定ファイルリロード
nginx -s reload
仮想基盤/物理サーバ
仮想マシン移行
- 停止(ゲストOSのシャットダウン)→クロスホストvMotion(コンピュートとストレージ)
- HotADDの有効化=設定からメモリホットプラグ、CPUホットプラグを有効化
ESXi
- ホスト名変更
esxcli system hostname set --host=[ホスト名] - 最初はaccessポートの設定しかできないので、IP振った後はSWのaccessポートにつないで構築する
- trunkの設定したらSWのTrunkポートにつなぐ
OSインストール
- 「unsuccessful EFI Network」と表示されたときの対処
- ESCキーを押してBoot Managerを起動する
- 「EFI VMware Virtual SATA CDROM Drive」を選択し、Enter
- 「Press any Key to boot From CD or DVD...」が表示されたらテキトーなキーを押す
物理サーバ
- メモリの載せ方はサーバーユーザーガイドよりもシステム構成図を見た方が良い
HPEサーバ
- 前面のカバー外して(向かって左側に押すところがあって、押すと外れる)電源入れる
- 以下が構築の順序
- iLo設定
- boot画面→F9→system configuration→iLo5 Congfiguration Utility →Network Option→IP設定
- RAID組む
- boot画面→F10→Intelligent Provisioning→Storage~
- Create array→ディスク2つ選ぶ→RAID1で残り全てデフォルト
- ファーム上げる(何はともあれiLOを使えるようにして、コンソールからISOをマウントする)
- iLo、NIC、StarageController、BIOS
- iLo設定
iLO
- Advancedライセンスを入れるとアラート通知等できる
ntp
- ntpサーバは仮想サーバでない方が良い(仮想サーバが起動しなかった場合に時刻同期できないから)
データ移行
- rsyncだとWindowsの詳細な権限設定が消える
- robocopyだとWindowsの権限が保持できる
UPS
- 電源喪失時のシャットダウンの仕組み(UPS構成)を確認する
- 仮想サーバ停止→仮想基盤停止のように順序がある
- 起動時はストレージ上げないと仮想サーバ上がらない
スイッチ
- スタックケーブルを差して電源を入れるとスタックされる。
- 電源をいれると最初は各スイッチにメンバー番号1が振られるが、スタックが構成されると片方のメンバー番号が2になる。
- LEDは10G通信の時は緑に光る、1G通信のときはオレンジに光る。
ストレージ
- コントローラ1つに1本電源が必要。
- 電源スイッチもある。
- コンソール接続してIPアドレス(デフォルトは10.0.0.2とか)変更する。
- スイッチにつないでディスクグループ作成する。
- FCケーブルはサーバに直刺しする。
- サーバに見せて良いストレージ確認されるので全てOKして、サーバ側からもストレージ反映確認する。
参考URL
ESXi
- VMware ESXi/ESX のビルド番号とバージョン
- ホストをメンテナンス モードに切り替える
- 【ESXi】SSH接続を有効にしてパスワード認証でログインできるようにする
- VMware ESXi へのパッチ適用手順
- ESXiのパスワードのポリシーを変更する
vCenter
仮想マシン
そもそも
-
xxxxx.crt 中間証明書
-
xxxxx.crt サーバ証明書
-
xxxxx.key 鍵
-
サーバ証明書と中間証明書は同じ名前のことが多い
CSR作成コマンド
任意のLinuxサーバで実行
①鍵の作成、②CSRの作成、③CSR内容確認 のコマンド
# openssl genrsa -out <FQDN>.key 2048
# openssl req -new -key <FQDN>.key -sha256 -out <FQDN>.csr
# openssl req -noout -text -in <FQDN>.csr
CSRの入力項目
Country(C) : JP
State or Province Name(ST) : 県名
Locality Name(L) : 都市名
Organization Name(O) : 大学名
Organizational Unit Name(OU) : 組織名
Common Name(CN) :サーバ名
NII証明書
- 有効期限は13か月
- 有効期間の開始日・終了日は指定できない
証明書更新
-
現状の確認
https:// にアクセスして、SSL証明書の内容を確認 -
証明書の入れ替え
SSLCertificateFile /etc/ssl/certs/xxxxx.crt (サーバ証明書)
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key (鍵)
SSLCertificateChainFile /etc/apache2/ssl.crt/xxxxx.crt (中間証明書)
を入れ替える
-
apacheのリスタート
systemctl restart apache2
-
- の再確認でSSL証明書が変更されていることを確認
参考URL
・Hyper-V環境におけるADの要件について
結論から言うとHyper-V単体で使用(ライブマイグレーションはしない)
する場合はADは必須ではありません。Hyper-Vの構築自体はADがなくて
も問題ありません。・Hyper-V環境でADが必要となる構成について
Hyper-V環境でライブマイグレーション(筐体間でVMを移動)を実施する
場合にはフェイルオーバークラスタという機能をHyper-Vがインストール
されている物理Windowsにインストールする必要があります。
このフェイルオーバークラスタの要件としてこの物理Windowsが
ADドメインに参加している必要があるため、そのためだけにADが必要と
なってきます。・ADは物理 or 仮想
Hyper-Vがインストールされている物理Windowsがドメイン参加する
ためのADですが、物理でも仮想でも良いようです。
ただし堀内さんが仰っているようにHyper-Vがインストール
されている物理Windowsが参照するADが、Hyper-V上の仮想マシン
というのはHyper-Vやフェイルオーバークラスタの障害時に切り分けが
困難になるため、Hyper-Vの外に置くには必然的に物理ADになってくる
ということかと思います。
Hyper-V環境の外にVMwareやNutanixの仮想基盤環境があるのであれば、
そこに仮想マシンのADをたてて、そのADを使用してドメイン参加
できますが、そのような環境はあまりないので、ADは物理というのが
一般的に広まってきているようです。