tag:crieit.net,2005:https://crieit.net/tags/OCI/feed 「OCI」の記事 - Crieit Crieitでタグ「OCI」に投稿された最近の記事 2023-02-28T06:38:46+09:00 https://crieit.net/tags/OCI/feed tag:crieit.net,2005:PublicArticle/18285 2022-08-21T03:02:03+09:00 2023-02-28T06:38:46+09:00 https://crieit.net/posts/OCI-Linux OCIでディスク追加&Linuxのパーティション/LVM拡張 <h1 id="1.ディスク追加"><a href="#1.%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E8%BF%BD%E5%8A%A0">1.ディスク追加</a></h1> <h2 id="1.1. 新規ブロックボリュームを作成"><a href="#1.1.+%E6%96%B0%E8%A6%8F%E3%83%96%E3%83%AD%E3%83%83%E3%82%AF%E3%83%9C%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%A0%E3%82%92%E4%BD%9C%E6%88%90">1.1. 新規ブロックボリュームを作成</a></h2> <p>Webコンソールで、<br /> 「ストレージ」>「ブロックボリューム」<br /> から新規ディスク作成。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fa3e8f18f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fa3e8f18f.png?mw=700" alt="image.png" /></a></p> <h2 id="1.2. インスタンスにアタッチ"><a href="#1.2.+%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%AB%E3%82%A2%E3%82%BF%E3%83%83%E3%83%81">1.2. インスタンスにアタッチ</a></h2> <p>対象インスタンスに移動し、<br /> 「アタッチされたブロックボリューム」>「ブロックボリュームのアタッチ」<br /> アタッチメントタイプはiSCSIを選択。</p> <p><a href="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fd8f44d6e.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fd8f44d6e.png?mw=700" alt="image.png" /></a></p> <h2 id="1.3. アタッチされたディスクをOSに認識させる"><a href="#1.3.+%E3%82%A2%E3%82%BF%E3%83%83%E3%83%81%E3%81%95%E3%82%8C%E3%81%9F%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%82%92OS%E3%81%AB%E8%AA%8D%E8%AD%98%E3%81%95%E3%81%9B%E3%82%8B">1.3. アタッチされたディスクをOSに認識させる</a></h2> <p>コンソール上で「アタッチ済」になっていてもOSではまだ認識していない。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fea2a6373.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fea2a6373.png?mw=700" alt="image.png" /></a></p> <pre><code class="shell-session">$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk tqsda1 8:1 0 100M 0 part /boot/efi tqsda2 8:2 0 1G 0 part /boot mqsda3 8:3 0 45.5G 0 part tqocivolume-root 252:0 0 35.5G 0 lvm / mqocivolume-oled 252:1 0 10G 0 lvm /var/oled </code></pre> <p>iSCSIコマンドを新規ディスクのアタッチ対象サーバで実行する。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fef18739f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046300fef18739f.png?mw=700" alt="image.png" /></a><br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046301004fe916c.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046301004fe916c.png?mw=700" alt="image.png" /></a></p> <p>記載されているコマンドを1行ずつ、実行結果を確認しながら実行していく。<br /> 3行実行後に見てみると認識されている。</p> <pre><code class="shell"># lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk tqsda1 8:1 0 100M 0 part /boot/efi tqsda2 8:2 0 1G 0 part /boot mqsda3 8:3 0 45.5G 0 part tqocivolume-root 252:0 0 35.5G 0 lvm / mqocivolume-oled 252:1 0 10G 0 lvm /var/oled sdb 8:16 0 50G 0 disk </code></pre> <p>MOUNTPOINTに何も記載されていないので、まだ新規追加されたディスクをOSは認識しているがマウントされていないので、このディスクに操作を行えない。</p> <h1 id="2. パーティショニング"><a href="#2.+%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0">2. パーティショニング</a></h1> <p>パーティションテーブルの表示</p> <pre><code class="shell"># parted /dev/sda print Model: ORACLE BlockVolume (scsi) Disk /dev/sda: 53.7GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 106MB 105MB fat16 EFI System Partition boot, esp 2 106MB 1180MB 1074MB xfs 3 1180MB 50.0GB 48.8GB lvm </code></pre> <h2 id="2.1 ①partedコマンドでパーティション作成"><a href="#2.1+%E2%91%A0parted%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E4%BD%9C%E6%88%90">2.1 ①partedコマンドでパーティション作成</a></h2> <p>partedコマンドを使用して新しいパーティション作成。<br /> fdiskコマンドは2TB以下の場合に利用。2TB以上の場合はpartedコマンド,gdiskコマンド。</p> <pre><code class="shell"># parted /dev/sdb GNU Parted 3.2 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mklabel New disk label type? msdos (parted) mkpart Partition name? []? userdata File system type? [ext2]? xfs Start? 2048s End? 10GB (parted) quit Information: You may need to update /etc/fstab. </code></pre> <p>2個目のパーティションを作成</p> <pre><code class="shell"># parted /dev/sdc GNU Parted 3.2 Using /dev/sdc Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? xfs Start? 10GB End? 30GB (parted) q Information: You may need to update /etc/fstab. </code></pre> <p>ファイルシステムは以下が参考になる。<br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/sion_cojp/items/c8e015db39ddbf43012e">https://qiita.com/sion_cojp/items/c8e015db39ddbf43012e</a></p> <pre><code class="shell"># udevadm settle </code></pre> <p>状況把握</p> <pre><code class="shell"># parted /dev/sdc print Model: ORACLE BlockVolume (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 10.0GB 9999MB primary 2 10.0GB 30.0GB 20.0GB primary </code></pre> <p>partedコマンドで作成したパーティションは以下の手順でファイルシステムを作成する。</p> <pre><code class="shell"># mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=610304 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=2441216, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 </code></pre> <p>もしファイルシステムがext4の場合は</p> <pre><code>mkfs.ext4 </code></pre> <p>状況把握</p> <pre><code class="shell"># parted /dev/sdc print Model: ORACLE BlockVolume (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 10.0GB 9999MB primary xfs 2 10.0GB 30.0GB 20.0GB primary xfs 3 30.0GB 53.7GB 23.7GB extended </code></pre> <p>partedコマンドで状況把握</p> <pre><code class="shell"># parted /dev/sdc print Model: ORACLE BlockVolume (scsi) Disk /dev/sdc: 53.7GB Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 10.0GB 9999MB primary 2 10.0GB 30.0GB 20.0GB primary 3 30.0GB 53.7GB 23.7GB extended </code></pre> <h2 id="2.2 ②fdiskコマンドでパーティション作成"><a href="#2.2+%E2%91%A1fdisk%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E4%BD%9C%E6%88%90">2.2 ②fdiskコマンドでパーティション作成</a></h2> <p>2個目のパーティション作成。<br /> fdiskコマンドは2TB以下の場合に利用。2TB以上の場合はgdiskコマンドやartedコマンド。</p> <pre><code class="shell"># fdisk /dev/sdc Welcome to fdisk (util-linux 2.32.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (1-4, default 1): First sector (2048-104857599, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-104857599, default 104857599): 54857599 Created a new partition 1 of type 'Linux' and of size 26.2 GiB. Command (m for help): t Selected partition 1 Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM'. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (2-4, default 2): First sector (54857600-104857599, default 54857728): Last sector, +sectors or +size{K,M,G,T,P} (54857728-104857599, default 104857599): Created a new partition 2 of type 'Linux' and of size 23.9 GiB. Command (m for help): t Partition number (1,2, default 2): Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM'. Command (m for help): w    ←書き込み The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. </code></pre> <p>fdiskコマンドで状況把握</p> <pre><code class="shell"># fdisk -l /dev/sdc Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes Disklabel type: dos Disk identifier: 0x538e2757 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 54857599 54855552 26.2G 8e Linux LVM /dev/sdb2 54857728 104857599 49999872 23.9G 8e Linux LVM </code></pre> <h2 id="2.3 LVM作成"><a href="#2.3+LVM%E4%BD%9C%E6%88%90">2.3 LVM作成</a></h2> <p>LVを作成していく。</p> <h3 id="2.3.1 Physical Volume作成"><a href="#2.3.1+Physical+Volume%E4%BD%9C%E6%88%90">2.3.1 Physical Volume作成</a></h3> <p>対象を確認。</p> <pre><code class="shell"># lsblk sdb 8:16 0 50G 0 disk ├─sdb1 8:17 0 26.2G 0 part ├─sdb2 8:18 0 23.9G 0 part </code></pre> <p>対象に対して作成</p> <pre><code class="shell-session"># pvcreate /dev/sdb1 /dev/sdb2 Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdb2" successfully created. </code></pre> <p>確認。</p> <pre><code class="shell"># pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 --- <26.16g <26.16g /dev/sdb2 lvm2 --- 23.84g 23.84g </code></pre> <h3 id="2.3.2 Volume Group作成"><a href="#2.3.2+Volume+Group%E4%BD%9C%E6%88%90">2.3.2 Volume Group作成</a></h3> <p>作成。</p> <pre><code class="shell"># vgcreate vg01 /dev/sdb1 Volume group "vg01" successfully created # vgcreate vg02 /dev/sdb2 Volume group "vg02" successfully created </code></pre> <p>確認。</p> <pre><code class="shell"># vgs VG #PV #LV #SN Attr VSize VFree vg01 1 0 0 wz--n- 26.15g 26.15g vg02 1 0 0 wz--n- <23.84g <23.84g </code></pre> <h3 id="2.3.3 Logical Volume作成"><a href="#2.3.3+Logical+Volume%E4%BD%9C%E6%88%90">2.3.3 Logical Volume作成</a></h3> <p>作成</p> <pre><code class="shell"># lvcreate -n lv01 -l +100%FREE vg01 Logical volume "lv01" created. # lvcreate -n lv02 -l +100%FREE vg02 Logical volume "lv02" created. </code></pre> <p>確認</p> <pre><code class="shell"># lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-a----- 26.15g lv02 vg02 -wi-a----- <23.84g </code></pre> <h2 id="2.4 ファイルシステムの作成&マウント"><a href="#2.4+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E4%BD%9C%E6%88%90%EF%BC%86%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88">2.4 ファイルシステムの作成&マウント</a></h2> <p>作成したブロックデバイスにファイルシステムを作成する。<br /> ファイルシステムがxfsの場合は以下。</p> <pre><code class="shell"># mkfs.xfs /dev/vg01/lv01 meta-data=/dev/vg01/lv01 isize=512 agcount=4, agsize=1713920 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=6855680, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3347, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # mkfs.xfs /dev/vg02/lv02 meta-data=/dev/vg02/lv02 isize=512 agcount=4, agsize=1562368 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=6249472, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3051, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 </code></pre> <p>もしファイルシステムがext4の場合は</p> <pre><code>mkfs.ext4 </code></pre> <p>ファイルシステムの手動マウント。</p> <pre><code class="shell"># mount /dev/vg01/lv01 /mnt/newspace1 # mount /dev/vg02/lv02 /mnt/newspace2 </code></pre> <p>または</p> <pre><code class="shell"># mount /dev/sdb1 /mnt/newspace </code></pre> <p>現在マウントされてるファイルシステム、マウントポイントを表示。</p> <pre><code class="shell"># mount|grep sdb1 /dev/sdb1 on /mnt/newspace type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota) </code></pre> <h3 id="2.4.1 ファイルシステムの永続マウント"><a href="#2.4.1+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E6%B0%B8%E7%B6%9A%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88">2.4.1 ファイルシステムの永続マウント</a></h3> <p>今のままだとOS再起動時にマウントされない。<br /> /etc/fstabにエントリーを追加。</p> <p>まずは情報確認。</p> <pre><code class="shell"># lsblk -fp NAME FSTYPE LABEL UUID MOUNTPOINT /dev/sda tq/dev/sda1 vfat 2314-8847 /boot/efi tq/dev/sda2 xfs a619a666-d067-48a1-84c0-597037623f97 /boot mq/dev/sda3 LVM2_member 5QtWJg-49vg-4Ces-2Iv3-MRP5-dNdG-nLQwgd tq/dev/mapper/ocivolume-root xfs b74c7d6e-a842-4ab7-a47e-2ac332edaa3d / mq/dev/mapper/ocivolume-oled xfs 0950a10f-ab7a-4ade-81df-abfe0b973620 /var/oled /dev/sdb /dev/sdb1 xfs 1f50f554-f853-4ca1-84a3-f478a42a8b5e /mnt/newspace /dev/sdb2 xfs 5a6d9dcc-ab9f-4dc0-a9a1-08f596d7b7a0 /mnt/newspace2 </code></pre> <p>/etc/fstabに追加する。</p> <pre><code class="shell">#### UUID=1f50f554-f853-4ca1-84a3-f478a42a8b5e /mnt/newspace xfs defaults 0 0 </code></pre> <p>第1フィールド UUID<br /> 第2フィールド マウントポイント<br /> 第3フィールド ファイルシステム(xfsやext4)<br /> 第4フィールド オプションをカンマ区切りで記入。なければ「defaults」<br /> 第5フィールド 0<br /> 第6フィールド xfsファイルシステムの場合は0。ext4ファイルシステムの場合、ルートファイルシステムには1を、その他は2を。</p> <h1 id="3.ディスク拡張"><a href="#3.%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E6%8B%A1%E5%BC%B5">3.ディスク拡張</a></h1> <h2 id="3.1.パーティション拡張"><a href="#3.1.%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E6%8B%A1%E5%BC%B5">3.1.パーティション拡張</a></h2> <h3 id="3.1.1 OCIコンソールからオンラインディスク拡張とOS認識"><a href="#3.1.1+OCI%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%8B%E3%82%89%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E6%8B%A1%E5%BC%B5%E3%81%A8OS%E8%AA%8D%E8%AD%98">3.1.1 OCIコンソールからオンラインディスク拡張とOS認識</a></h3> <p>コンソールからオンラインでディスク拡張可能。今回は50GBから65GBに拡張した。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b15633467219304630cd5cec81a6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b15633467219304630cd5cec81a6.png?mw=700" alt="image.png" /></a></p> <p>まずは現在OSが認識しているディスクサイズ。</p> <pre><code class="shell"># fdisk -l /dev/sdb Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors  ←50ギビバイト Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes Disklabel type: gpt Disk identifier: 921F02F5-8639-4525-9738-B75553F5F587 Device Start End Sectors Size Type /dev/sdb1 2048 19531775 19529728 9.3G Linux filesystem  ←9.3ギビバイト /dev/sdb2 19531776 104857566 85325791 40.7G Linux filesystem  ←40.7ギビバイト </code></pre> <p>まだ50ギビバイトしかOSに認識されていないので、拡張した65ギビバイトまで認識されるように再スキャンさせる。</p> <pre><code class="shell"># echo 1&gt;/sys/class/block/sdb/device/rescan   ←sdbの部分は場合による。ブートボリュームの場合はsda </code></pre> <p>再度、確認する。</p> <pre><code class="shell"># fdisk -l /dev/sdb GPT PMBR size mismatch (104857599 != 136314879) will be corrected by write.  ←余白ができた事が記載されている The backup GPT table is not on the end of the device. This problem will be corrected by write. Disk /dev/sdb: 65 GiB, 69793218560 bytes, 136314880 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 1048576 bytes Disklabel type: gpt Disk identifier: 921F02F5-8639-4525-9738-B75553F5F587 Device Start End Sectors Size Type /dev/sdb1 2048 19531775 19529728 9.3G Linux filesystem /dev/sdb2 19531776 104857566 85325791 40.7G Linux filesystem </code></pre> <h3 id="3.1.2 パーティションを再定義"><a href="#3.1.2+%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E5%86%8D%E5%AE%9A%E7%BE%A9">3.1.2 パーティションを再定義</a></h3> <p>拡張させるパーティションは最後尾にいるパーティション。<br /> パーティション拡張させる前にまずは既存のパーティション定義を削除する。</p> <pre><code class="shell"># fdisk -/dev/sdb Command (m for help): p Disk /dev/sdb: 55 GiB, 59055800320 bytes, 115343360 sectors ~ Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 54857599 54855552 26.2G 8e Linux LVM /dev/sdb2 54857728 104857599 49999872 23.9G 8e Linux LVM ~ Command (m for help): d Partition number (1,2, default 2): 2 Command (m for help): p Disk /dev/sdb: 55 GiB, 59055800320 bytes, 115343360 sectors ~ Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 54857599 54855552 26.2G 8e Linux LVM </code></pre> <p>2個目のパーティションが削除され、1個しかパーティションがないことがわかる。<br /> 2個目のパーティションを再定義する。</p> <pre><code class="shell">Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (54857600-115343359, default 54857728): Last sector, +sectors or +size{K,M,G,T,P} (54857728-115343359, default 115343359):  Created a new partition 2 of type 'Linux' and of size 28.9 GiB.  Partition #2 contains a LVM2_member signature. Do you want to remove the signature? [Y]es/[N]o: N Command (m for help): p  Disk /dev/sdb: 55 GiB, 59055800320 bytes, 115343360 sectors Device Boot Start End Sectors Size Id Type  /dev/sdb1 2048 54857599 54855552 26.2G 8e Linux LVM  /dev/sdb2 54857728 115343359 60485632 28.9G 83 Linux Command (m for help): t Partition number (1,2, default 2): Hex code (type L to list all codes): 8e  Changed type of partition 'Linux' to 'Linux LVM'. Command (m for help): p  Disk /dev/sdb: 55 GiB, 59055800320 bytes, 115343360 sectors ~ Device Boot Start End Sectors Size Id Type  /dev/sdb1 2048 54857599 54855552 26.2G 8e Linux LVM  /dev/sdb2 54857728 115343359 60485632 28.9G 8e Linux LVM </code></pre> <p>現在の状態を確認</p> <pre><code class="shell"># df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg02-lv02 24G 203M 24G 1% /mnt/newspace2 /dev/mapper/vg01-lv01 27G 219M 26G 1% /mnt/newspace1 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk tqsda1 8:1 0 100M 0 part /boot/efi tqsda2 8:2 0 1G 0 part /boot mqsda3 8:3 0 45.5G 0 part tqocivolume-root 252:0 0 35.5G 0 lvm / mqocivolume-oled 252:1 0 10G 0 lvm /var/oled sdb 8:16 0 65G 0 disk tqsdb1 8:17 0 9.3G 0 part /mnt/newspace mqsdb2 8:18 0 47.9G 0 part /mnt/newspace2 </code></pre> <p>比べてみると、lsblkでは拡張が認識されているものの、「df -h」の方はまだ認識されていない。<br /> 読み込ませる。</p> <p>ここでリブート</p> <h2 id="3.2 LVM拡張"><a href="#3.2+LVM%E6%8B%A1%E5%BC%B5">3.2 LVM拡張</a></h2> <h3 id="3.2.1 pvresize"><a href="#3.2.1+pvresize">3.2.1 pvresize</a></h3> <p>Physical Volume<br /> まずは確認。</p> <pre><code class="shell"># pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg01 lvm2 a-- 26.15g 0 /dev/sdb2 vg02 lvm2 a-- <23.84g 0 </code></pre> <p>リサイズする。</p> <pre><code class="shell"># pvresize /dev/sdb2 Physical volume "/dev/sdb2" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized </code></pre> <p>5GB拡張が反映されていることを確認。</p> <pre><code class="shell"># pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg01 lvm2 a-- 26.15g 0 /dev/sdb2 vg02 lvm2 a-- <28.84g 5.00g  ←5GB空きが反映されてる。 </code></pre> <h3 id="3.2.2 LVの拡張"><a href="#3.2.2+LV%E3%81%AE%E6%8B%A1%E5%BC%B5">3.2.2 LVの拡張</a></h3> <p>まずは事前確認。</p> <pre><code class="shell"># vgs VG #PV #LV #SN Attr VSize VFree vg01 1 1 0 wz--n- 26.15g 0 vg02 1 1 0 wz--n- <28.84g 5.00g # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-ao---- 26.15g lv02 vg02 -wi-ao---- <23.84g  ←まだ拡張されてない </code></pre> <p>拡張する。</p> <pre><code class="shell"># lvextend -l +100%FREE /dev/vg02/lv02 Size of logical volume vg02/lv02 changed from <23.84 GiB (6103 extents) to <28.84 GiB (7383 extents). Logical volume vg02/lv02 successfully resized. </code></pre> <p>拡張されたことを確認。</p> <pre><code class="shell"># lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-ao---- 26.15g lv02 vg02 -wi-ao---- <28.84g  ←5GB拡張された </code></pre> <h2 id="3.3 ファイルシステムの拡張"><a href="#3.3+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E6%8B%A1%E5%BC%B5">3.3 ファイルシステムの拡張</a></h2> <p>まだこの状態だとマウントポイントは拡張されていない。</p> <pre><code class="shell"># df -hT Filesystem Type Size Used Avail Use% Mounted on ~ /dev/mapper/vg02-lv02 xfs 24G 203M 24G 1% /mnt/newspace2 </code></pre> <p>ファイルシステムを拡張する。この際、マウントポイントを引数にすることに注意する。</p> <pre><code class="shell"># xfs_growfs /mnt/newspace2 meta-data=/dev/mapper/vg02-lv02 isize=512 agcount=4, agsize=1562368 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=6249472, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3051, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 6249472 to 7560192 </code></pre> <p>マウントポイントが拡張されたことを確認。</p> <pre><code class="shell"># df -hT Filesystem Type Size Used Avail Use% Mounted on ~ /dev/mapper/vg02-lv02 xfs 24G 203M 24G 1% /mnt/newspace2 </code></pre> <pre><code class="shell"># xfs_growfs /mnt/newspace2 # df -hT /mnt/newspace2 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/vg02-lv02 xfs 29G 239M 29G 1% /mnt/newspace2  ←拡張された </code></pre> <p>ちなみに、ファイルシステムがext4の場合は</p> <pre><code class="shell"># resize2fs </code></pre> <h1 id="4. ディスク追加"><a href="#4.+%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E8%BF%BD%E5%8A%A0">4. ディスク追加</a></h1> <p>/dev/sdb1と/dev/sdb2と/dev/sdb3のうち、/dev/sdb1と/dev/sdb3を統合する。つまり、/dev/vg01/lv01に/dev/sdb3を追加する。</p> <pre><code class="shell"># lsblk ~ vg01-lv01 253:1 0 26.2G 0 lvm /mnt/newspace1 ~ </code></pre> <p>下記手順で実行。</p> <h2 id="4.1 pv"><a href="#4.1+pv">4.1 pv</a></h2> <pre><code class="shell"># pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg01 lvm2 a-- 26.15g 0 /dev/sdb2 vg02 lvm2 a-- <28.84g 0 # pvcreate /dev/sdb3 Physical volume "/dev/sdb3" successfully created. # pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg01 lvm2 a-- 26.15g 0 /dev/sdb2 vg02 lvm2 a-- <28.84g 0 /dev/sdb3 lvm2 --- 5.00g 5.00g </code></pre> <h2 id="4.2 vg"><a href="#4.2+vg">4.2 vg</a></h2> <pre><code class="shell"># vgs VG #PV #LV #SN Attr VSize VFree vg01 1 1 0 wz--n- 26.15g 0 vg02 1 1 0 wz--n- <28.84g 0 # vgextend vg01 /dev/sdb3 Volume group "vg01" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree vg01 2 1 0 wz--n- <31.15g <5.00g vg02 1 1 0 wz--n- <28.84g 0 </code></pre> <h2 id="4.3 lv"><a href="#4.3+lv">4.3 lv</a></h2> <pre><code class="shell"># lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-ao---- 26.15g lv02 vg02 -wi-ao---- <28.84g # lvextend -l +100%FREE /dev/vg01/lv01 Size of logical volume vg01/lv01 changed from 26.15 GiB (6695 extents) to <31.15 GiB (7974 extents). Logical volume vg01/lv01 successfully resized. # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv01 vg01 -wi-ao---- <31.15g lv02 vg02 -wi-ao---- <28.84g </code></pre> <h2 id="4.4 ファイルシステムの拡張"><a href="#4.4+%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AE%E6%8B%A1%E5%BC%B5">4.4 ファイルシステムの拡張</a></h2> <pre><code class="shell"># df -hT Filesystem Type Size Used Avail Use% Mounted on ~ /dev/mapper/vg01-lv01 xfs 27G 219M 26G 1% /mnt/newspace1 </code></pre> <p>ファイルシステムを拡張する。この際、マウントポイントを引数にすることに注意する。</p> <pre><code class="shell"># xfs_growfs /mnt/newspace1 meta-data=/dev/mapper/vg01-lv01 isize=512 agcount=4, agsize=1713920 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=6855680, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=3347, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 6855680 to 8165376 </code></pre> <p>マウントポイントが拡張されたことを確認。</p> <pre><code class="shell"># df -hT Filesystem Type Size Used Avail Use% Mounted on ~ /dev/mapper/vg01-lv01 xfs 32G 255M 31G 1% /mnt/newspace1 </code></pre> <p>メモ</p> <pre><code class="shell">物理ボリュームとしてラベルづけ # pvcreate /dev/sdb1 /dev/sdb3 WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y Wiping xfs signature on /dev/sdb1. WARNING: xfs signature detected on /dev/sdb3 at offset 0. Wipe it? [y/n]: y Wiping xfs signature on /dev/sdb3. Physical volume "/dev/sdb1" successfully created. Physical volume "/dev/sdb3" successfully created. ボリュームグループ名を「vg01」として作成 # vgcreate vg01 /dev/sdb1 /dev/sdb3 Volume group "vg01" successfully created 論理ボリューム名を「lv01」として作成 # lvcreate -n lv01 -l +100%FREE vg01 Logical volume "lv01" created. ファイルシステム追加 # mkfs -t xfs /dev/vg01/lv01 マウント # mount /dev/vg01/lv01 /mnt/newspace </code></pre> kawai_mizugorou tag:crieit.net,2005:PublicArticle/17717 2021-10-20T03:32:37+09:00 2022-08-15T02:03:36+09:00 https://crieit.net/posts/OCI-AWS OCIやAWS上のサーバの環境構築 <h1 id="1.公開鍵認証方式でssh接続"><a href="#1%EF%BC%8E%E5%85%AC%E9%96%8B%E9%8D%B5%E8%AA%8D%E8%A8%BC%E6%96%B9%E5%BC%8F%E3%81%A7ssh%E6%8E%A5%E7%B6%9A">1.公開鍵認証方式でssh接続</a></h1> <h2 id="1-1.キーの作成(おまけ)"><a href="#1-1%EF%BC%8E%E3%82%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90%28%E3%81%8A%E3%81%BE%E3%81%91%29">1-1.キーの作成(おまけ)</a></h2> <p>Windowsのコマンドプロンプトで,</p> <pre><code>>ssh-keygen -b 4096 </code></pre> <p>(4096は任意鍵長)と打つと,<code>~/.ssh</code>に公開鍵と秘密鍵が作成される.例えばユーザー名がTanakaさんなら.<code>C:\Users\Tanaka\.ssh</code>に作成される.<br /> 秘密鍵のファイル名が<code>id_rsa</code>で,公開鍵が<code>id_rsa.pub</code>となる.</p> <p>以降の話ではこの節はあまり関係ない.</p> <h2 id="1-2.OCIでインスタンス作成"><a href="#1-2%EF%BC%8EOCI%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E4%BD%9C%E6%88%90">1-2.OCIでインスタンス作成</a></h2> <p>sshキーにスポットをあてて話を進める.<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b15633467219304616f061fd5cf3.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b15633467219304616f061fd5cf3.png?mw=700" alt="image.png" /></a></p> <h3 id="1-2-1.キーペアを持っていない場合"><a href="#1-2-1%EF%BC%8E%E3%82%AD%E3%83%BC%E3%83%9A%E3%82%A2%E3%82%92%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%E5%A0%B4%E5%90%88">1-2-1.キーペアを持っていない場合</a></h3> <p>[ SSHキーの追加 ]欄で,[キー・ペアを自動で生成 ]を選択し,<br /> [公開キーの保存]→[秘密キーの保存]をクリックすることでキーペア取得できる.<br /> この2つのファイルは大切に保管しましょう.(今後も使いまわせるので)</p> <p>保存された2つのファイルは,<br /> 公開鍵が<code>~.key.pub</code><br /> 秘密鍵が<code>~.key</code><br /> となっている.</p> <p>この2つのファイルはどこか好きなディレクトリに格納しとこう.<br /> 例:<code>C:\Users\Tanaka\Documents\Oracle</code></p> <p>インスタンスを作成.</p> <h3 id="1-2-2.キーペアを持っている場合"><a href="#1-2-2%EF%BC%8E%E3%82%AD%E3%83%BC%E3%83%9A%E3%82%A2%E3%82%92%E6%8C%81%E3%81%A3%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88">1-2-2.キーペアを持っている場合</a></h3> <p>OCIでインスタンスを作成する際,[sshキーの追加]欄がある.<br /> ここで,[公開キー・ファイル(.pub)のアップロード]を選択し,<br /> 自身の公開鍵のファイル(~.key.pub)をドラッグ&ドロップでアップロード.<br /> インスタンスを作成.</p> <h2 id="1-3.ssh接続"><a href="#1-3%EF%BC%8Essh%E6%8E%A5%E7%B6%9A">1-3.ssh接続</a></h2> <p>sshクライアントを起動してssh接続を試みる.</p> <h3 id="1-3-1.TeraTermの場合"><a href="#1-3-1%EF%BC%8ETeraTerm%E3%81%AE%E5%A0%B4%E5%90%88">1-3-1.TeraTermの場合</a></h3> <p>TeraTermを起動させたら[ ホスト(T) ]にIPアドレスを書いて,<br /> その下の[ TCPポート ]欄に「22」と書く※1.<br /> [ ok ]ボタンを押す.</p> <p>[ ユーザ名 ]に指定されたユーザ名を記入.<br /> OCIのCentOSの初期ユーザ名は「opc」※2.</p> <p>[ 認証方式 ]で,[ RSA/DSA/ECDSA/ED25119鍵を使う]を選択し,<br /> 1-1節で作成した秘密鍵のパスを指定.<br /> 例:</p> <pre><code>C:\Users\Tanaka\Documents\Oracle\~.key </code></pre> <p>これで接続できる.</p> <p>※1:sshのデフォルトのport番号が22.これは後で利用できるport番号内で任意番号に変更可能<br /> ※2:AWSのRHEL8の場合は「ec2-user」</p> <h3 id="1-3-2.PowerShellの場合"><a href="#1-3-2%EF%BC%8EPowerShell%E3%81%AE%E5%A0%B4%E5%90%88">1-3-2.PowerShellの場合</a></h3> <p>これだけ.</p> <pre><code>> ssh -i [秘密鍵のパス] [ユーザ名]@[IPアドレス] </code></pre> <p>以上。</p> <h1 id="2. 環境設定"><a href="#%EF%BC%92.+%E7%92%B0%E5%A2%83%E8%A8%AD%E5%AE%9A">2. 環境設定</a></h1> <h2 id="2-1.パスワード設定"><a href="#2-1%EF%BC%8E%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%A8%AD%E5%AE%9A">2-1.パスワード設定</a></h2> <p>ログインできたら,rootユーザとログインユーザ(今回であればopc)のPassを任意に設定しとく.<br /> まずはroot</p> <pre><code>$sudo passwd root (パスワード聞かれるので適当に打つ) (切り替わるか確かめる) $ su - </code></pre> <p>次は別のユーザ</p> <pre><code>#passwd opc </code></pre> <h2 id="2-2.ssh接続のconfファイル書き換え"><a href="#2-2%EF%BC%8Essh%E6%8E%A5%E7%B6%9A%E3%81%AEconf%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88">2-2.ssh接続のconfファイル書き換え</a></h2> <p>セキュリティの観点から,ssh接続のconfigファイルを書き換える.</p> <pre><code>$ sudo vi /etc/ssh/sshd_config </code></pre> <p>とやるといろいろ書き換えられる.<br /> 英語読めば何の設定なのか想像つくと思うのでてきとーにやっとく.</p> <pre><code>Port 11326 (←port番号を22から変更) PermitRootLogin no (←Rootユーザでログインできないようにする) PubkeyAuthentication yes (←公開鍵認証方式) PasswordAuthentication no (←パスワード認証を無効化) などなど </code></pre> <p>これではまだ反映されないので,reloadしてメモリの設定を読み込ませる.<br /> (restartじゃないよ)</p> <pre><code>$ sudo systemctl reload sshd.service </code></pre> <h2 id="2-3.タイムゾーンを変更"><a href="#2-3%EF%BC%8E%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%BE%E3%83%BC%E3%83%B3%E3%82%92%E5%A4%89%E6%9B%B4">2-3.タイムゾーンを変更</a></h2> <p>タイムゾーンを東京に変更しとく.</p> <pre><code>$ sudo timedatectl set-timezone Asia/Tokyo </code></pre> <h2 id="2-4.変更確かめ"><a href="#2-4%EF%BC%8E%E5%A4%89%E6%9B%B4%E7%A2%BA%E3%81%8B%E3%82%81">2-4.変更確かめ</a></h2> <p>Windows端末のPowerShellでPortして疎通確認.</p> <pre><code>> Test-NetConnection [ IPアドレス ] -Port [ Port番号 ] </code></pre> <h1 id="3.yum"><a href="#3%EF%BC%8Eyum">3.yum</a></h1> <p>参考:https://access.redhat.com/ja/articles/3221791</p> <p>/etc/yum.confと/etc/yum.repos.dの二つの領域に分かれる。<br /> ※rhel8からはyumは廃止されdnfに置き換わっている。使い方はほぼ同じ。<br /> 実際、/etc/をみてみると、</p> <pre><code>[root@publicpc1 etc]# ll|grep yum drwxr-xr-x. 2 root root 57 Mar 24 12:32 yum lrwxrwxrwx. 1 root root 12 Nov 12 00:18 yum.conf -> dnf/dnf.conf drwxr-xr-x. 2 root root 217 Mar 24 12:39 yum.repos.d [root@publicpc1 yum]# pwd /etc/yum [root@publicpc1 yum]# ll total 0 lrwxrwxrwx. 1 root root 14 Nov 12 00:18 pluginconf.d -> ../dnf/plugins lrwxrwxrwx. 1 root root 18 Nov 12 00:18 protected.d -> ../dnf/protected.d lrwxrwxrwx. 1 root root 11 Nov 12 00:18 vars -> ../dnf/vars </code></pre> <p>となっている。</p> <h2 id="3-1. yum.conf(dnf.conf)"><a href="#3-1.+yum.conf%28dnf.conf%29">3-1. yum.conf(dnf.conf)</a></h2> <pre><code>[root@publicpc1 etc]# cat yum.conf [main] gpgcheck=1 installonly_limit=3 clean_requirements_on_remove=True best=True skip_if_unavailable=False </code></pre> <p>[main]はセクション名で、ここに記載されているのはyumのグローバルな設定。</p> <pre><code>gpgcheck </code></pre> <p>は署名チェック。1が有効で、0が無効。</p> <h2 id="3-2. yum.repos.d"><a href="#3-2.+yum.repos.d">3-2. yum.repos.d</a></h2> <pre><code>[root@publicpc1 yum.repos.d]# ll total 32 -rw-r--r--. 1 root root 495 May 5 2021 ksplice-ol8.repo -rw-r--r--. 1 root root 759 Apr 13 2021 mysql-ol8.repo -rw-r--r--. 1 root root 253 Mar 20 2021 oci-included-ol8.repo -rw-r--r--. 1 root root 252 Mar 24 12:39 oracle-epel-ol8.repo -rw-r--r--. 1 root root 694 Mar 24 12:39 oraclelinux-developer-ol8.repo -rw-r--r--. 1 root root 2740 Mar 24 12:39 oracle-linux-ol8.repo -rw-r--r--. 1 root root 470 Mar 11 01:09 uek-ol8.repo -rw-r--r--. 1 root root 243 Mar 11 01:09 virt-ol8.repo </code></pre> <p>oracle-linux-ol8.repoの中身を見てみると、ダウンロードする際に参照するURLが記載されている。<br /> ここが間違っていると適切にインストールできなくなる。<br /> ただ、ここを編集することはなさそう。</p> <p>もし社内にあるレポジトリサーバを利用したい場合、対応は2つある。<br /> 1つは、 yum.repos.d配下に~.repoファイルを追加する。<br /> 2つ目は、<code>yum -y install ~</code>で追加する方法。</p> <p>1つ目の場合</p> <pre><code># vim /etc/ yum.repos.d/test.repo [test] name=test baseurl=http://xxx.xxx/xxx.xxx/xxx gpgcheck=0 </code></pre> <p>など。</p> <h1 id="4.踏み台サーバの準備"><a href="#4%EF%BC%8E%E8%B8%8F%E3%81%BF%E5%8F%B0%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E6%BA%96%E5%82%99">4.踏み台サーバの準備</a></h1> <h2 id="4-1.キーペアの準備"><a href="#4-1%EF%BC%8E%E3%82%AD%E3%83%BC%E3%83%9A%E3%82%A2%E3%81%AE%E6%BA%96%E5%82%99">4-1.キーペアの準備</a></h2> <h2 id="4-2.scpでファイル転送"><a href="#4-2%EF%BC%8Escp%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E8%BB%A2%E9%80%81">4-2.scpでファイル転送</a></h2> <h2 id="4-3.公開鍵認証の読み込みパス指定"><a href="#4-3%EF%BC%8E%E5%85%AC%E9%96%8B%E9%8D%B5%E8%AA%8D%E8%A8%BC%E3%81%AE%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF%E3%83%91%E3%82%B9%E6%8C%87%E5%AE%9A">4-3.公開鍵認証の読み込みパス指定</a></h2> <p><a href="https://crieit.net/posts/OCI-CentOS">https://crieit.net/posts/OCI-CentOS</a></p> <h1 id="5. Port ForwardingでRDP接続"><a href="#5.+Port+Forwarding%E3%81%A7RDP%E6%8E%A5%E7%B6%9A">5. Port ForwardingでRDP接続</a></h1> <h2 id="5.1 sshトンネリング"><a href="#5.1+ssh%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AA%E3%83%B3%E3%82%B0">5.1 sshトンネリング</a></h2> <h1 id="6.Pythonインストール"><a href="#6%EF%BC%8EPython%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">6.Pythonインストール</a></h1> <h1 id="7.OCI CLIの利用方法"><a href="#7%EF%BC%8EOCI+CLI%E3%81%AE%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95">7.OCI CLIの利用方法</a></h1> <p>公式ドキュメントを参考に進めていくとインストールできる。</p> <h2 id="7.1 Oracle Linux8でオンラインインストール"><a href="#7.1+Oracle+Linux8%E3%81%A7%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">7.1 Oracle Linux8でオンラインインストール</a></h2> <p>参考<br /> OCIのクイックインストール:https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/cliinstall.htm#InstallingCLI__linux_and_unix</p> <h3 id="7.1.1 dnfでインストール"><a href="#7.1.1+dnf%E3%81%A7%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">7.1.1 dnfでインストール</a></h3> <p>dnfを使用してCLIをインストール</p> <pre><code>$ sudo dnf -y install oraclelinux-developer-release-el8 We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for opc: Ksplice for Oracle Linux 8 (x86_64) 16 MB/s | 1.2 MB 00:00 MySQL 8.0 for Oracle Linux 8 (x86_64) 9.1 MB/s | 2.4 MB 00:00 MySQL 8.0 Tools Community for Oracle Linux 8 (x86_64) 5.2 MB/s | 308 kB 00:00 MySQL 8.0 Connectors Community for Oracle Linux 8 (x86_64) 214 kB/s | 23 kB 00:00 Oracle Software for OCI users on Oracle Linux 8 (x86_64) 38 MB/s | 46 MB 00:01 Oracle Linux 8 BaseOS Latest (x86_64) 62 MB/s | 49 MB 00:00 Oracle Linux 8 Application Stream (x86_64) 48 MB/s | 37 MB 00:00 Oracle Linux 8 Addons (x86_64) 21 MB/s | 4.9 MB 00:00 Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linu 63 MB/s | 53 MB 00:00 Package oraclelinux-developer-release-el8-1.0-7.el8.x86_64 is already installed. Dependencies resolved. Nothing to do. Complete! </code></pre> <p>続いて、cliをインストール</p> <pre><code>$ sudo dnf install python36-oci-cli Last metadata expiration check: 0:00:34 ago on Sat 13 Aug 2022 03:23:12 PM GMT. Dependencies resolved. =============================================================================================== Package Arch Version Repository Size =============================================================================================== Installing: python36-oci-cli noarch 3.14.0-1.el8 ol8_oci_included 14 M Upgrading: python36-oci-sdk x86_64 2.78.0-1.el8 ol8_oci_included 23 M Installing dependencies: python3-arrow noarch 1.1.1-1.el8 ol8_oci_included 119 k python3-jmespath noarch 0.10.0-1.el8 ol8_oci_included 48 k python3-prompt-toolkit noarch 3.0.29-1.0.2.el8 ol8_oci_included 669 k python3-terminaltables noarch 3.1.0-1.0.1.el8 ol8_oci_included 31 k python3-typing-extensions noarch 3.7.4.2-1.el8 ol8_oci_included 47 k python3-wcwidth noarch 0.2.5-3.el8 ol8_oci_included 48 k Transaction Summary =============================================================================================== Install 7 Packages Upgrade 1 Package Total download size: 38 M Is this ok [y/N]: y Downloading Packages: (1/8): python3-jmespath-0.10.0-1.el8.noarch.rpm 520 kB/s | 48 kB 00:00 (2/8): python3-prompt-toolkit-3.0.29-1.0.2.el8.noarch.rpm 4.2 MB/s | 669 kB 00:00 (3/8): python3-arrow-1.1.1-1.el8.noarch.rpm 740 kB/s | 119 kB 00:00 (4/8): python3-terminaltables-3.1.0-1.0.1.el8.noarch.rpm 298 kB/s | 31 kB 00:00 (5/8): python3-typing-extensions-3.7.4.2-1.el8.noarch.rpm 739 kB/s | 47 kB 00:00 (6/8): python3-wcwidth-0.2.5-3.el8.noarch.rpm 711 kB/s | 48 kB 00:00 (7/8): python36-oci-cli-3.14.0-1.el8.noarch.rpm 46 MB/s | 14 MB 00:00 (8/8): python36-oci-sdk-2.78.0-1.el8.x86_64.rpm 37 MB/s | 23 MB 00:00 ----------------------------------------------------------------------------------------------- Total 45 MB/s | 38 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Upgrading : python36-oci-sdk-2.78.0-1.el8.x86_64 1/9 Installing : python3-wcwidth-0.2.5-3.el8.noarch 2/9 Installing : python3-prompt-toolkit-3.0.29-1.0.2.el8.noarch 3/9 Installing : python3-typing-extensions-3.7.4.2-1.el8.noarch 4/9 Installing : python3-arrow-1.1.1-1.el8.noarch 5/9 Installing : python3-terminaltables-3.1.0-1.0.1.el8.noarch 6/9 Installing : python3-jmespath-0.10.0-1.el8.noarch 7/9 Installing : python36-oci-cli-3.14.0-1.el8.noarch 8/9 Cleanup : python36-oci-sdk-2.75.1-1.el8.x86_64 9/9 Running scriptlet: python36-oci-sdk-2.75.1-1.el8.x86_64 9/9 Verifying : python3-arrow-1.1.1-1.el8.noarch 1/9 Verifying : python3-jmespath-0.10.0-1.el8.noarch 2/9 Verifying : python3-prompt-toolkit-3.0.29-1.0.2.el8.noarch 3/9 Verifying : python3-terminaltables-3.1.0-1.0.1.el8.noarch 4/9 Verifying : python3-typing-extensions-3.7.4.2-1.el8.noarch 5/9 Verifying : python3-wcwidth-0.2.5-3.el8.noarch 6/9 Verifying : python36-oci-cli-3.14.0-1.el8.noarch 7/9 Verifying : python36-oci-sdk-2.78.0-1.el8.x86_64 8/9 Verifying : python36-oci-sdk-2.75.1-1.el8.x86_64 9/9 Upgraded: python36-oci-sdk-2.78.0-1.el8.x86_64 Installed: python3-arrow-1.1.1-1.el8.noarch python3-jmespath-0.10.0-1.el8.noarch python3-prompt-toolkit-3.0.29-1.0.2.el8.noarch python3-terminaltables-3.1.0-1.0.1.el8.noarch python3-typing-extensions-3.7.4.2-1.el8.noarch python3-wcwidth-0.2.5-3.el8.noarch python36-oci-cli-3.14.0-1.el8.noarch Complete! </code></pre> <p>インストール完了したらバージョン確認。</p> <pre><code>$ oci --version 3.14.0 </code></pre> <h3 id="7.1.2 構成ファイルの設定"><a href="#7.1.2+%E6%A7%8B%E6%88%90%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E8%A8%AD%E5%AE%9A">7.1.2 構成ファイルの設定</a></h3> <pre><code>$ oci setup config This command provides a walkthrough of creating a valid CLI config file. The following links explain where to find the information required by this script: User API Signing Key, OCID and Tenancy OCID: https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#Other Region: https://docs.cloud.oracle.com/Content/General/Concepts/regions.htm General config documentation: https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm Enter a location for your config [/home/opc/.oci/config]:特に指定しなくてok Enter a user OCID: OCIコンソールよりユーザのOCIDをコピペ Enter a tenancy OCID: OCIコンソールよりコピペ Enter a region by index or name(e.g. 1: af-johannesburg-1, 2: ap-chiyoda-1, 3: ap-chuncheon-1, 4: ap-dcc-canberra-1, 5: ap-hyderabad-1, 6: ap-ibaraki-1, 7: ap-melbourne-1, 8: ap-mumbai-1, 9: ap-osaka-1, 10: ap-seoul-1, 11: ap-singapore-1, 12: ap-sydney-1, 13: ap-tokyo-1, 14: ca-montreal-1, 15: ca-toronto-1, 16: eu-amsterdam-1, 17: eu-frankfurt-1, 18: eu-marseille-1, 19: eu-milan-1, 20: eu-paris-1, 21: eu-stockholm-1, 22: eu-zurich-1, 23: il-jerusalem-1, 24: me-abudhabi-1, 25: me-dcc-muscat-1, 26: me-dubai-1, 27: me-jeddah-1, 28: mx-queretaro-1, 29: sa-santiago-1, 30: sa-saopaulo-1, 31: sa-vinhedo-1, 32: uk-cardiff-1, 33: uk-gov-cardiff-1, 34: uk-gov-london-1, 35: uk-london-1, 36: us-ashburn-1, 37: us-gov-ashburn-1, 38: us-gov-chicago-1, 39: us-gov-phoenix-1, 40: us-langley-1, 41: us-luke-1, 42: us-phoenix-1, 43: us-sanjose-1): 13(OCIコンソールをブラウザで開いてURLを見るとわかる Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y Enter a directory for your keys to be created [/home/opc/.oci]: Enter a name for your key [oci_api_key]: Public key written to: /home/opc/.oci/oci_api_key_public.pem Enter a passphrase for your private key (empty for no passphrase): Private key written to: /home/opc/.oci/oci_api_key.pem Fingerprint: ~なんか記載されている~ Config written to /home/opc/.oci/config </code></pre> <p>完了すると、~/.oci配下にoci_api_key_public.pemが作成されているはず。このキーをOCIコンソールで<br /> アイデンティティ>ユーザー>ユーザーの詳細<br /> に行くと、画面サブに「APIキー」があるのでクリックし、oci_api_key_public.pemの中身を張り付ける。</p> <p>試しに実行してみる。</p> <pre><code>$ oci compute instance list --all Usage: oci compute instance list [OPTIONS] Error: Missing option(s) --compartment-id. </code></pre> <p>コンパートメントIDをオプションで追記しろとのこと。</p> <pre><code>$ oci compute instance list --compartment-id <OCID貼り付け> いっぱい表示された </code></pre> <p>ただ、毎回コンパートメントIDを打ち込むのは面倒なので、oci_cli_rcファイルに書き込むことでコマンド入力時にオプション付ける必要がないようにする。</p> <pre><code>$ vi ~/.oci/oci_cli_rc [DEFAULT] compartment-id=<コンパートメントID> </code></pre> <h3 id="7.1.3 プライベートサブネットからOCI CLIを実行する方法"><a href="#7.1.3+%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%82%B5%E3%83%96%E3%83%8D%E3%83%83%E3%83%88%E3%81%8B%E3%82%89OCI+CLI%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95">7.1.3 プライベートサブネットからOCI CLIを実行する方法</a></h3> <p>OCI CLIでコマンドを実行するとAPIエンドポイントと通信を行う。そのため、プライベートサブネットからAPIを発行してエンドポイントへ到達させるにはいくつかの設定が必要になる。方法は以下3つ。<br /> ①NATゲートウェイを利用してインターネットに出ていく。②サービスゲートウェイを使用して、OCI環境内に閉じた通信を行う。③プロキシを使用してインターネットへ出ていくルートを作る。</p> <p>なずは何も設定しない状態でプライベートサブネットからコマンドを実行してみる。その際、APIの実行履歴を出力させるためにデバックオプション--debug(または-d)をつけて実行する。</p> <pre><code>$ oci compute instance list --all -d ~省略~ DEBUG:oci.base_client.140243454499864:Endpoint: https://iaas.ap-tokyo-1.oraclecloud.com/20160918 INFO:oci.base_client.140243454499864: 2022-08-14 15:05:12.072064: Request: GET https://iaas.ap-tokyo-1.oraclecloud.com/20160918/instances INFO:oci.base_client.140243454499864: 2022-08-14 15:05:23.487363: Request: GET https://iaas.ap-tokyo-1.oraclecloud.com/20160918/instances ~つづく~ </code></pre> <p>となり、エンドポイントへの接続を所定の回数試行して失敗すると、以下のようなエラーが返ってくる。</p> <pre><code>oci.exceptions.ConnectTimeout: (MaxRetryError("OCIConnectionPool(host='iaas.ap-tokyo-1.oraclecloud.com', port=443): Max retries exceeded with url: /20160918/instances?compartmentId=ocid1.compartment.oc1..aaaaaaaantybfae5pn7h77jmgcwgzg2hm27gv6whsiwhmo54ycefc3sxyiwa (Caused by ConnectTimeoutError(<oci.base_client.OCIConnection object at 0x7f8cf8e2f2b0>, 'Connection to iaas.ap-tokyo-1.oraclecloud.com timed out. (connect timeout=10.0)'))",), 'Request Endpoint: GET https://iaas.ap-tokyo-1.oraclecloud.com/20160918/instances See https://docs.oracle.com/en-us/iaas/Content/API/Concepts/sdk_troubleshooting.htm for help troubleshooting this error, or contact support and provide this full error message.') </code></pre> <p>実際、エンドポイント(iaas.ap-tokyo-1.oraclecloud.com)にpingを打っても返ってこない。</p> <h4 id="7.1.3.1 NATゲートウェイの利用"><a href="#7.1.3.1+NAT%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4%E3%81%AE%E5%88%A9%E7%94%A8">7.1.3.1 NATゲートウェイの利用</a></h4> <p>NATゲートウェイを作成して、プライベートサブネットのルート表に追加させる。</p> <p>まずは、<br /> ネットワーキング>仮想クラウド・ネットワーク>仮想クラウド・ネットワークの詳細>NATゲートウェイ<br /> から「NATゲートウェイの作成」を行う。作成したNATゲートウェイをルート表のルート・ルールに追加する。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462f9118f303fa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462f9118f303fa.png?mw=700" alt="image.png" /></a></p> <p>追加できたら、まずはエンドポイント(iaas.ap-tokyo-1.oraclecloud.com)にpingを打つ。きっと返ってくるはずだ。<br /> エンドポイントへの疎通が確認できたら、OCIコマンドを実行してみよう。</p> <pre><code>$ oci compute instance list --all -d </code></pre> <p>インスタンス情報が出力されたと思う。</p> <h4 id="7.1.3.2 サービスゲートウェイの利用"><a href="#7.1.3.2+%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%B2%E3%83%BC%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A4%E3%81%AE%E5%88%A9%E7%94%A8">7.1.3.2 サービスゲートウェイの利用</a></h4> <p>社内ルールで、むやみにインターネットに出ていける設定をしてはいけない場合もあるはず。そういった場合には、OCIのVCN内に閉じた環境でエンドポイントへの通信できるサービスゲートウェイを利用するといい。<br /> ネットワーキング>仮想クラウド・ネットワーク>仮想クラウド・ネットワークの詳細>サービス・ゲートウェイ<br /> からサービスゲートウェイを作成する。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462f914cd84d54.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462f914cd84d54.png?mw=700" alt="image.png" /></a></p> <p>作成したら、さきほどと同じようにプライベートサブネットのルート表のルート・ルールに追加する。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462f9151e5f6a7.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462f9151e5f6a7.png?mw=700" alt="image.png" /></a></p> <p>追加できたら、まずはエンドポイント(iaas.ap-tokyo-1.oraclecloud.com)にpingを打つ。きっと返ってくるはずだ。<br /> エンドポイントへの疎通が確認できたら、OCIコマンドを実行してみよう。</p> <pre><code>$ oci compute instance list --all -d </code></pre> <p>インスタンス情報が出力されたと思う。</p> <h4 id="7.1.3.3 プロキシを使用してインターネット経由のルーティング"><a href="#7.1.3.3+%E3%83%97%E3%83%AD%E3%82%AD%E3%82%B7%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E7%B5%8C%E7%94%B1%E3%81%AE%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">7.1.3.3 プロキシを使用してインターネット経由のルーティング</a></h4> <p>https通信を行う際にプロキシ経由するように設定をするだけでよい。</p> <pre><code>$ export HTTPS_PROXY=http://10.1.1.45:3128 </code></pre> <p>設定した後はOCI CLIコマンドを実行すると成功するはずだ。</p> <h3 id="7.1.4 インスタンスプリンシパルの設定"><a href="#7.1.4+%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B7%E3%83%91%E3%83%AB%E3%81%AE%E8%A8%AD%E5%AE%9A">7.1.4 インスタンスプリンシパルの設定</a></h3> <h2 id="7.2 インスタンスプリンシパルの設定"><a href="#7.2+%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%83%97%E3%83%AA%E3%83%B3%E3%82%B7%E3%83%91%E3%83%AB%E3%81%AE%E8%A8%AD%E5%AE%9A">7.2 インスタンスプリンシパルの設定</a></h2> <p>さきほどまではAPIを用いてユーザ認証を実行してきた。それとは別に、インスタンスに対して実行権限を付与させる方法がある。それがインスタンスプリンシパル。プリンシパルは操作の実行主体を指す。</p> <h3 id="7.2.1 別ユーザで実行する"><a href="#7.2.1+%E5%88%A5%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B">7.2.1 別ユーザで実行する</a></h3> <h2 id="7.3 仮想環境の作成"><a href="#7.3+%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%81%AE%E4%BD%9C%E6%88%90">7.3 仮想環境の作成</a></h2> <p>システム全体にCLIをインストールするのは非推奨。</p> <h3 id="7.3.1 仮想環境を構成するディレクトリ作成"><a href="#7.3.1+%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E6%88%90%E3%81%99%E3%82%8B%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E4%BD%9C%E6%88%90">7.3.1 仮想環境を構成するディレクトリ作成</a></h3> <p>仮想環境を構成するディレクトリを作成する。<br /> このディレクトリは、仮想環境をアクティブ化する際に打つパスになるので<br /> よく考えてディレクトリ名はつけるように。</p> <pre><code>[root@publicpc oci]# pwd /opt/oci </code></pre> <h3 id="7.3.2 仮想環境作成"><a href="#7.3.2+%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E4%BD%9C%E6%88%90">7.3.2 仮想環境作成</a></h3> <p>まずはPythonのバージョンを確認する。</p> <pre><code>[opc@publicpc ~]$ python --version Python 3.6.8 </code></pre> <p>バージョンに応じた仮想環境作成のコマンドを打つ。</p> <pre><code>python<Pythonのバージョン> -m venv <仮想環境名> [root@publicpc oci]# python3.6 -m venv venv1 </code></pre> <p>/opt/oci配下にvenv1という仮想環境が作成される。</p> <h3 id="7.3.3 仮想環境をアクティブ化"><a href="#7.3.3+%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83%E3%82%92%E3%82%A2%E3%82%AF%E3%83%86%E3%82%A3%E3%83%96%E5%8C%96">7.3.3 仮想環境をアクティブ化</a></h3> <p>OCI CLIのコマンドを打つときは、仮想環境をアクティブ化したうえで実行させる。<br /> アクティブ化させるコマンドは以下の通り。</p> <pre><code>[root@publicpc oci]# source /opt/oci/venv1/bin/activate (venv1) [root@publicpc oci]# </code></pre> <p>ちなみに、非アクティブ化は以下でできる。</p> <pre><code>(venv1) [root@publicpc oci]# deactivate [root@publicpc oci]# </code></pre> <h2 id="7.4 OCI-CLIのオフラインインストール"><a href="#7.4+OCI-CLI%E3%81%AE%E3%82%AA%E3%83%95%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">7.4 OCI-CLIのオフラインインストール</a></h2> <p>会社の社内規則などによってLinuxサーバがインターネット接続できない場合、自分がWindows端末にインストールファイルをダウンロードし、<br /> そのファイルをLinuxサーバに配置して読み込ませることでCLIの実行環境を準備することができる。</p> <p>Github(https://github.com/oracle/oci-cli/releases)から、oci-cli.zipをローカルにダウンロード。<br /> oci-cli.zipを作Linuxサーバに配置し解凍する。</p> <h1 id="8.Ansibleのインストール"><a href="#8%EF%BC%8EAnsible%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">8.Ansibleのインストール</a></h1> <h1 id="9.BlockVolumeのパーティション切りとマウント"><a href="#9%EF%BC%8EBlockVolume%E3%81%AE%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E5%88%87%E3%82%8A%E3%81%A8%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88">9.BlockVolumeのパーティション切りとマウント</a></h1> <h1 id="10.コンテナ"><a href="#10%EF%BC%8E%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A">10.コンテナ</a></h1> kawai_mizugorou