Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

43.2. Primed イメージの作成

自動スケーラーが使用する Primed イメージを自動的に作成するように Ansible Playbook を使用できます。既存の Amazon Web Services (AWS) クラスターの属性を指定する必要があります。

注記

すでに Primed イメージがある場合、新規のイメージを作成せずにこれを使用できます。

手順

OpenShift Container Platform クラスターを作成するために使用したホストで、Primed イメージを作成します。

  1. ローカルホストに新規の Ansible インベントリーファイルを作成します。このファイルには、参加ノードで自動スケーリングを有効にするために cloudprovider フラグを割り当てる変数が必要です。これらの変数がないと、build_ami.yml Playbook は openshift_cloud_provider ロールを使用できません。

    [OSEv3:children]
    masters
    nodes
    etcd
    
    [OSEv3:vars]
    openshift_deployment_type=openshift-enterprise
    ansible_ssh_user=ec2-user
    openshift_clusterid=mycluster
    ansible_become=yes
    openshift_cloudprovider_kind=aws 1
    openshift_cloudprovider_aws_access_key=<aws_access_key> 2
    openshift_cloudprovider_aws_secret_key=<aws_secret_key> 3
    
    [masters]
    [etcd]
    [nodes]
    1
    クラウドプロバイダーのタイプを指定します。
    2
    クラウドプロバイダーの Identity and Access Management (IAM) アクセスキーを提供します。
    3
    クラウドが提供する IAM シークレットキーを提供します。
  2. ローカルホストにプロビジョニングファイル build-ami-provisioning-vars.yaml を作成します。

    openshift_deployment_type: openshift-enterprise
    
    openshift_aws_clusterid: mycluster 1
    
    openshift_aws_region: us-east-1 2
    
    openshift_aws_create_vpc: false 3
    
    openshift_aws_vpc_name: production 4
    
    openshift_aws_subnet_az: us-east-1d 5
    
    openshift_aws_create_security_groups: false 6
    
    openshift_aws_ssh_key_name: production-ssh-key 7
    
    openshift_aws_base_ami: ami-12345678 8
    
    openshift_aws_create_s3: False 9
    
    openshift_aws_build_ami_group: default 10
    
    openshift_aws_vpc: 11
      name: "{{ openshift_aws_vpc_name }}"
      cidr: 172.18.0.0/16
      subnets:
        us-east-1:
        - cidr: 172.18.0.0/20
          az: "us-east-1d"
    
    container_runtime_docker_storage_type: overlay2 12
    container_runtime_docker_storage_setup_device: /dev/xvdb 13
    
    # atomic-openshift-node service requires gquota to be set on the
    # filesystem that hosts /var/lib/origin/openshift.local.volumes (OCP
    # emptydir). Often is it not ideal or cost effective to deploy a vol
    # for emptydir. This pushes emptydir up to the / filesystem. Base ami
    # often does not ship with gquota enabled for /. Set this bool true to
    # enable gquota on / filesystem when using Red Hat Cloud Access RHEL7
    # AMI or Amazon Market RHEL7 AMI.
    openshift_aws_ami_build_set_gquota_on_slashfs: true 14
    
    rhsub_user: user@example.com 15
    rhsub_pass: password 16
    rhsub_pool: pool-id 17
    1
    既存クラスターの名前を指定します。
    2
    既存クラスターが現在実行されているリージョンを指定します。
    3
    False を指定して VPC の作成を無効にします。
    4
    クラスターが実行されている既存の VPC 名を指定します。
    5
    既存のクラスターが実行されているサブネットの名前を指定します。
    6
    セキュリティーグループの作成を無効にするために False を指定します。
    7
    SSH アクセスに使用する AWS キー名を指定します。
    8
    Primed イメージのベースイメージとして使用する AMI イメージ ID を指定します。Red Hat® Cloud Access を参照してください。
    9
    S3 バケットの作成を無効にするために False を指定します。
    10
    セキュリティーグループ名を指定します。
    11
    既存クラスターが実行されている VPC サブネットを指定します。
    12
    overlay2 を Docker ストレージタイプとして指定します。
    13
    LVM および /var/lib/docker ディレクトリーのマウントポイントを指定します。
    14
    Red Hat Cloud を使用する場合、このパラメーターの値を true に設定して、ファイルシステムで gquota を有効にします。
    15
    アクティブな OpenShift Container Platform サブスクリプションのある Red Hat アカウントのメールアドレスを指定します。
    16
    Red Hat アカウントのパスワードを指定します。
    17
    OpenShift Container Platform サブスクリプションのプール ID を指定します。クラスター作成時に使用したのと同じプール ID を使用できます。
  3. build_ami.yml Paybook を実行して Primed イメージを生成します。

    # ansible-playbook -i </path/to/inventory/file> \
        /usr/openshift-ansible/playbooks/aws/openshift-cluster/build_ami.yml \
        -e @build-ami-provisioning-vars.yaml

    Playbook の実行後に、新規のイメージ ID または AMI が出力に表示されます。起動設定の作成時に生成した AMI を指定します。