stackbuilders.sb-debian-base

警告: このライブラリは非推奨となり、もはやメンテナンスされていません。今後のセキュリティパッチ、機能、バグ修正は行われず、アーカイブ目的でGitHubに保存されています。使用したい場合は、リポジトリをフォークし、使用前にコードベースを監査することをお勧めします。詳細については、info@stackbuilders.comまでお問い合わせください。

推奨される役割:

Stack Builders - Debian ベース

ビルドステータス Ansible Galaxy

サーバー用の汎用Debianイメージ。このGalaxyはAnsible 2.7.0を必要とします。

対応プラットフォーム

  • Debian

    • 10 (buster)
    • 9 (stretch)
  • Ubuntu

    • 18.04 (bionic)
    • 16.04 (xenial)

重大な変更:

  • Haskellのタスクがこの役割から削除されたため、install_haskell_stackinstall_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 }}を定義できます。
  • パッケージキャッシュの更新
  • 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を無効にできます。
  • 環境変数を設定および更新する
    • {{ 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.

プロジェクトについて

Base image and common roles

インストール
ansible-galaxy install stackbuilders.sb-debian-base
ライセンス
mit
ダウンロード
14k
所有者
Our team strives to push the boundaries of the software industry through quality, pragmatic custom solutions that bring the visions of our clients to life.