[Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。]
Red Hat Enterprise Linux(RHEL)システムのデプロイメントプロセスの初期段階では、システムを登録し、適切なサブスクリプションをアタッチします。これらの2つのステップを自動化するために、私はAnsibleの役割を使用しています。これをあなたと共有したいと思います。
私の環境
私の環境では、RHELは主にさまざまな仮想化クラスター内で実行され、場合によっては専用サーバー(ベアメタル)で実行されます。開発と本番には次のサブスクリプションを使用します:
- RedHat開発者サブスクリプション
- Red Hat Enterprise Linux Server、標準(物理ノードまたは仮想ノード)
- Red Hat Enterprise Linux for Virtual Datacenters、標準
register-rhel-subscription
役割
私の役割はミニマルで、次のような構造になっています。
# tree roles/register-rhel-subscription
roles/register-rhel-subscription
|-- defaults
| `-- main.yml
|-- tasks
| `-- main.yml
tasks/main.yml
Ansibleモジュールredhat_subscription
subscription-manager
を使用してシステムの登録とサブスクリプションを管理します 指図。カスタマーポータルでアクティベーションキーを作成することから始めます。このキーを使用すると、ユーザー名とパスワードを入力しなくても登録できます。
このキーをパラメータactivationkey
に割り当てます 、そのように:
activationkey: "{{ org_activationkey }}"
上記のコードでは、変数org_activationkey
のコンテンツ パラメータに渡されます。この変数を定義する方法と場所については、次のセクションで説明します。
また、組織のIDをorg_id
に追加する必要があります 。この情報は次の場所で見つけることができます:
sudo subscription-manager identity
次に、次の方法で目的のターゲット状態を宣言します。
state: present
この場合、システムを登録し、サブスクリプションを添付する必要があります。このパラメータをstate: absent
に変更した場合 、システムはそれに応じて登録解除されます。
すべてをまとめると、コードは次のようになります。
---
# tasks file for register-rhel-subscription
# Register System and add Subcription
- name: Register system and add subscription
redhat_subscription:
activationkey: "{{ org_activationkey }}"
org_id: 1234567
state: present
defaults/main.yml
このファイルでは、変数org_activationkey
のデフォルト値を定義します。 :
---
# defaults file for register-rhel-subscription
org_activationkey: "my-datacenter-sub"
このファイルで指定された値は、たとえばhost_vars
で上書きできます。 およびgroup_vars
(変数の使用を参照)。 Ansibleインベントリのグループメンバーシップを使用して、ホストまたはホストのグループに割り当てるサブスクリプションを制御できます。
プレイブックの例
上記の手順が完了すると、register-rhel-subscription
を追加できるようになります。 プレイブックへの役割:
---
- hosts: all
tasks:
- name: Group by OS
group_by:
key=os_{{ ansible_distribution }}
changed_when: False
- hosts: os_RedHat
roles: - register-rhel-subscription
これまでのところ、このソリューションは確固たる印象を与えており、このテキストの作成には実際の作業よりもはるかに長い時間がかかりました。これは、AnsibleがSysadminDayをいくらか簡単にする方法の小さくて単純な例です。