timorunge.freeipa_client
freeipa_client
このロールは、あなたのニーズに合わせてFreeIPAクライアントをインストールおよび設定します。
freeipa
(Github)と組み合わせることで、
最新のFreeIPAをDebian 9.4およびUbuntu >= 18.04で使用することが可能(かつテスト済み)です。
詳しくは例のセクションを見てください。
要件
このロールには、 Ansible 2.5.0 以上が必要です。
安定したバージョンをインストール(および定義)するには、pipを使用できます:
pip install ansible==2.7.9
すべてのプラットフォーム要件はメタデータファイルにリストされています。
このロールを正しくセットアップするには、 必要なポート を介してFreeIPAサーバー (Githubリポジトリ)と通信できる必要があります。
インストール
ansible-galaxy install timorunge.freeipa_client
ロール変数
このロールを実行可能にするためには、以下の変数を設定する必要があります(カスタマイズなし)。これらの変数にはデフォルト値はありません:
# IPA配備のメインDNSドメイン
# タイプ: 文字列
freeipa_client_domain: example.com
# このマシンのホスト名(FQDN)
# タイプ: 文字列
freeipa_client_fqdn: srv-1-eu-central-1.example.com
# IPA領域に参加するためのパスワード
# タイプ: 文字列
freeipa_client_password: Passw0rd
# IPA領域に参加するために使用するプリンシパル
# タイプ: 文字列
freeipa_client_principal: admin
# IPA配備のKerberos領域名
# タイプ: 文字列
freeipa_client_realm: EXAMPLE.COM
# IPAサーバーのFQDN
# タイプ: 文字列
freeipa_client_server: ipa.example.com
このロールに渡すことができる変数とその簡単な説明は以下の通りです。(すべての変数に関してはdefaults/main.ymlを参照してください)
# FreeIPAインストールの基本コマンド
# タイプ: 文字列
freeipa_client_install_base_command: ipa-client-install --unattended
# デフォルトのFreeIPAインストールオプション
# タイプ: リスト
freeipa_client_install_options:
- "--domain={{ freeipa_client_domain }}"
- "--server={{ freeipa_client_server }}"
- "--realm={{ freeipa_client_realm }}"
- "--principal={{ freeipa_client_principal }}"
- "--password={{ freeipa_client_password }}"
- "--mkhomedir"
- "--hostname={{ freeipa_client_fqdn }}"
- "--force-join"
例
ドキュメントを簡潔に保つために、インストールオプションは削除されています。 インストールオプションは、このドキュメントやオンラインのipa-client-installのマニュアルページで見つけられます。
1) デフォルト設定でFreeIPAクライアントをインストール
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
roles:
- timorunge.freeipa_client
2) カスタムインストールオプションでFreeIPAサーバーをインストール
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server: ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--no-ntp"
- "--ssh-trust-dns"
- "--ip-address=172.20.1.2"
- "--ip-address=172.20.2.2"
roles:
- timorunge.freeipa_client
3) FreeIPAクライアントをインストールし、複数のIPAサーバーを追加
- hosts: freeipa-clients
vars:
freeipa_client_domain: example.com
freeipa_client_server:
- ipa-eu-central-1.example.com
- ipa-eu-west-1.example.com
- ipa-eu-west-2.example.com
- ipa-eu-west-3.example.com
- ipa.example.com
freeipa_client_realm: EXAMPLE.COM
freeipa_client_principal: admin
freeipa_client_password: Passw0rd
freeipa_client_fqdn: srv-1-eu-central-1.example.com
freeipa_client_install_options:
- "--server={{ freeipa_client_server | join(' --server=') }}"
roles:
- timorunge.freeipa_client
FreeIPAクライアントインストールオプション
ipa-client-install (4.6.4) のインストールオプションの概要です。
Usage: ipa-client-install [options]
Options:
--version プログラムのバージョン番号を表示し、終了します
-h, --help このヘルプメッセージを表示します
-U, --unattended ユーザーにプロンプトを表示せずにインストールを実行します
--uninstall 既存のインストールをアンインストールします。アンインストールは--unattendedオプションで実行できます
基本オプション:
-p PRINCIPAL, --principal=PRINCIPAL
IPA領域に参加するために使用するプリンシパル
--ca-cert-file=FILE
このファイルからCA証明書を読み込みます
--ip-address=IP_ADDRESS
DNSに追加すべきIPアドレスを指定します。このオプションは複数回使用できます
--all-ip-addresses すべてのルータブルIPアドレスがDNSに追加されます
--domain=DOMAIN_NAME
IPA配備のメインDNSドメイン(現在のホスト名と必ずしも関連があるわけではありません)
--server=SERVER IPAサーバーのFQDN
--realm=REALM_NAME IPA配備のKerberos領域名(通常はメインDNSドメインの大文字名)
--hostname=HOST_NAME
このマシンのホスト名(FQDN)。指定した場合、ホスト名が設定され、ローミンしました。デフォルトでは、Pythonのsocketモジュールからのgetfqdn()呼び出しの結果が使用されます。
クライアントオプション:
-w PASSWORD, --password=PASSWORD
IPA領域に参加するためのパスワード(プリンシパルが設定されていない場合は一括パスワードとみなされます)
-W IPA領域に参加するためのパスワードをプロンプト表示します
--noac nsswitch.confおよびPAM設定を変更しません
-f, --force LDAP/Kerberos confの設定を強制します
--configure-firefox
FirefoxをIPAドメインの資格情報を使用するように設定します
--firefox-dir=FIREFOX_DIR
Firefoxがインストールされているディレクトリを指定します(例:'/usr/lib/firefox')
-k KEYTAB, --keytab=KEYTAB
前回の登録からバックアップされたkeytabのパス
--mkhomedir ユーザーの初回ログイン時にホームディレクトリを作成します
--force-join すでに参加している場合でもクライアントの登録を強制します
--ntp-server=NTP_SERVER
使用するntpサーバー。複数回使用できます
-N, --no-ntp ntpの設定を行いません
--force-ntpd ntpd以外の任意の時刻と日付の同期サービスを停止および無効にします
--nisdomain=NISDOMAIN
NISドメイン名
--no-nisdomain NISドメイン名を設定しません
--ssh-trust-dns OpenSSHクライアントをDNS SSHFPレコードを信頼するように設定します
--no-ssh OpenSSHクライアントを設定しません
--no-sshd OpenSSHサーバーを設定しません
--no-sudo sudoのデータソースとしてSSSDを設定しません
--no-dns-sshfp DNS SSHFPレコードを自動的に作成しません
--kinit-attempts=KINIT_ATTEMPTS
ホストTGTを取得する試行回数(デフォルトは5)。
--request-cert マシン用の証明書を要求します
SSSDオプション:
--fixed-primary sssdを使用して固定サーバーを主IPAサーバーとして設定します
--permit デフォルトでアクセスルールを無効にし、すべてのアクセスを許可します。
--enable-dns-updates
IPアドレスが変更されたときにDNS更新を試みるようにマシンを設定します。
--no-krb5-offline-passwords
サーバーがオフラインのときにユーザーパスワードを保存しないようにSSSDを設定します
--preserve-sssd できる限り古いSSSD設定を保持します
Automountオプション:
--automount-location=AUTOMOUNT_LOCATION
Automount場所
ロギングおよび出力オプション:
-v, --verbose デバッグ情報を表示します
-d, --debug --verboseのエイリアス(廃止されています)
-q, --quiet エラーのみ出力します
--log-file=FILE 指定されたファイルにログを記録します
テスト
TravisテストはDockerと docker_test_runnerを使用して実施されています。 Travisでのテストは、リンティングと構文チェックを行っています。
さらなる詳しい内容や追加チェックについては、 docker_test_runner構成および Dockerエントリポイントを参照してください。
# ローカルでのテスト:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml
依存関係
このロールは、実行中のFreeIPAサーバー (Githubリポジトリ)を必要とします。
ライセンス
作成者情報
- ティモ・ルンゲ