2022-05-04に更新

OCIやAWS上のサーバの環境構築

1.公開鍵認証方式でssh接続

1-1.キーの作成(おまけ)

Windowsのコマンドプロンプトで,

>ssh-keygen -b 4096

(4096は任意鍵長)と打つと,~/.sshに公開鍵と秘密鍵が作成される.例えばユーザー名がTanakaさんなら.C:\Users\Tanaka\.sshに作成される.
秘密鍵のファイル名がid_rsaで,公開鍵がid_rsa.pubとなる.

以降の話ではこの節はあまり関係ない.

1-2.OCIでインスタンス作成

sshキーにスポットをあてて話を進める.
image.png

1-2-1.キーペアを持っていない場合

[ SSHキーの追加 ]欄で,[キー・ペアを自動で生成 ]を選択し,
[公開キーの保存]→[秘密キーの保存]をクリックすることでキーペア取得できる.
この2つのファイルは大切に保管しましょう.(今後も使いまわせるので)

保存された2つのファイルは,
公開鍵が~.key.pub
秘密鍵が~.key
となっている.

この2つのファイルはどこか好きなディレクトリに格納しとこう.
例:C:\Users\Tanaka\Documents\Oracle

インスタンスを作成.

1-2-2.キーペアを持っている場合

OCIでインスタンスを作成する際,[sshキーの追加]欄がある.
ここで,[公開キー・ファイル(.pub)のアップロード]を選択し,
自身の公開鍵のファイル(~.key.pub)をドラッグ&ドロップでアップロード.
インスタンスを作成.

1-3.ssh接続

sshクライアントを起動してssh接続を試みる.

1-3-1.TeraTermの場合

TeraTermを起動させたら[ ホスト(T) ]にIPアドレスを書いて,
その下の[ TCPポート ]欄に22と書く※1.
[ ok ]ボタンを押す.

[ ユーザ名 ]に指定されたユーザ名を記入.
OCIのCentOSの初期ユーザ名はopc※2.

[ 認証方式 ]で,[ RSA/DSA/ECDSA/ED25119鍵を使う]を選択し,
1-1節で作成した秘密鍵のパスを指定.
例:
C:\Users\Tanaka\Documents\Oracle\~.key
これで接続できる.

※1:sshのデフォルトのport番号が22.これは後で利用できるport番号内で任意番号に変更可能
※2:AWSのRHEL8の場合はec2-user

1-3-2.PowerShellの場合

これだけ.

> ssh -i [秘密鍵のパス] [ユーザ名]@[IPアドレス]

2. 環境設定

2-1.パスワード設定

ログインできたら,rootユーザとログインユーザ(今回であればopc)のPassを任意に設定しとく.
まずはroot

$sudo passwd root
(パスワード聞かれるので適当に打つ)
(切り替わるか確かめる)
$ su -

次は別のユーザ

#passwd opc

2-2.ssh接続のconfファイル書き換え

セキュリティの観点から,ssh接続のconfigファイルを書き換える.

$ sudo vi /etc/ssh/sshd_config

とやるといろいろ書き換えられる.
英語読めば何の設定なのか想像つくと思うのでてきとーにやっとく.

Port 11326  (←port番号を22から変更)
PermitRootLogin no (←Rootユーザでログインできないようにする)
PubkeyAuthentication yes  (←公開鍵認証方式)
PasswordAuthentication no (←パスワード認証を無効化)
などなど

これではまだ反映されないので,reloadしてメモリの設定を読み込ませる.
(restartじゃないよ)

$ sudo systemctl reload sshd.service

2-3.タイムゾーンを変更

タイムゾーンを東京に変更しとく.

$ sudo timedatectl set-timezone Asia/Tokyo

2-4.変更確かめ

Windows端末のPowerShellでPortして疎通確認.

> Test-NetConnection [ IPアドレス ] -Port [ Port番号 ]

3.yum

参考:https://access.redhat.com/ja/articles/3221791

/etc/yum.conf/etc/yum.repos.dの二つの領域に分かれる。
※rhel8からはyumは廃止されdnfに置き換わっている。使い方はほぼ同じ。
実際、```/etc/をみてみると、

[[email protected] 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

[[email protected] yum]# pwd
/etc/yum
[[email protected] 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

となっている。

3-1. yum.conf(dnf.conf)

[[email protected] etc]# cat yum.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False

[main]はセクション名で、ここに記載されているのはyumのグローバルな設定。
gpgcheckは署名チェック。1が有効で、0が無効。

3-2. yum.repos.d

[[email protected] 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

oracle-linux-ol8.repoの中身を見てみると、ダウンロードする際に参照するURLが記載されている。
ここが間違っていると適切にインストールできなくなる。
ただ、ここを編集することはなさそう。

もし社内にあるレポジトリサーバを利用したい場合、対応は2つある。
1つは、 yum.repos.d配下に~.repoファイルを追加する。
2つ目は、yum -y install ~で追加する方法。

1つ目の場合

# vim /etc/ yum.repos.d/test.repo
[test]
name=test
baseurl=http://xxx.xxx/xxx.xxx/xxx
gpgcheck=0

など。

4.踏み台サーバの準備

4-1.キーペアの準備

4-2.scpでファイル転送

4-3.公開鍵認証の読み込みパス指定

https://crieit.net/posts/OCI-CentOS

5. Port ForwardingでRDP接続

5.1 sshトンネリング

6.Pythonインストール

7.OCI CLIのオフラインインストール

公式ドキュメントを参考に進めていくとインストールできる。

7.1 仮想環境の作成

システム全体にCLIをインストールするのは非推奨。

7.1.1 仮想環境を構成するディレクトリ作成

仮想環境を構成するディレクトリを作成する。
このディレクトリは、仮想環境をアクティブ化する際に打つパスになるので
よく考えてディレクトリ名はつけるように。

[[email protected] oci]# pwd
/opt/oci

7.1.2 仮想環境作成

まずはPythonのバージョンを確認する。

[[email protected] ~]$ python --version
Python 3.6.8

バージョンに応じた仮想環境作成のコマンドを打つ。

python -m venv 
[[email protected] oci]# python3.6 -m venv venv1

/opt/oci配下にvenv1という仮想環境が作成される。

7.1.3 仮想環境をアクティブ化

OCI CLIのコマンドを打つときは、仮想環境をアクティブ化したうえで実行させる。
アクティブ化させるコマンドは以下の通り。

[[email protected] oci]# source /opt/oci/venv1/bin/activate
(venv1) [[email protected] oci]#

ちなみに、非アクティブ化は以下でできる。

(venv1) [[email protected] oci]# deactivate
[[email protected] oci]#

7.2 OCI-CLIのインストール

会社の社内規則などによってLinuxサーバがインターネット接続できない場合、自分がWindows端末にインストールファイルをダウンロードし、
そのファイルをLinuxサーバに配置して読み込ませることでCLIの実行環境を準備することができる。

Github(https://github.com/oracle/oci-cli/releases)から、oci-cli.zipをローカルにダウンロード。
oci-cli.zipを作Linuxサーバに配置し解凍する。

8.Ansibleのインストール

9.BlockVolumeのパーティション切りとマウント

10.コンテナ

ツイッターでシェア
みんなに共有、忘れないようにメモ

kawai_mizugorou

社会人1年目.自分用のメモとして使ってます.

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント