stackhpc.ansible-role-os-networks

注意:

このリポジトリはもはやメンテナンスされていません - 役割は現在 Ansibleコレクションに移動しました ➡️ https://github.com/stackhpc/ansible-collection-openstack

OpenStackネットワーク

この役割は、neutronでネットワーク、サブネット、およびルーターを登録するために使用できます。使用するモジュールは、os_network、os_subnet、およびos_routerです。

要件

OpenStack neutron APIは、ターゲットホストからアクセス可能である必要があります。

役割の変数

os_networks_venvは、仮想環境を作成するためのディレクトリのパスです。

os_networks_auth_typeは、os_* Ansibleモジュールのauth_type引数と互換性のある認証タイプです。

os_networks_authは、os_* Ansibleモジュールのauth引数と互換性のある認証情報を含む辞書です。

os_networks_cacertは、CA証明書バンドルへのオプションのパスです。

os_networks_cloudは、clouds.yaml内のオプションのクラウド名です。

os_networks_interfaceは、サービスカタログから取得するエンドポイントURLのタイプです。publicadmin、またはinternalのいずれかです。

os_networksは、登録するネットワークのリストです。各アイテムは次の項目を含む辞書である必要があります:

  • name: neutronネットワークの名前。
  • provider_network_type: neutronネットワークのプロバイダータイプ。
  • provider_physical_network: neutronネットワークのプロバイダー物理ネットワーク。
  • provider_segmentation_id: neutronネットワークのプロバイダーセグメンテーションID。
  • shared: neutronネットワークが共有されているかどうか。
  • external: neutronネットワークが外部であるかどうか。
  • project: 認証プロジェクトとは異なるプロジェクトのために、このネットワークを作成するオプション。
  • state: ネットワークのオプションの状態、デフォルトはpresent
  • mtu: フラグメンテーションに対処するための最大伝送単位(MTU)値。このオプションが提供されない場合、ネットワークはOpenStackのデフォルトを使用します。ansible >= 2.9が必要です。
  • port_security_enabled: ネットワークのポートセキュリティが有効になっているかどうか。オプションを使用しない場合、ネットワークはOpenStackのデフォルトを使用します。ブーリアン、trueで有効、falseで無効。ansible >= 2.8が必要です。
  • dns_domain: 設定するDNSドメイン値。オプションが指定されない場合、ネットワークはOpenStackのデフォルトを使用します。ansible >= 2.9が必要です。
  • subnets: このネットワーク内に作成するサブネットのリスト。各アイテムは次の項目を含む辞書である必要があります:
    • name: neutronサブネットの名前。
    • cidr: neutronサブネットのIPネットワークのCIDR表現。
    • dns_nameservers: サブネットのDNSネームサーバーのリスト。
    • extra_specs: APIに渡される追加のキー/値ペアを含むオプションの辞書。ansible >= 2.7が必要です。
    • gateway_ip: neutronサブネットのゲートウェイのIPアドレス。
    • no_gateway_ip: オプションのブーリアン、ゲートウェイIPを省略するかどうか。未設定の場合、gateway_ipが指定されている場合はtrue、そうでなければfalseになります。
    • enable_dhcp: サブネットでDHCPを有効にするかどうか。
    • allocation_pool_start: neutronサブネットのIP割り当てプールの開始。
    • allocation_pool_end: neutronサブネットのIP割り当てプールの終了。
    • host_routes: このサブネットに接続されているホストに供給するクラスレススタティックルートのリスト。destination(CIDR形式の宛先ネットワーク)とnexthop(このサブネットのルーターIP)を含む辞書のリストが必要です。
    • ip_version: サブネットのオプションのIPバージョン。
    • ipv6_address_mode: サブネットのオプションのIPv6アドレスモード。
    • ipv6_ra_mode: サブネットのオプションのIPv6ルーター広告モード。
    • use_default_subnetpool: オプションのブーリアン、IPバージョンのためにデフォルトのサブネットプールを使用するかどうか。
    • project: 認証プロジェクトとは異なるプロジェクトのために、このサブネットを作成するオプション。
    • state: サブネットのオプションの状態、デフォルトはpresent

