csscorp / openstack-automation Goto Github PK
View Code? Open in Web Editor NEWOpenstack deployment using saltstack
License: GNU General Public License v2.0
Openstack deployment using saltstack
License: GNU General Public License v2.0
Are these states actually being used? I was able to get this working, but there were several sls errors that I had to fix.
or is it different in debian and ubuntu ?
(I have a fix I can pull request)
I'm working on my slides for OSCON http://www.oscon.com/oscon2014/ and would love to promote this repo and the developers working on it. Would that be ok with CSSCorp? Have a logo or other info I can add.
Thanks, Yazz
Something like nova.controller_compute_combined so nova can be removed in controller pillar and nova.compute_kvm can be replaced by nova.controller_compute_combined in compute pillar.
Hi
Is this support installation of newer than icehouse?
I saw icehouse as the example version in README
After some tweaking for debian (will do a pull request shortly) I get a working highstate. Only exception is the following:
ID: glance_sync
Function: cmd.run
Name: glance-manage db_sync
Result: False
Comment: Command "glance-manage db_sync" run
Changes:
----------
pid:
2958
retcode:
1
stderr:
2014-06-19 14:47:12.420 2959 INFO glance.db.sqlalchemy.migration [-] Upgrading database to version latest
2014-06-19 14:47:12.434 2959 INFO migrate.versioning.api [-] 13 -> 14...
2014-06-19 14:47:12.437 2959 CRITICAL glance [-] `images`
2014-06-19 14:47:12.437 2959 TRACE glance Traceback (most recent call last):
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/bin/glance-manage", line 10, in <module>
2014-06-19 14:47:12.437 2959 TRACE glance sys.exit(main())
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/glance/cmd/manage.py", line 127, in main
2014-06-19 14:47:12.437 2959 TRACE glance CONF.command.func()
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/glance/cmd/manage.py", line 77, in do_db_sync
2014-06-19 14:47:12.437 2959 TRACE glance CONF.command.current_version)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/glance/db/sqlalchemy/migration.py", line 122, in db_sync
2014-06-19 14:47:12.437 2959 TRACE glance upgrade(version=version)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/glance/db/sqlalchemy/migration.py", line 61, in upgrade
2014-06-19 14:47:12.437 2959 TRACE glance return versioning_api.upgrade(sql_connection, repo_path, version)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 186, in upgrade
2014-06-19 14:47:12.437 2959 TRACE glance return _migrate(url, repository, version, upgrade=True, err=err, **opts)
2014-06-19 14:47:12.437 2959 TRACE glance File "<string>", line 2, in _migrate
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/migrate/versioning/util/__init__.py", line 159, in with_en
gine
2014-06-19 14:47:12.437 2959 TRACE glance return f(*a, **kw)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/migrate/versioning/api.py", line 366, in _migrate
2014-06-19 14:47:12.437 2959 TRACE glance schema.runchange(ver, change, changeset.step)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py", line 91, in runchange
2014-06-19 14:47:12.437 2959 TRACE glance change.run(self.engine, step)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", line 145, in run
2014-06-19 14:47:12.437 2959 TRACE glance script_func(engine)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/glance/db/sqlalchemy/migrate_repo/versions/014_add_image_t
ags_table.py", line 64, in upgrade
2014-06-19 14:47:12.437 2959 TRACE glance tables = [define_image_tags_table(meta)]
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/glance/db/sqlalchemy/migrate_repo/versions/014_add_image_t
ags_table.py", line 23, in define_image_tags_table
2014-06-19 14:47:12.437 2959 TRACE glance schema.Table('images', meta, autoload=True)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 318, in __new__
2014-06-19 14:47:12.437 2959 TRACE glance table._init(name, metadata, *args, **kw)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 381, in _init
2014-06-19 14:47:12.437 2959 TRACE glance self._autoload(metadata, autoload_with, include_columns)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 408, in _autoload
2014-06-19 14:47:12.437 2959 TRACE glance self, include_columns, exclude_columns
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2426, in run_callable
2014-06-19 14:47:12.437 2959 TRACE glance return conn.run_callable(callable_, *args, **kwargs)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 1969, in run_callable
2014-06-19 14:47:12.437 2959 TRACE glance return callable_(self, *args, **kwargs)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 260, in reflecttable
2014-06-19 14:47:12.437 2959 TRACE glance return insp.reflecttable(table, include_columns, exclude_columns)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/reflection.py", line 350, in reflecttabl
e
2014-06-19 14:47:12.437 2959 TRACE glance tbl_opts = self.get_table_options(table_name, schema, **table.kwargs)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/reflection.py", line 178, in get_table_options
2014-06-19 14:47:12.437 2959 TRACE glance **kw)
2014-06-19 14:47:12.437 2959 TRACE glance File "<string>", line 1, in <lambda>
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/reflection.py", line 47, in cache
2014-06-19 14:47:12.437 2959 TRACE glance ret = fn(self, con, *args, **kw)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 2057, in get_table_options
2014-06-19 14:47:12.437 2959 TRACE glance parsed_state = self._parsed_state_or_create(connection, table_name, schema, **kw)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 2156, in _parsed_state_or_create
2014-06-19 14:47:12.437 2959 TRACE glance info_cache=kw.get('info_cache', None)
2014-06-19 14:47:12.437 2959 TRACE glance File "<string>", line 1, in <lambda>
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/reflection.py", line 47, in cache
2014-06-19 14:47:12.437 2959 TRACE glance ret = fn(self, con, *args, **kw)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 2181, in _setup_parser
2014-06-19 14:47:12.437 2959 TRACE glance full_name=full_name)
2014-06-19 14:47:12.437 2959 TRACE glance File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 2268, in _show_create_table
2014-06-19 14:47:12.437 2959 TRACE glance raise exc.NoSuchTableError(full_name)
2014-06-19 14:47:12.437 2959 TRACE glance NoSuchTableError: `images`
2014-06-19 14:47:12.437 2959 TRACE glance
stdout:
Went back to the install manual http://docs.openstack.org/havana/install-guide/install/apt/content/glance-install.html dropped the database and re-created from the instructions there. And the db_sync worked.
Would it be because the mysql handling is different between ubuntu and debian ? Any ideas why this would fail ?
(if we start using theses states in production I might contribute this if no one has since I posted this ticket)
Do you have any plans to support an icehouse (next version of havana) installation ?
I see there are empty cinder.sls any plans on implementing this ?
I might give it a shot soon.
salt-call --local neutron.delete_subnet profile=virl flat1
[INFO ] Executing command '/sbin/zfs help' in directory '/home/virl'
[INFO ] Executing command '/sbin/zfs help' in directory '/home/virl'
[INFO ] Starting new HTTP connection (1): 127.0.0.1
[ERROR ] calling with args ('flat1',)
[ERROR ] calling with kwargs {'profile': 'virl'}
Passed invalid arguments: delete_subnet() got an unexpected keyword argument 'profile'
Hi All,
The repo has been lacking activity from my side for quiet some time now. The following changes will be made to this project.
The changes mentioned above shall first be made in https://github.com/Akilesh1597/openstack-automation , tested and then merged here.
Thank you and please do leave a comment for your suggestions
I believe s/ini/ini_manage/
Has ini_manage been integrated in salt ? http://docs.saltstack.com/en/latest/ref/states/all/salt.states.ini_manage.html If so, maybe it could be removed from _modules to avoid code duplication ?
As discussed in cloudbase/salt-openstack#4 (comment) the https://github.com/cloudbase/salt-openstack/ project looks very similar to what is being done here and it would be a shame to duplicate the work.
It would be great to see the two projects share states and code (if possible).
Why did you decide to write salt states in JSON / Jinja format?
JSON doesn't allow for comments and such. Its really not a great choice for configuration files that a human has to edit.
Would it be possible to change the license for this project?
It is important to use Apache 2 license in order to get our code contributed to the OpenStack and SaltStack community. They will not accept code with GPL license.
Can you please revise the license from GPL to Apache2? Here are the steps to do this: http://www.apache.org/dev/apply-license.html#new
Reference: #43
file '/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini' has a key named 'local_ip' giving the host name of the machine here renders the setup useless.
Work around is to manually find the host name of the machine where neutron-ovs-plugin is installed and edit the corresponding config files cached in the master in the location
'file_root/config/<cluster_name>/<machine_name>/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini' and set the local_ip key to the machines ip address.
Here almost default config file: http://paste.ubuntu.com/7125446/
Here is venus ps axf: http://paste.ubuntu.com/7125460/
Here is mercury ps axf: http://paste.ubuntu.com/7125464/
I tried to add one more tunnel, and it freezes too:
$ sudo ovs-vsctl add-br br-int1
Both venus and mercury are vm's with fresh Ubuntu-12.04.4
Openstack_Icehouse/pillar/openstack_cluster.sls and Openstack_Icehouse/pillar/openstack_cluster_inverse.sls could be moved to .example files and then .gitignore could include these files. In the README you would instruct to copy both these files and then edit them.
Hopefully one can use gitfs http://salt.readthedocs.org/en/v2014.1.4/topics/tutorials/gitfs.html?highlight=gitfs to use these pillars and states, it would be nice to document how to set it up (if possible).
I would like to run everything one one server with just a eth0 interface.
I run into three issues:
Any tips? :)
The following step in neutron/ml2.sls fails when run twice
----------
ID: intergrationg_bridge
Function: cmd.run
Name: ovs-vsctl add-br br-int
Result: False
Comment: Command "ovs-vsctl add-br br-int" run
Changes:
----------
pid:
16413
retcode:
1
stderr:
ovs-vsctl: cannot create a bridge named br-int because a bridge named br-int already exists
stdout:
It should check if the bridge is already configured (and configured according to the spec) and not do anything if it is.
using dashboard-ssl.conf and dashboard-ssl-redirect.conf (port 80 redirects to port 443) by default would be nice
Hi there,
you're stating nowhere what's the license on this project. Not even
"this is licensed under the same term's as (OpenStack||SaltStack)"
(which would be Apache Public License in both cases).
As far as I know this means it's "All Rights reserved" as this is the
default under most jurisdictions and this is probably not what's
intended here.
Regards, Florian
PS: I took a quick look on your neutron-module but I guess I can't
use it until the license is clear.
First off, am glad there is some activity on the project, looking forward to re-using this for our next openstack deployment.
It would be nice to have a release cycle on openstack-automation, some versionning would enable users to see some sort of changelog and keep track of what is planned and what works for which version.
config files pushed from master are owned by root. so services fail to start as they do not have permission.
Hello,
Really nice work. Thank you.
I am trying to test the automatically deployment of openstack using salt but I receive an error:
On one of the minion:
root@hawk:~# salt-call state.highstate -l debug
the message is:
local:
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.7/salt/state.py", line 2349, in call_highstate
top = self.get_top()
File "/usr/lib/pymodules/python2.7/salt/state.py", line 1926, in get_top
tops = self.get_tops()
File "/usr/lib/pymodules/python2.7/salt/state.py", line 1809, in get_tops
env=env
File "/usr/lib/pymodules/python2.7/salt/template.py", line 69, in compile_template
ret = render(input_data, env, sls, **render_kwargs)
File "/usr/lib/pymodules/python2.7/salt/renderers/jinja.py", line 42, in render
tmp_data.get('data', 'Unknown render error in jinja renderer')
SaltRenderError: Jinja variable 'dict object' has no attribute 'install'; line 2
havana:
{% for cluster_component in pillar['install'] %} <======================
{% for server in pillar[cluster_component] %}
{{ server }}:
{% for sls in pillar['install'][cluster_component] %}
- {{ sls }}
{% endfor %}
[...]
On the salt-master I configured:
file_roots:
base:
- /srv/salt/
havana:
- /srv/havana/file
pillar_roots:
base:
- /srv/pillar
havana:
- /srv/havana/pillar
The project I put in /srv/havana
Thanks a lot,
Gabriel
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.