commit
f904b620b3
@ -279,25 +279,77 @@ def deploy():
|
|||||||
signals.connect(cinder_puppet, cinder_volume_puppet)
|
signals.connect(cinder_puppet, cinder_volume_puppet)
|
||||||
|
|
||||||
# NOVA
|
# NOVA
|
||||||
# #nova_network_puppet = vr.create('nova_network_puppet', GitProvider(GIT_PUPPET_LIBS_URL, 'nova_network'), {'rabbitmq_user': 'guest', 'rabbitmq_password': 'guest'})[0]
|
nova_api = vr.create('nova_api', 'resources/nova_api_puppet', {})[0]
|
||||||
# # TODO: fix rabbitmq user/password
|
nova_db = vr.create('nova_db', 'resources/mariadb_db/', {
|
||||||
# nova_network_puppet = vr.create('nova_network_puppet', 'resources/nova_network_puppet', {'rabbitmq_user': 'guest', 'rabbitmq_password': 'guest'})[0]
|
'db_name': 'nova_db',
|
||||||
|
'login_user': 'root'})[0]
|
||||||
|
nova_db_user = vr.create('nova_db_user', 'resources/mariadb_user/', {
|
||||||
|
'user_name': 'nova',
|
||||||
|
'user_password': 'nova',
|
||||||
|
'login_user': 'root'})[0]
|
||||||
|
nova_keystone_user = vr.create('nova_keystone_user', 'resources/keystone_user', {
|
||||||
|
'user_name': 'nova',
|
||||||
|
'user_password': 'nova'})[0]
|
||||||
|
nova_keystone_role = vr.create('nova_keystone_role', 'resources/keystone_role', {
|
||||||
|
'role_name': 'admin'})[0]
|
||||||
|
nova_keystone_service_endpoint = vr.create('nova_keystone_service_endpoint', 'resources/keystone_service_endpoint', {
|
||||||
|
'endpoint_name': 'nova',
|
||||||
|
'adminurl': 'http://{{admin_ip}}:{{admin_port}}/v2/%(tenant_id)s',
|
||||||
|
'internalurl': 'http://{{internal_ip}}:{{internal_port}}/v2/%(tenant_id)s',
|
||||||
|
'publicurl': 'http://{{public_ip}}:{{public_port}}/v2/%(tenant_id)s',
|
||||||
|
'description': 'OpenStack Compute Service',
|
||||||
|
'type': 'compute',
|
||||||
|
'public_port': 8774,
|
||||||
|
'internal_port': 8774,
|
||||||
|
'admin_port': 8774})[0]
|
||||||
|
|
||||||
# nova_keystone_user = vr.create('nova_keystone_user', 'resources/keystone_user', {'user_name': 'nova', 'user_password': 'nova'})[0]
|
signals.connect(node1, nova_api)
|
||||||
# nova_keystone_role = vr.create('nova_keystone_role', 'resources/keystone_role', {'role_name': 'nova'})[0]
|
signals.connect(node1, nova_db)
|
||||||
|
signals.connect(node1, nova_db_user)
|
||||||
|
signals.connect(mariadb_service1, nova_db, {
|
||||||
|
'port': 'login_port',
|
||||||
|
'root_password': 'login_password',
|
||||||
|
'root_user': 'login_user',
|
||||||
|
'ip' : 'db_host'})
|
||||||
|
signals.connect(mariadb_service1, nova_db_user, {
|
||||||
|
'port': 'login_port',
|
||||||
|
'root_password': 'login_password'})
|
||||||
|
signals.connect(nova_db, nova_db_user, {'db_name', 'db_host'})
|
||||||
|
signals.connect(services_tenant, nova_keystone_user)
|
||||||
|
signals.connect(nova_keystone_user, nova_keystone_role)
|
||||||
|
signals.connect(keystone_puppet, nova_api, {
|
||||||
|
'ip': 'keystone_host',
|
||||||
|
'admin_port': 'keystone_port'})
|
||||||
|
signals.connect(nova_keystone_user, nova_api, {
|
||||||
|
'user_name': 'keystone_user_name',
|
||||||
|
'tenant_name': 'keystone_tenant_name',
|
||||||
|
'user_password': 'keystone_password'})
|
||||||
|
signals.connect(rabbitmq_service1, nova_api, {
|
||||||
|
'ip': 'rabbitmq_host'})
|
||||||
|
signals.connect(openstack_rabbitmq_user, nova_api, {
|
||||||
|
'user_name': 'rabbitmq_user',
|
||||||
|
'password': 'rabbitmq_password'})
|
||||||
|
signals.connect(keystone_puppet, nova_keystone_service_endpoint, {
|
||||||
|
'ip': 'keystone_host',
|
||||||
|
'admin_port': 'keystone_admin_port',
|
||||||
|
'admin_token': 'admin_token'})
|
||||||
|
signals.connect(mariadb_service1, nova_api, {
|
||||||
|
'ip':'db_host'})
|
||||||
|
signals.connect(nova_db_user, nova_api, {
|
||||||
|
'user_name':'db_user',
|
||||||
|
'db_name':'db_name',
|
||||||
|
'user_password':'db_password',
|
||||||
|
'db_host' : 'db_host'})
|
||||||
|
signals.connect(nova_api, nova_keystone_service_endpoint, {
|
||||||
|
'ip': ['ip', 'public_ip', 'internal_ip', 'admin_ip'],
|
||||||
|
'ssh_key': 'ssh_key',
|
||||||
|
'ssh_user': 'ssh_user'})
|
||||||
|
signals.connect(nova_api, nova_keystone_service_endpoint, {
|
||||||
|
'ip': 'ip',
|
||||||
|
'ssh_key': 'ssh_key',
|
||||||
|
'ssh_user': 'ssh_user'})
|
||||||
|
|
||||||
# TODO: 'services' tenant-id is hardcoded
|
|
||||||
# nova_keystone_service_endpoint = vr.create('nova_keystone_service_endpoint', 'resources/keystone_service_endpoint', {'adminurl': 'http://{{ip}}:{{admin_port}}/v2/services', 'internalurl': 'http://{{ip}}:{{public_port}}/v2/services', 'publicurl': 'http://{{ip}}:{{port}}/v2/services', 'description': 'OpenStack Compute Service', 'type': 'compute', 'port': 8776, 'admin_port': 8776})[0]
|
|
||||||
|
|
||||||
# signals.connect(node1, nova_network_puppet)
|
|
||||||
|
|
||||||
# signals.connect(services_tenant, nova_keystone_user)
|
|
||||||
# signals.connect(neutron_keystone_user, nova_keystone_role)
|
|
||||||
|
|
||||||
# signals.connect(nova_keystone_user, nova_network_puppet, {'user_name': 'keystone_user', 'user_password': 'keystone_password', 'tenant_name': 'keystone_tenant'})
|
|
||||||
# signals.connect(keystone_puppet, nova_network_puppet, {'ip': 'keystone_host', 'port': 'keystone_port'})
|
# signals.connect(keystone_puppet, nova_network_puppet, {'ip': 'keystone_host', 'port': 'keystone_port'})
|
||||||
|
|
||||||
# signals.connect(nova_network_puppet, nova_keystone_service_endpoint, {'ip': 'ip', 'ssh_key': 'ssh_key', 'ssh_user': 'ssh_user'})
|
|
||||||
# signals.connect(keystone_puppet, nova_keystone_service_endpoint, {'ip': 'keystone_host', 'admin_port': 'keystone_port', 'admin_token': 'admin_token'})
|
# signals.connect(keystone_puppet, nova_keystone_service_endpoint, {'ip': 'keystone_host', 'admin_port': 'keystone_port', 'admin_token': 'admin_token'})
|
||||||
# signals.connect(rabbitmq_service1, nova_network_puppet, {'ip': 'rabbitmq_host', 'port': 'rabbitmq_port'})
|
# signals.connect(rabbitmq_service1, nova_network_puppet, {'ip': 'rabbitmq_host', 'port': 'rabbitmq_port'})
|
||||||
|
|
||||||
@ -350,11 +402,12 @@ def deploy():
|
|||||||
actions.resource_action(cinder_api_puppet, 'run')
|
actions.resource_action(cinder_api_puppet, 'run')
|
||||||
actions.resource_action(cinder_scheduler_puppet, 'run')
|
actions.resource_action(cinder_scheduler_puppet, 'run')
|
||||||
actions.resource_action(cinder_volume_puppet, 'run')
|
actions.resource_action(cinder_volume_puppet, 'run')
|
||||||
# actions.resource_action(nova_keystone_user, 'run')
|
actions.resource_action(nova_db, 'run')
|
||||||
# actions.resource_action(nova_keystone_role, 'run')
|
actions.resource_action(nova_db_user, 'run')
|
||||||
|
actions.resource_action(nova_keystone_user, 'run')
|
||||||
# actions.resource_action(nova_network_puppet, 'run')
|
actions.resource_action(nova_keystone_role, 'run')
|
||||||
#actions.resource_action(nova_keystone_service_endpoint, 'run')
|
actions.resource_action(nova_api, 'run')
|
||||||
|
actions.resource_action(nova_keystone_service_endpoint, 'run')
|
||||||
|
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|
||||||
@ -364,6 +417,10 @@ def undeploy():
|
|||||||
db = get_db()
|
db = get_db()
|
||||||
|
|
||||||
to_remove = [
|
to_remove = [
|
||||||
|
'nova_db',
|
||||||
|
'nova_db_user',
|
||||||
|
'nova_keystone_service_endpoint',
|
||||||
|
'nova_api',
|
||||||
'cinder_volume_puppet',
|
'cinder_volume_puppet',
|
||||||
'cinder_scheduler_puppet',
|
'cinder_scheduler_puppet',
|
||||||
'cinder_api_puppet',
|
'cinder_api_puppet',
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
# TODO
|
|
||||||
- hosts: [{{ ip }}]
|
|
||||||
sudo: yes
|
|
||||||
tasks:
|
|
||||||
- shell: docker stop {{ name }}
|
|
||||||
- shell: docker rm {{ name }}
|
|
@ -1,6 +0,0 @@
|
|||||||
# TODO
|
|
||||||
- hosts: [{{ ip }}]
|
|
||||||
sudo: yes
|
|
||||||
tasks:
|
|
||||||
- shell: docker run -d --net="host" --privileged \
|
|
||||||
--name {{ name }} {{ image }}
|
|
@ -1,13 +0,0 @@
|
|||||||
id: nova
|
|
||||||
handler: ansible
|
|
||||||
version: 1.0.0
|
|
||||||
input:
|
|
||||||
ip:
|
|
||||||
schema: str!
|
|
||||||
value:
|
|
||||||
port:
|
|
||||||
schema: int!
|
|
||||||
value: 8774
|
|
||||||
image: # TODO
|
|
||||||
schema: str!
|
|
||||||
value:
|
|
29
resources/nova_api_puppet/actions/remove.pp
Normal file
29
resources/nova_api_puppet/actions/remove.pp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
$resource = hiera($::resource_name)
|
||||||
|
|
||||||
|
$rabbitmq_user = $resource['input']['rabbitmq_user']['value']
|
||||||
|
$rabbitmq_password = $resource['input']['rabbitmq_password']['value']
|
||||||
|
$rabbitmq_host = $resource['input']['rabbitmq_host']['value']
|
||||||
|
$db_user = $resource['input']['db_user']['value']
|
||||||
|
$db_password = $resource['input']['db_password']['value']
|
||||||
|
$db_name = $resource['input']['db_name']['value']
|
||||||
|
$db_host = $resource['input']['db_host']['value']
|
||||||
|
$keystone_password = $resource['input']['keystone_password']['value']
|
||||||
|
$keystone_host = $resource['input']['keystone_host']['value']
|
||||||
|
$keystone_port = $resource['input']['keystone_port']['value']
|
||||||
|
$keystone_tenant_name = $resource['input']['keystone_tenant_name']['value']
|
||||||
|
$keystone_user = $resource['input']['keystone_user_name']['value']
|
||||||
|
|
||||||
|
class { 'nova':
|
||||||
|
database_connection => "mysql://${db_user}:${db_password}@${db_host}/${db_name}?charset=utf8",
|
||||||
|
rabbit_userid => $rabbitmq_user,
|
||||||
|
rabbit_password => $rabbitmq_password,
|
||||||
|
rabbit_host => $rabbitmq_host,
|
||||||
|
image_service => 'nova.image.glance.GlanceImageService',
|
||||||
|
glance_api_servers => 'localhost:9292',
|
||||||
|
verbose => false,
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'nova::api':
|
||||||
|
admin_password => $keystone_password,
|
||||||
|
ensure_package => 'absent'
|
||||||
|
}
|
33
resources/nova_api_puppet/actions/run.pp
Normal file
33
resources/nova_api_puppet/actions/run.pp
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
$resource = hiera($::resource_name)
|
||||||
|
|
||||||
|
$rabbitmq_user = $resource['input']['rabbitmq_user']['value']
|
||||||
|
$rabbitmq_password = $resource['input']['rabbitmq_password']['value']
|
||||||
|
$rabbitmq_host = $resource['input']['rabbitmq_host']['value']
|
||||||
|
$db_user = $resource['input']['db_user']['value']
|
||||||
|
$db_password = $resource['input']['db_password']['value']
|
||||||
|
$db_name = $resource['input']['db_name']['value']
|
||||||
|
$db_host = $resource['input']['db_host']['value']
|
||||||
|
$keystone_password = $resource['input']['keystone_password']['value']
|
||||||
|
$keystone_host = $resource['input']['keystone_host']['value']
|
||||||
|
$keystone_port = $resource['input']['keystone_port']['value']
|
||||||
|
$keystone_tenant_name = $resource['input']['keystone_tenant_name']['value']
|
||||||
|
$keystone_user = $resource['input']['keystone_user_name']['value']
|
||||||
|
|
||||||
|
class { 'nova':
|
||||||
|
database_connection => "mysql://${db_user}:${db_password}@${db_host}/${db_name}?charset=utf8",
|
||||||
|
rabbit_userid => $rabbitmq_user,
|
||||||
|
rabbit_password => $rabbitmq_password,
|
||||||
|
rabbit_host => $rabbitmq_host,
|
||||||
|
image_service => 'nova.image.glance.GlanceImageService',
|
||||||
|
glance_api_servers => 'localhost:9292',
|
||||||
|
verbose => false,
|
||||||
|
}
|
||||||
|
|
||||||
|
class { 'nova::api':
|
||||||
|
enabled => true,
|
||||||
|
admin_user => $keystone_user,
|
||||||
|
admin_password => $keystone_password,
|
||||||
|
auth_host => $keystone_host,
|
||||||
|
auth_port => $keystone_port,
|
||||||
|
admin_tenant_name => $keystone_tenant_name,
|
||||||
|
}
|
59
resources/nova_api_puppet/meta.yaml
Normal file
59
resources/nova_api_puppet/meta.yaml
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
id: nova
|
||||||
|
handler: puppet
|
||||||
|
puppet_module: nova
|
||||||
|
version: 1.0.0
|
||||||
|
input:
|
||||||
|
db_user:
|
||||||
|
schema: str!
|
||||||
|
value: nova
|
||||||
|
db_password:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
db_name:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
db_host:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
|
||||||
|
rabbitmq_user:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
rabbitmq_password:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
rabbitmq_host:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
|
||||||
|
keystone_password:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
keystone_port:
|
||||||
|
schema: int!
|
||||||
|
value:
|
||||||
|
keystone_host:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
keystone_tenant_name:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
keystone_user_name:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
|
||||||
|
git:
|
||||||
|
schema: {repository: str!, branch: str!}
|
||||||
|
value: {repository: 'https://github.com/openstack/puppet-nova', branch: 'stable/juno'}
|
||||||
|
|
||||||
|
ip:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
ssh_key:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
ssh_user:
|
||||||
|
schema: str!
|
||||||
|
value:
|
||||||
|
|
||||||
|
tags: [resource/nova_service, resources/nova, resource/nova-api]
|
@ -2,7 +2,6 @@ $resource = hiera($::resource_name)
|
|||||||
|
|
||||||
$port = "${resource['input']['port']['value']}"
|
$port = "${resource['input']['port']['value']}"
|
||||||
$management_port = "${resource['input']['management_port']['value']}"
|
$management_port = "${resource['input']['management_port']['value']}"
|
||||||
$node_name = $resource['input']['node_name']['value']
|
|
||||||
|
|
||||||
class { '::rabbitmq':
|
class { '::rabbitmq':
|
||||||
service_manage => true,
|
service_manage => true,
|
||||||
|
@ -11,9 +11,6 @@ input:
|
|||||||
schema: str!
|
schema: str!
|
||||||
value: ''
|
value: ''
|
||||||
|
|
||||||
node_name:
|
|
||||||
schema: str!
|
|
||||||
value: 'node1'
|
|
||||||
port:
|
port:
|
||||||
schema: int!
|
schema: int!
|
||||||
value: 5672
|
value: 5672
|
||||||
|
Loading…
Reference in New Issue
Block a user