Merge branch 'master' of /git/ansible
This commit is contained in:
commit
4dd3d9b3b0
6 changed files with 56 additions and 23 deletions
|
@ -49,30 +49,52 @@ def image_name_to_id(host_vars, user, password, tenant, auth_url):
|
||||||
raise errors.AnsibleFilterError('There is no image of name {0} accessible for tenant {1}'.format(host_vars, tenant))
|
raise errors.AnsibleFilterError('There is no image of name {0} accessible for tenant {1}'.format(host_vars, tenant))
|
||||||
|
|
||||||
def network_name_to_id(host_vars, user, password, tenant, auth_url):
|
def network_name_to_id(host_vars, user, password, tenant, auth_url):
|
||||||
|
""" Accept one name of network or list of names of networks and return the same
|
||||||
|
structure, but names replaced by ids of the network(s). """
|
||||||
auth = identity.Password(auth_url=auth_url, username=user,
|
auth = identity.Password(auth_url=auth_url, username=user,
|
||||||
password=password, tenant_name=tenant)
|
password=password, tenant_name=tenant)
|
||||||
sess = session.Session(auth=auth)
|
sess = session.Session(auth=auth)
|
||||||
token = auth.get_token(sess)
|
token = auth.get_token(sess)
|
||||||
endpoint = auth.get_endpoint(sess, service_name='neutron', service_type='network')
|
endpoint = auth.get_endpoint(sess, service_name='neutron', service_type='network')
|
||||||
neutron = NeutronClient('2.0', endpoint_url=endpoint, token=token)
|
neutron = NeutronClient('2.0', endpoint_url=endpoint, token=token)
|
||||||
networks = neutron.list_networks(name=host_vars, fields='id')["networks"]
|
result_as_list = isinstance(host_vars, list)
|
||||||
if networks:
|
if not result_as_list:
|
||||||
return networks[0]['id']
|
host_vars = [host_vars]
|
||||||
|
result = []
|
||||||
|
for net in host_vars:
|
||||||
|
networks = neutron.list_networks(name=net, fields='name')["networks"]
|
||||||
|
if networks:
|
||||||
|
result += [networks[0]['id']]
|
||||||
|
else:
|
||||||
|
raise errors.AnsibleFilterError('There is no network of name {0} accessible for tenant {1}'.format(host_vars, tenant))
|
||||||
|
if result_as_list:
|
||||||
|
return result
|
||||||
else:
|
else:
|
||||||
raise errors.AnsibleFilterError('There is no network of name {0} accessible for tenant {1}'.format(host_vars, tenant))
|
return result[0]
|
||||||
|
|
||||||
def network_id_to_name(host_vars, user, password, tenant, auth_url):
|
def network_id_to_name(host_vars, user, password, tenant, auth_url):
|
||||||
|
""" Accept one id of network or list of ids of networks and return the same
|
||||||
|
structure, but ids replaced by name of the network(s). """
|
||||||
auth = identity.Password(auth_url=auth_url, username=user,
|
auth = identity.Password(auth_url=auth_url, username=user,
|
||||||
password=password, tenant_name=tenant)
|
password=password, tenant_name=tenant)
|
||||||
sess = session.Session(auth=auth)
|
sess = session.Session(auth=auth)
|
||||||
token = auth.get_token(sess)
|
token = auth.get_token(sess)
|
||||||
endpoint = auth.get_endpoint(sess, service_name='neutron', service_type='network')
|
endpoint = auth.get_endpoint(sess, service_name='neutron', service_type='network')
|
||||||
neutron = NeutronClient('2.0', endpoint_url=endpoint, token=token)
|
neutron = NeutronClient('2.0', endpoint_url=endpoint, token=token)
|
||||||
networks = neutron.list_networks(id=host_vars, fields='name')["networks"]
|
result_as_list = isinstance(host_vars, list)
|
||||||
if networks:
|
if not result_as_list:
|
||||||
return networks[0]['name']
|
host_vars = [host_vars]
|
||||||
|
result = []
|
||||||
|
for net in host_vars:
|
||||||
|
networks = neutron.list_networks(id=net, fields='name')["networks"]
|
||||||
|
if networks:
|
||||||
|
result += [networks[0]['name']]
|
||||||
|
else:
|
||||||
|
raise errors.AnsibleFilterError('There is no network of id {0} accessible for tenant {1}'.format(host_vars, tenant))
|
||||||
|
if result_as_list:
|
||||||
|
return result
|
||||||
else:
|
else:
|
||||||
raise errors.AnsibleFilterError('There is no network of id {0} accessible for tenant {1}'.format(host_vars, tenant))
|
return result[0]
|
||||||
|
|
||||||
class FilterModule (object):
|
class FilterModule (object):
|
||||||
def filters(self):
|
def filters(self):
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
---
|
---
|
||||||
instance_type: m1.xlarge
|
instance_type: m1.xlarge
|
||||||
image: "{{ f20_qcow_id }}"
|
#image: "{{ f20_qcow_id }}"
|
||||||
keypair: fedora-admin-20130801
|
image: "Fedora-Cloud-Base-20141203-21"
|
||||||
|
keypair: msuchy
|
||||||
security_group: web-80-anywhere-persistent,web-443-anywhere-persistent,ssh-anywhere-persistent,default
|
security_group: web-80-anywhere-persistent,web-443-anywhere-persistent,ssh-anywhere-persistent,default
|
||||||
zone: nova
|
zone: nova
|
||||||
hostbase: copr-be-dev-
|
hostbase: copr-be-dev-
|
||||||
public_ip: 209.132.184.179
|
public_ip: 209.132.184.53
|
||||||
root_auth_users: bkabrda msuchy tradej pingou vgologuz
|
root_auth_users: bkabrda msuchy tradej pingou vgologuz
|
||||||
description: copr dispatcher and repo server - dev instance
|
description: copr dispatcher and repo server - dev instance
|
||||||
tcp_ports: ['22', '80', '443']
|
tcp_ports: ['22', '80', '443']
|
||||||
|
@ -14,6 +15,9 @@ volumes: [ {volume_id: 'b41e4d70-8f76-44b5-ab24-d91f02ae0afa', device: '/dev/vdc
|
||||||
inventory_tenant: persistent
|
inventory_tenant: persistent
|
||||||
# name of machine in OpenStack
|
# name of machine in OpenStack
|
||||||
inventory_instance_name: copr-be-dev
|
inventory_instance_name: copr-be-dev
|
||||||
|
cloud_networks:
|
||||||
|
- net-id: persistent-net
|
||||||
|
- net-id: copr-net
|
||||||
|
|
||||||
# Copr vars
|
# Copr vars
|
||||||
copr_hostbase: copr-be-dev
|
copr_hostbase: copr-be-dev
|
||||||
|
|
|
@ -190,13 +190,14 @@ rawhide-composer.phx2.fedoraproject.org
|
||||||
[composers-stg]
|
[composers-stg]
|
||||||
composer.stg.phx2.fedoraproject.org
|
composer.stg.phx2.fedoraproject.org
|
||||||
|
|
||||||
# sign servers don't listen to ssh by default.
|
|
||||||
[sign-bridge]
|
[sign-bridge]
|
||||||
sign-bridge01.phx2.fedoraproject.org
|
sign-bridge01.phx2.fedoraproject.org
|
||||||
#
|
#
|
||||||
|
# sign vault servers don't listen to ssh by default.
|
||||||
|
#
|
||||||
[sign-vault]
|
[sign-vault]
|
||||||
#sign-vault03.phx2.fedoraproject.org
|
sign-vault03.phx2.fedoraproject.org
|
||||||
sign-vault04.phx2.fedoraproject.org
|
#sign-vault04.phx2.fedoraproject.org
|
||||||
|
|
||||||
[autosign]
|
[autosign]
|
||||||
autosign01.phx2.fedoraproject.org
|
autosign01.phx2.fedoraproject.org
|
||||||
|
@ -750,6 +751,10 @@ koschei.cloud.fedoraproject.org
|
||||||
# copr keygen instance
|
# copr keygen instance
|
||||||
copr-keygen.cloud.fedoraproject.org
|
copr-keygen.cloud.fedoraproject.org
|
||||||
|
|
||||||
|
[new-cloud-experiments]
|
||||||
|
209.132.184.53
|
||||||
|
copr-be-dev.cloud.fedoraproject.org
|
||||||
|
|
||||||
[jenkins-slaves]
|
[jenkins-slaves]
|
||||||
# EL-6 builder
|
# EL-6 builder
|
||||||
209.132.184.165
|
209.132.184.165
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
- name: check/create instance
|
- name: check/create instance
|
||||||
hosts: 209.132.184.49
|
hosts: copr-be-dev.cloud.fedoraproject.org
|
||||||
#hosts: copr-be-dev2.cloud.fedoraproject.org
|
#hosts: copr-be-dev2.cloud.fedoraproject.org
|
||||||
#hosts: copr-back:copr-back-stg
|
#hosts: copr-back:copr-back-stg
|
||||||
#hosts: copr-back-stg
|
#hosts: copr-back-stg
|
||||||
user: fedora
|
user: fedora
|
||||||
sudo: True
|
sudo: True
|
||||||
#user: root
|
#user: root
|
||||||
gather_facts: True
|
gather_facts: False
|
||||||
# gather_facts: False
|
# gather_facts: False
|
||||||
|
|
||||||
vars_files:
|
vars_files:
|
||||||
|
@ -32,12 +32,12 @@
|
||||||
# - include: "{{ tasks }}/persistent_cloud.yml"
|
# - include: "{{ tasks }}/persistent_cloud.yml"
|
||||||
|
|
||||||
# DEBUG OTHER
|
# DEBUG OTHER
|
||||||
#- include: "{{ tasks }}/persistent_cloud_new.yml"
|
- include: "{{ tasks }}/persistent_cloud_new.yml"
|
||||||
- include: "{{ tasks }}/growroot_cloud.yml"
|
- include: "{{ tasks }}/growroot_cloud.yml"
|
||||||
- debug: msg="root auth users {{root_auth_users}}"
|
- debug: msg="root auth users {{root_auth_users}}"
|
||||||
|
|
||||||
- name: cloud basic setup
|
- name: cloud basic setup
|
||||||
hosts: 209.132.184.49
|
hosts: 209.132.184.53
|
||||||
#hosts: copr-be-dev2.cloud.fedoraproject.org
|
#hosts: copr-be-dev2.cloud.fedoraproject.org
|
||||||
#hosts: copr-back:copr-back-stg
|
#hosts: copr-back:copr-back-stg
|
||||||
#hosts: copr-back-stg
|
#hosts: copr-back-stg
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
shell: "hostname {{copr_hostbase}}.cloud.fedoraproject.org"
|
shell: "hostname {{copr_hostbase}}.cloud.fedoraproject.org"
|
||||||
|
|
||||||
- name: provision instance
|
- name: provision instance
|
||||||
hosts: 209.132.184.49
|
hosts: 209.132.184.53
|
||||||
#hosts: copr-be-dev2.cloud.fedoraproject.org
|
#hosts: copr-be-dev2.cloud.fedoraproject.org
|
||||||
#hosts: copr-back:copr-back-stg
|
#hosts: copr-back:copr-back-stg
|
||||||
#hosts: copr-back-stg
|
#hosts: copr-back-stg
|
||||||
|
|
|
@ -55,8 +55,10 @@ bodhi_server: {{ bodhi_server }}
|
||||||
## URL of ResultsDB server API interface, which can store all test results
|
## URL of ResultsDB server API interface, which can store all test results
|
||||||
resultsdb_server: {{ resultsdb_server }}
|
resultsdb_server: {{ resultsdb_server }}
|
||||||
|
|
||||||
|
{% if deployment_type == 'dev' %}
|
||||||
## URL of ExecDB server API interface, which tracks task execution status
|
## URL of ExecDB server API interface, which tracks task execution status
|
||||||
execdb_server: {{ execdb_server }}
|
execdb_server: {{ execdb_server }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
## URL of taskotron buildmaster
|
## URL of taskotron buildmaster
|
||||||
taskotron_master: {{ taskotron_master }}
|
taskotron_master: {{ taskotron_master }}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
# OS_TENANT_ID
|
# OS_TENANT_ID
|
||||||
# OS_TENANT_NAME
|
# OS_TENANT_NAME
|
||||||
|
|
||||||
- debug: msg="Auth {{OS_AUTH_URL}} {{OS_TENANT_NAME}} {{OS_USERNAME}}"
|
#- debug: msg="Auth {{OS_AUTH_URL}} {{OS_TENANT_NAME}} {{OS_USERNAME}}"
|
||||||
|
|
||||||
# To use direct `nova` commands construct _OS_AUTH_OPTS as:
|
# To use direct `nova` commands construct _OS_AUTH_OPTS as:
|
||||||
# --os-auth-url {{OS_AUTH_URL}} --os-username {{OS_USERNAME}} --os-password {{OS_PASSWORD}} --os-tenant-name {{OS_TENANT_NAME}} --os-tenant-id {{OS_TENANT_ID}}
|
# --os-auth-url {{OS_AUTH_URL}} --os-username {{OS_USERNAME}} --os-password {{OS_PASSWORD}} --os-tenant-name {{OS_TENANT_NAME}} --os-tenant-id {{OS_TENANT_ID}}
|
||||||
|
@ -40,12 +40,12 @@
|
||||||
login_password: "{{ADMIN_PASS}}"
|
login_password: "{{ADMIN_PASS}}"
|
||||||
login_tenant_name: "{{inventory_tenant}}"
|
login_tenant_name: "{{inventory_tenant}}"
|
||||||
name: "{{inventory_instance_name}}"
|
name: "{{inventory_instance_name}}"
|
||||||
image_id: "{{ image }}"
|
image_id: "{{ image|image_name_to_id('admin', ADMIN_PASS, inventory_tenant, os_auth_url) }}"
|
||||||
wait_for: 300
|
wait_for: 300
|
||||||
flavor_id: "{{ instance_type|flavor_name_to_id('admin', ADMIN_PASS, inventory_tenant, os_auth_url) }}
|
flavor_id: "{{ instance_type|flavor_name_to_id('admin', ADMIN_PASS, inventory_tenant, os_auth_url) }}"
|
||||||
security_groups: "{{security_group}}"
|
security_groups: "{{security_group}}"
|
||||||
key_name: "{{ keypair }}"
|
key_name: "{{ keypair }}"
|
||||||
nics: "{{ cloud_networks }}"
|
nics: "{{ cloud_networks|network_name_to_id('admin', ADMIN_PASS, inventory_tenant, os_auth_url) }}"
|
||||||
# floating_ip_pools: "{{ floating_ip_pools }}"
|
# floating_ip_pools: "{{ floating_ip_pools }}"
|
||||||
floating_ips:
|
floating_ips:
|
||||||
- "{{public_ip}}"
|
- "{{public_ip}}"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue