Odoo Setup NEU
							parent
							
								
									86cb264579
								
							
						
					
					
						commit
						121fadb715
					
				|  | @ -84,7 +84,6 @@ def main(): | ||||||
|             'create_db', |             'create_db', | ||||||
|             'login', |             'login', | ||||||
|             'install_module_sale', |             'install_module_sale', | ||||||
|             #'setup_accounting', |  | ||||||
|             'set_admin_rights', |             'set_admin_rights', | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|  | @ -100,9 +99,8 @@ def main(): | ||||||
| 
 | 
 | ||||||
|     setup_methods = [ |     setup_methods = [ | ||||||
|         'login', |         'login', | ||||||
|         'uninstall_chat', |  | ||||||
|         'install_modules', |         'install_modules', | ||||||
|         'set_warehouse', |         #'set_warehouse', | ||||||
|         #'base_config', |         #'base_config', | ||||||
|         #'sale_config', |         #'sale_config', | ||||||
|         #'finance_config', |         #'finance_config', | ||||||
|  | @ -114,9 +112,9 @@ def main(): | ||||||
|         #'purchase_config', |         #'purchase_config', | ||||||
|         'set_date_format', |         'set_date_format', | ||||||
|         'set_company', |         'set_company', | ||||||
|         'set_taxes', |         #'set_taxes', | ||||||
|         'set_uom', |         #'set_uom', | ||||||
|         'set_steuerzuordnung', |         #'set_steuerzuordnung', | ||||||
|         #'setup_journals', |         #'setup_journals', | ||||||
|         'set_currencies', |         'set_currencies', | ||||||
|         'set_decimal_price', |         'set_decimal_price', | ||||||
|  |  | ||||||
|  | @ -202,37 +202,34 @@ class Config(): | ||||||
|             'document', |             'document', | ||||||
|             'knowledge', |             'knowledge', | ||||||
|             'auth_crypt', |             'auth_crypt', | ||||||
|             'cam_testenv', |             'auth_admin_passkey', | ||||||
|             'cam_max_width', |             'auth_brute_force', | ||||||
|             'oerp_no_phoning_home', |             'auth_session_timeout', | ||||||
|             'cam_custom', |             'disable_odoo_online', | ||||||
|             'cam_reports', |             'mass_editing', | ||||||
|  |             'password_security', | ||||||
|  |             'res_config_settings_enterprise_remove', | ||||||
|  |             'scheduler_error_mailer', | ||||||
|  |             'web_dialog_size', | ||||||
|  |             'web_environment_ribbon', | ||||||
|  |             'web_favicon', | ||||||
|  |             'web_responsive', | ||||||
|  |             'web_searchbar_full_width', | ||||||
|  |             'web_sheet_full_width', | ||||||
|  |             'web_shortcut', | ||||||
|  |             'web_translate_dialog', | ||||||
|  |             'web_tree_many2one_clickable', | ||||||
|  |             #'website_no_crawler', | ||||||
|  |             #'website_odoo_debranding', | ||||||
|  |             'dp_custom', | ||||||
|  |             'dp_reports', | ||||||
|             'account_cancel', |             'account_cancel', | ||||||
|             'cam_invoice_skonto', |  | ||||||
|             'web_printscreen_zb', |  | ||||||
|             'crm', |  | ||||||
|             'sale', |  | ||||||
|             'mail_follower_control', |  | ||||||
|             #'cam_hr_overtime', |  | ||||||
|             #'cam_hr', |  | ||||||
|             #'sale_order_optional', |  | ||||||
|             #'sale_order_reminder', |  | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|         # Setze das Feld "Attachment" im Report (wenn gesetzt wird das PDF in den Anhängen gespeichert) |         # Setze das Feld "Attachment" im Report (wenn gesetzt wird das PDF in den Anhängen gespeichert) | ||||||
|         timestamp = " + '_' +  time.strftime('%Y-%m-%d-%H%M') + '.pdf')" |         timestamp = " + '_' +  time.strftime('%Y-%m-%d-%H%M') + '.pdf')" | ||||||
|         self.reports = { |         self.reports = { | ||||||
|             'sale.report_saleorder': "((object.state in ('draft','sent') and 'KV_' or 'AB_') + object.name" + timestamp, |             'sale.report_saleorder': "((object.state in ('draft','sent') and 'KV_' or 'AB_') + object.name" + timestamp, | ||||||
|             'cam_reports.report_saleorder_ohne': "((object.state in ('draft','sent') and 'KV_' or 'AB_') + object.name" + timestamp, |  | ||||||
|             'cam_reports.report_porto_anforderung': "('PV_' + object.name " + timestamp, |  | ||||||
|             'cam_reports.report_porto_anforderung_ohne': "('PV_' + object.name " + timestamp, |  | ||||||
|             'account.report_invoice': "(object.state in ('open','paid')) and ('RE_'+(object.number or '').replace('/','')" + timestamp, |  | ||||||
|             'cam_reports.report_invoices_ohne': "(object.state in ('open','paid')) and ('RE_'+(object.number or '').replace('/','')" + timestamp, |  | ||||||
|             'cam_reports.report_porto_rechnung': "(object.state in ('open','paid')) and ('RE_'+(object.number or '').replace('/','')" + timestamp, |  | ||||||
|             'cam_reports.report_porto_rechnung_ohne': "(object.state in ('open','paid')) and ('RE_'+(object.number or '').replace('/','')" + timestamp, |  | ||||||
|             'purchase.report_purchasequotation':  "('AN_' + object.name" + timestamp, |  | ||||||
|             'purchase.report_purchaseorder': "('B_' + object.name" + timestamp, |  | ||||||
|             'cam_reports.report_purchaseorder_ohne': "('B_' + object.name" + timestamp, |  | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         self.users_file = 'res.users.csv' |         self.users_file = 'res.users.csv' | ||||||
|  | @ -245,17 +242,17 @@ class Config(): | ||||||
|                                   ] |                                   ] | ||||||
| 
 | 
 | ||||||
|         self.default_values = [   # ir.values |         self.default_values = [   # ir.values | ||||||
|             ('product.template', 'type', 'service'), |             #('product.template', 'type', 'service'), | ||||||
|             ('product.template', 'type', 'XML:xmlid'),    #mit prefix "XML:" kann eine XML ID übergeben werden |             #('product.template', 'type', 'XML:xmlid'),    #mit prefix "XML:" kann eine XML ID übergeben werden | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|         self.data_updates = { |         self.data_updates = { | ||||||
|             'mrp.route_warehouse0_manufacture': {'name': 'Produzieren'}, |             #'mrp.route_warehouse0_manufacture': {'name': 'Produzieren'}, | ||||||
|             'purchase.route_warehouse0_buy': {'name': 'Einkaufen'}, |             #'purchase.route_warehouse0_buy': {'name': 'Einkaufen'}, | ||||||
|             'stock.route_warehouse0_mto': {'name': 'Beschaffe von Auftrag'}, |             #'stock.route_warehouse0_mto': {'name': 'Beschaffe von Auftrag'}, | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         self.system_parameters = { |         self.system_parameters = { | ||||||
|             'ir_attachment.location': 'db', # [db] oder [file] |             'ir_attachment.location': 'file', # [db] oder [file] | ||||||
|             'database.expiration_date': '2038-01-19', |             'database.expiration_date': '2038-01-19', | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -155,8 +155,6 @@ class DatenpolFunctions(): | ||||||
|                 'grouping': '[3,3]', |                 'grouping': '[3,3]', | ||||||
|             } |             } | ||||||
|             self._execute('res.lang', 'write', lang_ids, vals) |             self._execute('res.lang', 'write', lang_ids, vals) | ||||||
|         else: |  | ||||||
|             return False |  | ||||||
| 
 | 
 | ||||||
|         return True |         return True | ||||||
| 
 | 
 | ||||||
|  | @ -414,15 +412,6 @@ class DatenpolFunctions(): | ||||||
| 
 | 
 | ||||||
|         return True |         return True | ||||||
| 
 | 
 | ||||||
|     def uninstall_chat(self): |  | ||||||
|         """Chat-Modul deinstallieren""" |  | ||||||
| 
 |  | ||||||
|         modules = ['im_chat', 'im_odoo_support', 'bus'] |  | ||||||
|         modules_to_install = self._execute('ir.module.module', 'search', [('name', 'in', modules)]) |  | ||||||
|         self._execute('ir.module.module', 'button_uninstall', modules_to_install) |  | ||||||
|         self._execute('base.module.upgrade', 'upgrade_module', modules_to_install) |  | ||||||
|         return True |  | ||||||
| 
 |  | ||||||
|     def set_uom(self): |     def set_uom(self): | ||||||
|         """Mengeneinheiten setzen""" |         """Mengeneinheiten setzen""" | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -19,7 +19,7 @@ class odoo { | ||||||
|         content  => $sudo_entry, |         content  => $sudo_entry, | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     ssh_authorized_key { "andreas@camadeus": |     ssh_authorized_key { "andreas@datenpol": | ||||||
|         user => odoo, |         user => odoo, | ||||||
|         type => 'ssh-rsa', |         type => 'ssh-rsa', | ||||||
|         key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDBIg6NZV4tTs+J5qUP4/zQAn+Xi3muKqbaSDV8yYm50mH77PcLwbkZVlxdF0/OFCl5f5FCNp4Ag4Px97M35Nv+BweOTCZNMKOHmvtXY1fCRUQnk6ca3NlipImppL0U47SUzt9KkNIsz0FWxLu74LANgxKwrf8Hgim8Nkq8WrlvuoJCqf+542N15cGrf/9eD6yRm7AmdFi7VIYrP4m7TPbXJBGX+cXOo0bKTyaq8mtinbUN5UCi/eJ08wYkm/CGVxL+9cm6HOABw332A8OadAliCZBWqhFT0rBKdoWLxBbTsILALskrddpKLwBLOUIU79YeT0OfNpLCnVi8u67X9inl', |         key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDBIg6NZV4tTs+J5qUP4/zQAn+Xi3muKqbaSDV8yYm50mH77PcLwbkZVlxdF0/OFCl5f5FCNp4Ag4Px97M35Nv+BweOTCZNMKOHmvtXY1fCRUQnk6ca3NlipImppL0U47SUzt9KkNIsz0FWxLu74LANgxKwrf8Hgim8Nkq8WrlvuoJCqf+542N15cGrf/9eD6yRm7AmdFi7VIYrP4m7TPbXJBGX+cXOo0bKTyaq8mtinbUN5UCi/eJ08wYkm/CGVxL+9cm6HOABw332A8OadAliCZBWqhFT0rBKdoWLxBbTsILALskrddpKLwBLOUIU79YeT0OfNpLCnVi8u67X9inl', | ||||||
|  | @ -79,11 +79,11 @@ class odoo { | ||||||
|                         'python-pip', |                         'python-pip', | ||||||
|                         'python-psutil', |                         'python-psutil', | ||||||
|                         'python-psycopg2', |                         'python-psycopg2', | ||||||
|                         'python-pybabel', |                         #'python-pybabel', | ||||||
|                         'python-pychart', |                         'python-pychart', | ||||||
|                         'python-pydot', |                         'python-pydot', | ||||||
|                         'python-pyparsing', |                         'python-pyparsing', | ||||||
|                         'python-pypdf', |                         #'python-pypdf', | ||||||
|                         'python-reportlab-accel', |                         'python-reportlab-accel', | ||||||
|                         'python-reportlab', |                         'python-reportlab', | ||||||
|                        # 'python-requests', ist bei debian version 0.12.1 => daher install mit pip |                        # 'python-requests', ist bei debian version 0.12.1 => daher install mit pip | ||||||
|  | @ -102,43 +102,34 @@ class odoo { | ||||||
|                         # für wkhtmltox |                         # für wkhtmltox | ||||||
|                         'xfonts-base', |                         'xfonts-base', | ||||||
|                         'xfonts-75dpi', |                         'xfonts-75dpi', | ||||||
|                         'node-less' |                         'node-less', | ||||||
|  |                         'libxslt-dev', # lxml | ||||||
|  |                         'libxml2-dev', # lxml | ||||||
|  |                         'lib32z1-dev'. # lxml | ||||||
|  |                         'libldap2-dev', #ldap | ||||||
|  |                         'libsasl2-dev', #ldap | ||||||
|                         ]: |                         ]: | ||||||
|                 ensure => present, |                 ensure => present, | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     exec { "/usr/bin/wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb": |     exec { "/usr/bin/wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb": | ||||||
|         alias => "wkhtmltox", |         alias => "wkhtmltox", | ||||||
|         cwd => "/tmp", |         cwd => "/tmp", | ||||||
|         creates => '/tmp/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb' |         creates => '/tmp/wkhtmltox-0.12.1_linux-trusty-amd64.deb' | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     file { "wkthmltox": |     file { "wkthmltox": | ||||||
| 		name => "/tmp/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb", | 		name => "/tmp/wkhtmltox-0.12.1_linux-trusty-amd64.deb", | ||||||
| 		owner => root, | 		owner => root, | ||||||
| 		group => root, | 		group => root, | ||||||
|         ensure => present, |         ensure => present, | ||||||
|         alias => "wkhtmltox", |         alias => "wkhtmltox", | ||||||
|         require => Exec["wkhtmltox"] } |         require => Exec["wkhtmltox"] } | ||||||
| 
 | 
 | ||||||
| #	file { 'wkhtmltox': |  | ||||||
| #		name => "/tmp/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb", |  | ||||||
| #		owner => root, |  | ||||||
| #		group => root, |  | ||||||
| #		source => "puppet:///modules/odoo/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb" |  | ||||||
| #	} |  | ||||||
| 
 |  | ||||||
| #    wget::fetch { "wkhtmltox": |  | ||||||
| #      source      => 'http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb', |  | ||||||
| #      destination => '/tmp/', |  | ||||||
| #      timeout     => 0, |  | ||||||
| #      verbose     => true, |  | ||||||
| #    } |  | ||||||
| 
 |  | ||||||
|     package { 'wkhtmltox': |     package { 'wkhtmltox': | ||||||
|         provider => dpkg, |         provider => dpkg, | ||||||
|         ensure => installed, |         ensure => installed, | ||||||
|         source => "/tmp/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb", |         source => "/tmp/wkhtmltox-0.12.1_linux-trusty-amd64.deb", | ||||||
|         require => [FILE['wkhtmltox'],Package['xfonts-base']], |         require => [FILE['wkhtmltox'],Package['xfonts-base']], | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -148,7 +139,9 @@ class odoo { | ||||||
|               'requests', |               'requests', | ||||||
|               'vatnumber', |               'vatnumber', | ||||||
|               'xlsxwriter', |               'xlsxwriter', | ||||||
|               'ofxparse' |               'ofxparse', | ||||||
|  |               'babel', | ||||||
|  |               'pypdf', | ||||||
|               ]: |               ]: | ||||||
|         ensure   => installed, |         ensure   => installed, | ||||||
|         provider => 'pip', |         provider => 'pip', | ||||||
|  | @ -300,13 +293,13 @@ define odoo::instance ($db_pw,$ssl = false, $servername, $odooport, $odooport_lo | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|     $gitdir="/home/$instance/ext" |     $gitdir="/home/$instance/ext" | ||||||
|     $giturl="ssh://git@gitlab.datenpol.at:122/odoo/$gitrepo.git" |     $giturl="ssh://git@gitlab.datenpol.at:122/odoo/$gitrepo.git"$gituser="$instance" | ||||||
|     vcsrepo { $gitdir: |     vcsrepo { $gitdir: | ||||||
|       ensure   => present, |       ensure   => present, | ||||||
|       provider => git, |       provider => git, | ||||||
|       source   => $giturl, |       source   => $giturl, | ||||||
|       revision => $gitbranch, |       revision => $gitbranch, | ||||||
|       user => 'ctba-prod' |       user => $instance, | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| 	file { "/home/$instance/config": | 	file { "/home/$instance/config": | ||||||
|  |  | ||||||
|  | @ -8,6 +8,8 @@ db_password = False | ||||||
| db_port = False | db_port = False | ||||||
| db_user = False | db_user = False | ||||||
| 
 | 
 | ||||||
|  | proxy_mode = True | ||||||
|  | 
 | ||||||
| debug_mode = False | debug_mode = False | ||||||
| list_db = True | list_db = True | ||||||
| log_level = info | log_level = info | ||||||
|  |  | ||||||
|  | @ -11,6 +11,10 @@ upstream odoo-server-<%= @instance %> { | ||||||
|     server 127.0.0.1:<%= @odooport %> fail_timeout=3000s; |     server 127.0.0.1:<%= @odooport %> fail_timeout=3000s; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | upstream odoo-server-<%= @instance %>-long { | ||||||
|  |     server 127.0.0.1:<%= @odooport_longpolling %> fail_timeout=300s; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| server { | server { | ||||||
| 		<% if @ssl == true %>    | 		<% if @ssl == true %>    | ||||||
|     listen 443 ssl; |     listen 443 ssl; | ||||||
|  | @ -37,9 +41,9 @@ server { | ||||||
|     ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2; |     ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2; | ||||||
|     ssl_ciphers         HIGH:!aNULL:!MD5;	 |     ssl_ciphers         HIGH:!aNULL:!MD5;	 | ||||||
|      |      | ||||||
| 	   <% if @servername =~ /.*camadeus.at$/ %> | 	   <% if @servername =~ /.*datenpol.at$/ %> | ||||||
|     ssl_certificate     /etc/nginx/ssl/camadeus.at.crt; |     ssl_certificate     /etc/nginx/ssl/datenpol.at.crt; | ||||||
|     ssl_certificate_key /etc/nginx/ssl/camadeus.at.key;	       |     ssl_certificate_key /etc/nginx/ssl/datenpol.at.key; | ||||||
| 	   <% else %> | 	   <% else %> | ||||||
|     ssl_certificate     /etc/nginx/ssl/<%= @instance %>.crt; |     ssl_certificate     /etc/nginx/ssl/<%= @instance %>.crt; | ||||||
|     ssl_certificate_key /etc/nginx/ssl/<%= @instance %>.key; |     ssl_certificate_key /etc/nginx/ssl/<%= @instance %>.key; | ||||||
|  | @ -63,8 +67,12 @@ server { | ||||||
| 
 | 
 | ||||||
|         # by default, do not forward anything |         # by default, do not forward anything | ||||||
|         proxy_redirect off; |         proxy_redirect off; | ||||||
|  | 
 | ||||||
|  |         location /longpollling { | ||||||
|  |             proxy_pass http://odoo-server-<%= @instance %>-long; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|         # cache some static data in memory for 60mins. |         # cache some static data in memory for 60mins. | ||||||
|         # under heavy load this should relieve stress on the OpenERP web interface a bit. |         # under heavy load this should relieve stress on the OpenERP web interface a bit. | ||||||
|         location ~* /web/static/ { |         location ~* /web/static/ { | ||||||
|  | @ -73,6 +81,9 @@ server { | ||||||
|             expires 864000; |             expires 864000; | ||||||
|             proxy_pass http://odoo-server-<%= @instance %>; |             proxy_pass http://odoo-server-<%= @instance %>; | ||||||
|         } |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| #!/bin/bash | #!/bin/bash | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| HOST='lst.datenpol.at' | HOST='xxx.datenpol.at' | ||||||
| PORT=22 | PORT=22 | ||||||
| 
 | 
 | ||||||
| if [ $# -lt 1 ] || [ $# -gt 1 ]; then | if [ $# -lt 1 ] || [ $# -gt 1 ]; then | ||||||
|  | @ -41,6 +41,7 @@ rsync -av -e "ssh -p ${PORT}" --copy-links "site.pp" "${USER}@${HOST}:/tmp/site. | ||||||
| rsync -arv -e "ssh -p ${PORT}" --copy-links "modules" "${USER}@${HOST}:/tmp" | rsync -arv -e "ssh -p ${PORT}" --copy-links "modules" "${USER}@${HOST}:/tmp" | ||||||
| 
 | 
 | ||||||
| ssh  -p ${PORT} ${USER}@${HOST} "sudo mv -f /tmp/site.pp /etc/puppet/manifests/site.pp" | ssh  -p ${PORT} ${USER}@${HOST} "sudo mv -f /tmp/site.pp /etc/puppet/manifests/site.pp" | ||||||
|  | # Achtung für Debian werden die Puppet-Module unter /etc/puppet/code/modules abgelegt | ||||||
| ssh  -p ${PORT} ${USER}@${HOST} "sudo rm -rf /etc/puppet/modules/odoo; sudo mv /tmp/modules/odoo /etc/puppet/modules; sudo rm -rf /tmp/modules" | ssh  -p ${PORT} ${USER}@${HOST} "sudo rm -rf /etc/puppet/modules/odoo; sudo mv /tmp/modules/odoo /etc/puppet/modules; sudo rm -rf /tmp/modules" | ||||||
| 
 | 
 | ||||||
| ssh  -p ${PORT} ${USER}@${HOST} "sudo puppet apply /etc/puppet/manifests/site.pp" | ssh  -p ${PORT} ${USER}@${HOST} "sudo puppet apply /etc/puppet/manifests/site.pp" | ||||||
|  |  | ||||||
|  | @ -1,7 +1,6 @@ | ||||||
| 
 | 
 | ||||||
| node default { | node default { | ||||||
| 
 | 
 | ||||||
| 	TODO |  | ||||||
|     odoo::instance {'TODO-prod': |     odoo::instance {'TODO-prod': | ||||||
|       db_pw => 'x54ef6t77t6ZZul3', |       db_pw => 'x54ef6t77t6ZZul3', | ||||||
|       ssl => true, |       ssl => true, | ||||||
|  | @ -10,7 +9,7 @@ node default { | ||||||
|       odooport_longpolling => 8070, |       odooport_longpolling => 8070, | ||||||
|       gitrepo => 'TODO', |       gitrepo => 'TODO', | ||||||
|       gitbranch => 'master' |       gitbranch => 'master' | ||||||
| 
 |     } | ||||||
| 
 | 
 | ||||||
|     odoo::instance {'TODO-test': |     odoo::instance {'TODO-test': | ||||||
|       db_pw => '9fd87sdfXXdfTs', |       db_pw => '9fd87sdfXXdfTs', | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue