Skip to content

Linux

Amazon Linux2 初期化用シェルスクリプト

しばしばテスト用の Amazon Linux2 を構築するのですが、自分なりの初期設定をスクリプト化してみました。「初期設定を手間なくすませる」方法は、他に以下が考えられると思います。

  1. Ansible で初期設定用の Playbook を作成する
  2. 初期設定を済ませた AMI を作成しておく
  3. cloud-init で初期設定する

Ansible は手軽だし、エージェントも不要なので「良い手段」のひとつだと思います。 大量にテスト用 Linux を用意するのであれば AMI 化するのもひとつの方法だと思いますが、そこまで頻度が高いわけでは無いのであれば、毎回 AWS が提供する最新ベースイメージを Ansible やスクリプト等で設定しても良いと思います。 cloud-init も手軽な方法のひとつですが、「cloud-init が使えない環境には応用し辛い」という点はデメリットだと思います。

AmazonLinux2 へ Zabbix Server 4.0.14 をインストールする

Amazon Linux2 に Zabbix 4.0 TLS をインストールする手順をメモしておきます。 公式サイトのダウンロードページから Zabbix をインストールしたい環境を選択すると、その環境に合わせたインストール手順もガイドされます。 基本的にはこのガイドの手順に従うだけでインストールは完了します。 余談ですが、Zabbix 4.0LTS では Web サーバとして Apache しか選択出来ませんが、4.4 を選択すると Apache と Nginx が選択出来ました。 今回は「Zabbix 4.0 LTS + CentOS7 + MySQL + Apache」構成としました (Amazon Linux2 ベースなので、OS には CentOS7 を選択しました)。

file

CentOS8 に caddy2 (beta6) をインストールする

Caddy はプラグインで拡張可能な高機能 Web サーバです。 但し、公式サイトからダウンロード出来るバイナリをそのまま使う場合は商用ライセンスの購入が必要なんだそうです。 Caddy は現在、バージョン 2 系が開発中だそうですが、今回はバージョン 2 をインストールしてみます。 ただ、現状で Caddy2 は開発中の為、ドキュメントが少なく、またバージョン 1 から大幅に設定方法も変更されている為、安定して使いたい方にはお勧め出来ないかも知れません…

CentOS8 に Go 1.13.3 をインストールする

CentOS8 標準リポジトリ上の Go は 1.11.6 と古いです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# dnf info golang
Last metadata expiration check: 0:40:22 ago on Sun Oct 27 20:00:43 2019.
Available Packages
Name         : golang
Version      : 1.11.6
Release      : 1.module_el8.0.0+192+8b12aa21
Arch         : x86_64
Size         : 637 k
Source       : golang-1.11.6-1.module_el8.0.0+192+8b12aa21.src.rpm
Repo         : AppStream
Summary      : The Go Programming Language
URL          : http://golang.org/
License      : BSD and Public Domain
Description  : The Go Programming Language.

そこで今回は手動で最新の Go をインストールします。 インストールは簡単で、以下のように実行するだけです。

1
2
3
4
5
curl -LO https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
tar zxvf go1.13.3.linux-amd64.tar.gz -C /usr/local/
echo 'export GOROOT=/usr/local/go' >> ~/.bashrc
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source /etc/profile

Amazon Linux2 でポート変換する

AWS の EC2 インスタンスは複数の ENI (≒ NIC) を割り当てたり、ひとつの ENI に複数のプライベートアドレスを割り当てることが可能です。 「何個割り当てられるか?」はインスタンスタイプによって異なり、大型のインスタンスである程、最大数も増えます。 t2.nano や t2.micro でも「ふたつまでの ENI」「ひとつの ENI にふたつのプライベートアドレスまで」設定することが可能です。 例えば「ひとつの ENI にふたつのプライベートを割り当て」た状態で firewalld のポート転送機能と組み合わせると、以下のようなトラフィックフローを実現することが可能です。

file

今回は実際にこの設定を行う手順をメモしておきます。