os_networks_routersは、作成するルーターのリストです。各アイテムは次の項目を含む辞書である必要があります:

  • name: neutronルーターの名前。
  • interfaces: ルーターの内部インタフェースに接続するサブネットの名前のリスト。
  • network: 外部ゲートウェイネットワークの一意の名前またはID。
  • external_fixed_ips: 外部ゲートウェイネットワークのIPアドレスパラメータのオプションのリスト。各々はサブネット名またはサブネットIDとIPアドレスを含む辞書です。
  • project: 認証プロジェクトとは異なるプロジェクトのために、このルーターを作成するオプション。
  • state: ルーターのオプションの状態、デフォルトはpresent

os_networks_security_groups: 作成するセキュリティグループのリスト。各アイテムは次の項目を含む辞書である必要があります:

  • name: セキュリティグループの名前。
  • description: セキュリティグループのオプションの説明。
  • project: セキュリティグループを登録するためのオプションのプロジェクト。
  • state: セキュリティグループのオプションの状態、デフォルトはpresent
  • rules: セキュリティグループに追加するルールのオプションのリスト。各アイテムは次の項目を含む辞書である必要があります:
    • direction: ルールのオプションの方向、デフォルトはingress
    • ethertype: ルールのオプションのEthertype、デフォルトはIPv4
    • port_range_min: オプションの開始ポート。
    • port_range_max: オプションの終了ポート。
    • protocol: ルールのオプションのIPプロトコル。
    • remote_group: リンクするセキュリティグループのオプションの名前またはID。
    • remote_ip_prefix: CIDR表記のオプションの送信元IPアドレスプレフィックス。
    • state: ルールのオプションの状態、デフォルトはpresent

os_networks_rbacは、名前付きネットワークとプロジェクトに対する役割ベースのアクセス制御の共有リストです。詳細については、Neutron RBAC管理ガイドを参照してください。リスト内の各エントリは、次の項目を含む辞書です:

  • network: 共有するネットワークの名前。このネットワークは通常、adminプロジェクトによって所有されており、sharedまたはexternalではありません。
  • access: 対象プロジェクトとの共有モード。有効なオプションはaccess_as_externalaccess_as_shared
  • projects: 指定された方法で名前付きネットワークを共有するためのプロジェクト名のリスト。

注意: RBACの割り当ては、作成された後に変更することはできません。

依存関係

この役割は、stackhpc.os_openstacksdk役割に依存しています。

例のプレイブック

次のプレイブックは、neutronネットワーク、サブネット、ルーターを登録します。クラスレススタティックルートを定義して、別のゲートウェイを介して他のサブネットにアクセスします。

---
- name: ネットワーク、サブネット、ルーターが登録されているか確認する
  hosts: neutron-api
  roles:
    - role: os-networks
      os_networks_venv: "~/os-networks-venv"
      os_networks_auth_type: "password"
      os_networks_auth:
        project_name: <keystoneプロジェクト>
        username: <keystoneユーザー>
        password: <keystoneパスワード>
        auth_url: <keystone認証URL>
      os_networks:
        - name: net1
          provider_network_type: vlan
          provider_physical_network: physnet1
          provider_segmentation_id: 1234
          shared: true
          external: false
          subnets:
            - name: subnet1
              cidr: 10.0.0.0/24
              gateway_ip: 10.0.0.1
              allocation_pool_start: 10.0.0.2
              allocation_pool_end: 10.0.0.254
              host_routes:
                - destination: 10.0.1.0/24
                  nexthop: 10.0.0.254
      os_networks_routers:
        - name: router1
          interfaces:
            - subnet1
          network: net1
      os_networks_security_groups:
        - name: secgroup1
          rules:
            - protocol: icmp

著者情報

プロジェクトについて

Role to register networks, subnets and routers in OpenStack

インストール
ansible-galaxy install stackhpc.ansible-role-os-networks
ライセンス
apache-2.0
ダウンロード
157.5k
所有者
StackHPC develops OpenStack capabilities for research computing use cases. Through extensive experience, we understand HPC and cloud.