commit
f904b620b3
@ -279,25 +279,77 @@ def deploy():
|
||||
signals.connect(cinder_puppet, cinder_volume_puppet)
|
||||
|
||||
# NOVA
|
||||
# #nova_network_puppet = vr.create('nova_network_puppet', GitProvider(GIT_PUPPET_LIBS_URL, 'nova_network'), {'rabbitmq_user': 'guest', 'rabbitmq_password': 'guest'})[0]
|
||||
# # TODO: fix rabbitmq user/password
|
||||
# nova_network_puppet = vr.create('nova_network_puppet', 'resources/nova_network_puppet', {'rabbitmq_user': 'guest', 'rabbitmq_password': 'guest'})[0]
|
||||
nova_api = vr.create('nova_api', 'resources/nova_api_puppet', {})[0]
|
||||
nova_db = vr.create('nova_db', 'resources/mariadb_db/', {
|
||||
'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]
|
||||
# nova_keystone_role = vr.create('nova_keystone_role', 'resources/keystone_role', {'role_name': 'nova'})[0]
|
||||
signals.connect(node1, nova_api)
|
||||
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(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(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_scheduler_puppet, 'run')
|
||||
actions.resource_action(cinder_volume_puppet, 'run')
|
||||
# actions.resource_action(nova_keystone_user, 'run')
|
||||
# actions.resource_action(nova_keystone_role, 'run')
|
||||
|
||||
# actions.resource_action(nova_network_puppet, 'run')
|
||||
#actions.resource_action(nova_keystone_service_endpoint, 'run')
|
||||
actions.resource_action(nova_db, 'run')
|
||||
actions.resource_action(nova_db_user, 'run')
|
||||
actions.resource_action(nova_keystone_user, 'run')
|
||||
actions.resource_action(nova_keystone_role, 'run')
|
||||
actions.resource_action(nova_api, 'run')
|
||||
actions.resource_action(nova_keystone_service_endpoint, 'run')
|
||||
|
||||
time.sleep(10)
|
||||
|
||||
@ -364,6 +417,10 @@ def undeploy():
|
||||
db = get_db()
|
||||
|
||||
to_remove = [
|
||||
'nova_db',
|
||||
'nova_db_user',
|
||||
'nova_keystone_service_endpoint',
|
||||
'nova_api',
|
||||
'cinder_volume_puppet',
|
||||
'cinder_scheduler_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']}"
|
||||
$management_port = "${resource['input']['management_port']['value']}"
|
||||
$node_name = $resource['input']['node_name']['value']
|
||||
|
||||
class { '::rabbitmq':
|
||||
service_manage => true,
|
||||
|
@ -11,9 +11,6 @@ input:
|
||||
schema: str!
|
||||
value: ''
|
||||
|
||||
node_name:
|
||||
schema: str!
|
||||
value: 'node1'
|
||||
port:
|
||||
schema: int!
|
||||
value: 5672
|
||||
|
Loading…
x
Reference in New Issue
Block a user