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_user
はrhbase_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
貢献者
- Michael Cleary (メンテナ)
元の貢献者
- Bert Van Vreckem
- Jeroen De Meerleer
- Sebastien Nussbaum