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のタイプです。public
、admin
、または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_external
とaccess_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
著者情報
- Mark Goddard (mark@stackhpc.com)
Role to register networks, subnets and routers in OpenStack
ansible-galaxy install stackhpc.ansible-role-os-networks