ansibleguy.infra_certs

Ansibleロール - 証明書ジェネレーター

Linuxサーバーで使用する証明書を作成するためのAnsibleロールです。

コーヒーを買ってください

Moleculeテストステータス YamlLintテストステータス PyLintテストステータス Ansible-Lintテストステータス Ansible Galaxy

Moleculeログ:ショートフル

テスト済みのOS:

  • Debian 11
  • Debian 12

インストール方法

# 最新版
ansible-galaxy role install git+https://github.com/ansibleguy/infra_certs

# galaxyからのインストール
ansible-galaxy install ansibleguy.infra_certs

# カスタムロールパスへのインストール
ansible-galaxy install ansibleguy.infra_certs --roles-path ./roles

# 依存関係のインストール
ansible-galaxy install -r requirements.yml

使い方

シンプルなAnsible GUIが欲しいですか?私の Ansible WebUI をチェックしてください。

注意点

自己署名証明書最小CAモードでは、実行ごとに1つの証明書しか作成されません。

再実行の場合は、'certs'タグを使用することでオーバーヘッドを節約できます。

LetsEncryptモードでは、定義された複数の証明書を作成または削除します。

設定例

LetsEncryptの設定例:

certs:
  mode: 'le_certbot'
  path: '/etc/apache2/ssl'
  letsencrypt:
    certs:
      myNiceSite:
        domains: ['myRandomSite.net', 'ansibleguy.net']
        email: '[email protected]'
    service: 'apache'

自己署名証明書の設定例:

certs:
  mode: 'selfsigned'  # もしくは'snakeoil'(より早い)
  path: '/etc/nginx/ssl'
  group_key: 'nginx'
  owner_cert: 'nginx'
  cert:
    cn: '私の素晴らしい証明書!'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    domains: ['mySoGreat.site', 'ansibleguy.net']
    ips: ['192.168.44.2']
    pwd: !vault ...

最小CAの設定例:

certs:
  mode: 'ca'
  path: '/etc/ca/certs'
  mode_key: '0400'
  cert:
    name: 'custom_file_name'  # 拡張子が追加されます
    cn: '私の素晴らしい証明書!'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    domains: ['mySoGreat.site', 'ansibleguy.net']
  ca:
    path: '/etc/ca'
    cn: 'SUPER CertificateAuthority'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    pwd: !vault ...

最小CAを使用することで、'cert'設定を変更してロールを再実行することで、CAに署名された複数の証明書を作成できます。

パスワードを暗号化するために'ansible-vault'を使用することをお勧めします:

ansible-vault encrypt_string

実行方法

プレイブックを実行します:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml --ask-vault-pass

以下のタグも利用可能です:

  • certs => CAタスクを無視し、証明書のみを生成
  • selfsigned
  • config
  • certs

エラーのデバッグには、実行時に'debug'変数を設定できます:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

機能

  • パッケージのインストール

    • Ansibleの依存関係(最小限)
    • 暗号化の依存関係
  • 設定

    • 4つの可能なモード:

      • 自己署名証明書を生成
      • 最小証明書機関を使用して署名された証明書を作成
      • LetsEncrypt-Certbotを設定して公に有効な証明書を生成
        • NginxおよびApacheでサポートされています
        • ホストは、有効なパブリックDNSレコードが設定されている必要があります
        • 80/tcpポートで公にアクセス可能である必要があります
    • デフォルト設定:

      • モード => 自己署名

情報

  • 注: このロールは現在、Debianベースのシステムのみをサポートしています。

  • 注: このロールのほとんどの機能は、オプトインまたはアウト可能です。

    すべての利用可能なオプションについては、メインのデフォルトファイルにあるデフォルト設定を確認してください!

  • 注: 証明書を一括管理する必要がある場合は、完全なPublic Key Infrastructureを作成および管理できるansibleguy.infra_pkiロールを確認してください。

  • 注: 証明書ファイルの名前(定義済みの変数名またはCommonName)は以下のように更新されます:

    • スペースはアンダースコアに変換されます
    • "0-9a-zA-Z."を除くすべての文字が削除されます
    • ファイル拡張子(_crt/chain.crt/key/csr_)が追加されます
  • 警告: 提供するすべての設定/変数の有効性はチェックされません。無効な設定がロールを壊す可能性があります!

  • 情報: LetsEncryptの更新が機能するには、以下への外向き接続を許可する必要があります:

    80/tcp、443/tcp+udp への acme-v02.api.letsencrypt.org、staging-v02.api.letsencrypt.org(_デバッグモード_)、および r3.o.lencr.org

プロジェクトについて

Meat-role to generate/manage certificates for other roles

インストール
ansible-galaxy install ansibleguy.infra_certs
ライセンス
other
ダウンロード
7.6k
所有者
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg