stackbuilders.sb-debian-base
警告: このライブラリは非推奨となり、もはやメンテナンスされていません。今後のセキュリティパッチ、機能、バグ修正は行われず、アーカイブ目的でGitHubに保存されています。使用したい場合は、リポジトリをフォークし、使用前にコードベースを監査することをお勧めします。詳細については、info@stackbuilders.comまでお問い合わせください。
推奨される役割:
Stack Builders - Debian ベース
サーバー用の汎用Debianイメージ。このGalaxyはAnsible 2.7.0を必要とします。
対応プラットフォーム
Debian
- 10 (buster)
- 9 (stretch)
Ubuntu
- 18.04 (bionic)
- 16.04 (xenial)
重大な変更:
- Haskellのタスクがこの役割から削除されたため、
install_haskell_stack
とinstall_haskell_dependencies
変数はもはや使用されません。
この役割の使い方
現在のバージョンはAnsibleのフロー制御(when: fooが定義されている)を使用して さまざまなステージのタスクを実行しますが、ホスト名を設定したり、デプロイディレクトリを作成したりするための便利なタグを保持しています。
まず、requirements.yml
ファイルを作成し、このリポジトリへの参照を追加します:
---
- src: [email protected]:stackbuilders/sb-debian-base.git
version: <タグ、コミットまたはブランチ>
path: external-roles
その後、次のコマンドを実行する必要があります:
ansible-galaxy install -r requirements.yml
プレイブックを作成する
プレイブックファイルを作成し、役割セクションに実行する必要のあるタスクのグループを設定します。例として、tests/site.yml
または以下のものを使用できます:
# site.yml
- hosts: all
remote_user: foo
vars:
sb_debian_base_admin_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E ADMIN_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e ADMIN_USER_2
sb_debian_base_deploy_user_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc1E DEPLOY_USER_1
- ssh-rsa AAAAB3Nzac2Yc2e DEPLOY_USER_2
roles:
- role: sb-debian-base
prebootstrap: yes
- role: sb-debian-base
bootstrap: yes
add_remove_keys: yes
vars:
sb_debian_base_deploy_user: deployer
sb_debian_base_supplementary_packages: [ "pkg-config", "traceroute" ]
sb_debian_base_environment_variables:
ONE: "uno"
TWO: "dos"
また、推奨される方法ではありませんが、アドホックタスクを実行することもできます:
ansible-playbook -l local -i hosts site.yml -k -u root -e "prebootstrap: yes"
以下のようにプレイブックを実行します:
# 基本イメージ
ansible-playbook -l local -i hosts site.yml -k -u root
# 管理者アカウント
ansible-playbook -l local -i hosts site.yml -u administrator
利用可能なタスクグループ:
プリーブートストラップ (prebootstrap)
このタグには基本的なセットアップタスクが含まれています。例えば:
- 管理者ユーザーの追加
- Debianではデフォルトが
admin
、Ubuntuではubuntu
です。変数{{ sb_debian_base_admin_user }}を定義できます。
- Debianではデフォルトが
- パッケージキャッシュの更新
- sudoパッケージのインストール
- sudoグループに対してパスワードなしでsudoを使用する
- 管理者ユーザーのための認証SSHキーの設定
- {{ sb_debian_base_admin_user_authorized_keys }}を定義する必要があります。
ブートストラップ (bootstrap)
このタグには、より高度なセットアップタスクが含まれます。例えば:
- SSHセッションのパスワード認証を無効にする
- rootユーザーのSSHアクセスを無効にする
- ホスト名の設定
- {{ hostname }}を定義できます。
- タイムゾーンの設定
- {{ sb_debian_base_ntp_timezone }}を定義できます。
- systemd-timesyncdを使用してNTPを有効にする
- journaldデータを永続的に保存することを確認する
- すべてのパッケージをアップグレードする
- 基本パッケージをインストールする
- 例:vim, tmux, htop, atop, tree, ufw, emacs, git, curl
- 補助パッケージをインストールする(sb_debian_base_extra_packagesだけでなく)
- UFWを使用してファイアウォールを有効にする
- 一般的なポートを開く(例:SSHポート、HTTPポート;デフォルトはSSH)
- {{ ports }}を定義できます。
- 特定のIPのために特定のポートを開く
- {{ port_ips }}を定義できます。
sb_debian_base_firewall: no
でUFWを無効にできます。
- 一般的なポートを開く(例:SSHポート、HTTPポート;デフォルトはSSH)
- 環境変数を設定および更新する
- {{ sb_debian_base_environment_variables }}を定義する必要があります。
- デプロイユーザーのためのUnixユーザーとグループを作成する
- 変数{{ sb_debian_base_deploy_user }}を定義する必要があります(例:deployer)。
- オプションで変数{{ sb_debian_base_deploy_user_group }}を定義できます(例:deployer)。定義しない場合、{{ sb_debian_base_deploy_user }}と同じになります。
- アプリケーションデプロイディレクトリを作成する
- GitHubの「デプロイキー」のためのSSHキーを追加する
- デプロイユーザーのための認証SSHキーを設定する
- {{ sb_debian_base_deploy_user_authorized_keys }}を定義する必要があります。
- github.comを既知のホストにする
- {{ sb_debian_base_deploy_user }}を定義する必要があります。
- この変数はデフォルトでGitHubを既知のホストとして追加しますが、{{ sb_debian_base_known_hosts }}を書き換えることで変更可能です。
- グローバルbashヒストリー設定を以下の形式に設定する:
285 Thu 08 Aug 2019 01:43:40 PM UTC あるコマンド
利用可能な変数については下記を参照してください。
ホスト名の設定 (set-hostname)
- ホスト固有の変数にホスト名を設定する
- {{ hostname }}を定義する必要があります。
bashヒストリー設定の構成:
ヒストリー設定を有効/無効にする
sb_debian_base_bash_history: true
sb_debian_base_bash_history_config:
の下で- ヒストリーバッファに保持する行数を設定する
histsize: '5000'
- ヒストリーファイルに保持する行数を設定する
histfilesize: '3000'
- 各ヒストリーコマンドの前に追加する時間形式を設定する(完全なオプションについては
man history
を参照)histtimeformat: '%c%t'
- ヒストリーバッファに保持する行数を設定する
アプリケーションディレクトリの作成 (create-app-directory)
- アプリケーションデプロイディレクトリを作成する
- {{ sb_debian_base_deploy_user }}が定義されている場合。
このブートストラップタスクグループに含まれる外部依存関係 (Galaxies)
- kamaln7.swapfile(スワップファイルの設定)
- 変数{{ sb_debian_base_swap_file_size }}を定義できます(例:2048MB)。
- セキュリティパッチのみのためにunattended-upgradesをインストールする
- 変数{{ sb_debian_base_uu_email_alerts }}を定義できます(例:example@example.com)。
認証SSHキーの更新 (add-remove-keys)
SSH認証キーを更新します:
- 管理者およびデプロイユーザー両方のSSH公開キーを含む次の変数リストを定義する必要があります:
{{ sb_debian_base_admin_user_authorized_keys }}
{{ sb_debian_base_deploy_user_authorized_keys }}
ライセンス
MIT、詳しくはこのリポジトリ内のLICENSEファイルを参照してください。
著者情報
Justin Leitgeb, Stack Builders Inc.
ansible-galaxy install stackbuilders.sb-debian-base