clusterapps.rhbase

Ansibleロール rhbase

RedHatベースのLinuxディストリビューション(CentOS、Fedora、RHELなど)でのサーバーの基本設定のためのAnsibleロールです。このロールの責任は特に以下の通りです:

  • リポジトリの管理
  • パッケージのインストールと削除の管理
  • 指定されたサービスのオン・オフ
  • ユーザーとグループの作成
  • SSHキーを使った管理者アカウントの設定
  • SELinuxやファイアウォールのオンにするなどの基本的なセキュリティ設定
  • ファイアウォールルールの管理(パブリックゾーン内)

これはbertvv.rh-baseのフォークです。元のものは素晴らしいですが、私は別の方向性を求めました。

要件

特別な要件はありません。

ロール変数

変数 デフォルト コメント(タイプ)
rhbase_enable_repos [] 有効にするリポジトリを指定する辞書のリスト。詳細は以下を参照。
rhbase_firewall_allow_ports [] ファイアウォールを通過させる許可ポートのリスト。例:80/tcp、53/udpなど。
rhbase_firewall_allow_services [] ファイアウォールを通過させる許可サービスのリスト。例:http、dnsなど。(1)
rhbase_firewall_interfaces [] ファイアウォールルールセットのパブリックゾーンに追加するネットワークインターフェースのリスト。
rhbase_hosts_entry true 設定すると、マシンのホスト名を持つエントリが/etc/hostsに追加されます。これにより事実の取得が速くなります。
rhbase_install_packages [] インストールすべきパッケージのリスト。URLも許可されます。
rhbase_motd false 設定すると、ホスト名とIPアドレスに関する情報を持つカスタム/etc/motdがインストールされます。
rhbase_override_firewalld_zones false 設定すると、NetworkManagerが管理者によって設定されたファイアウォールゾーンを上書きすることができます。(2)
rhbase_remove_packages [] インストールすべきでないパッケージのリスト
rhbase_repo_exclude_from_update [] 更新から除外されるパッケージのリスト。ワイルドカードも許可されます。例:kernel*
rhbase_repo_exclude [] yum/dnf.confで無効にするリポジトリのリスト
rhbase_repo_gpgcheck false 設定すると、パッケージのインストール時にGPGチェックが行われます。
rhbase_repo_installonly_limit 3 同時にインストールできるパッケージのバージョンの最大数(例:カーネル)。2以上にする必要があります。
rhbase_repo_remove_dependencies true 設定すると、パッケージ削除後に不要になった依存関係も削除されます。
rhbase_repositories [] 外部リポジトリをインストールするRPMパッケージのリスト(例:epel-release)。
rhbase_selinux_state enforcing システムのデフォルトのSELinux状態。これをそのままにしておいてください。
rhbase_selinux_booleans [] 有効にすべきSELinuxブール値のリスト。例:httpd_can_network_connect
rhbase_ssh_key - パスワードなしでログインできる管理ユーザーの公開SSHキー。ユーザーは存在している必要があります。
rhbase_ssh_user - このマシンを管理するユーザーの名前。SSHキーはそのユーザーのホームディレクトリにインストールされます。(3)
rhbase_start_services [] 起動して有効にする必要があるサービスのリスト。
rhbase_stop_services [] 実行を許可しないサービスのリスト
rhbase_tz :/etc/localtime $TZ環境変数を設定します。(4)
rhbase_update false 設定すると、パッケージの更新が行われます。
rhbase_user_groups [] 存在すべきユーザーグループのリスト。
rhbase_users [] 存在すべきユーザーを指定する辞書のリスト。以下に例を示します。
rhbase_taskrunner_key [] タスクランナーとして接続するための承認された公開鍵

備考:

(1) rhbase_firewall_allow_servicesの有効な値の完全なリストは、firewall-cmd --get-servicesコマンドで列挙できます。

(2) これはCentOSバグ #7407の回避策です。NetworkManagerはデフォルトでファイアウォールゾーンを管理し、--permanentで追加したルールを上書きします。

(3) rhbase_ssh_user変数を設定してもユーザーは作成されず、ユーザーのホームディレクトリ(~/.ssh/authorized_keys)にrhbase_ssh_keyがインストールされます。そのため、rhbase_ssh_userrhbase_usersで指定された既存のユーザー名である必要があります。

(4) $TZ変数を設定すると、システムコールの数が減る可能性があります。詳細はhttps://blog.packagecloud.io/eng/2017/02/21/set-environment-variable-save-thousands-of-system-calls/を参照してください。

リポジトリの有効化

有効化(インストールされているが無効な)リポジトリを、rhbase_enable_reposに辞書のリストとして指定します。キーはname:(必須)とsection:(オプション)です。例:

rhbase_enable_repos:
  - name: CentOS-fasttrack
    section: fasttrack
  - name: epel-testing

セクションが指定されない場合、デフォルトでリポジトリ名になります。

ユーザーの追加

ユーザーは以下のような辞書で指定します:

rhbase_users:
  - name: johndoe
    comment: 'John Doe'
    groups:
      - users
      - devs
    password: '$6$WIFkXf07Kn3kALDp$fHbqRKztuufS895easdT [...]'
  - name: janedoe

必須のキーはnameのみです。

キー 必須 デフォルト コメント
name はい - ユーザー名
comment いいえ '' コメント文字列
shell いいえ '/bin/bash' ユーザーのコマンドシェル
groups いいえ [] 追加すべきユーザーのグループ(1)
password いいえ '!!' ユーザーのパスワードハッシュ(2)

備考:

(1) ユーザーを管理者にしたい場合は、グループwheelのメンバーであることを確認してください(RedHatシステム管理者ガイドを参照)。

(2) パスワードは、crypt(3)によって返されるハッシュとして、形式$algo$salt$hashで指定する必要があります。テストやPoC用のVMの場合は、https://www.mkpasswd.net/を使用して正しい形式のハッシュを生成できます。Linuxの一般的なハッシュタイプはMD5(crypt-md5、$1$で始まるハッシュ)とSHA-512(crypt-sha-512、$6$で始まるハッシュ)です。

依存関係

依存関係はありません。

例のプレイブック

近日公開予定

テスト

近日公開予定

貢献

課題、機能リクエスト、アイデアは歓迎され、Issuesセクションに投稿できます。

プルリクエストも大歓迎です。PRを提出する最良の方法は、最初にこのGithubプロジェクトのフォークを作成し、提案された変更のためのトピックブランチを作成して、そのブランチを自分のフォークにプッシュすることです。Githubはその後、簡単にそのブランチに基づいてPRを作成できます。貢献者リストに名前を追加するのを忘れないでください!

ライセンス

BSD

貢献者

元の貢献者

プロジェクトについて

Base setup of a server with a RedHat-based Linux distribution with the systemd init system.

インストール
ansible-galaxy install clusterapps.rhbase
ライセンス
other
ダウンロード
215
所有者
I'm here to read the articles.