Entfernt puppet
							parent
							
								
									1fd4949ddc
								
							
						
					
					
						commit
						f2b0c32733
					
				|  | @ -1,436 +0,0 @@ | ||||||
| # Agent: sudo puppet agent --test |  | ||||||
| 
 |  | ||||||
| class odoo { |  | ||||||
| 
 |  | ||||||
|     class { 'sudo': |  | ||||||
|       purge               => false, |  | ||||||
|       config_file_replace => false, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 	user { odoo: |  | ||||||
| 		ensure => present, |  | ||||||
| 		shell => '/bin/bash', |  | ||||||
| 		managehome => 'true', |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
|     $sudo_entry="odoo ALL=NOPASSWD: ALL" |  | ||||||
|     sudo::conf { 'sudo_odoo': |  | ||||||
|         priority => 10, |  | ||||||
|         content  => $sudo_entry, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     ssh_authorized_key { "andreas@datenpol": |  | ||||||
|         user => odoo, |  | ||||||
|         type => 'ssh-rsa', |  | ||||||
|         key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDBIg6NZV4tTs+J5qUP4/zQAn+Xi3muKqbaSDV8yYm50mH77PcLwbkZVlxdF0/OFCl5f5FCNp4Ag4Px97M35Nv+BweOTCZNMKOHmvtXY1fCRUQnk6ca3NlipImppL0U47SUzt9KkNIsz0FWxLu74LANgxKwrf8Hgim8Nkq8WrlvuoJCqf+542N15cGrf/9eD6yRm7AmdFi7VIYrP4m7TPbXJBGX+cXOo0bKTyaq8mtinbUN5UCi/eJ08wYkm/CGVxL+9cm6HOABw332A8OadAliCZBWqhFT0rBKdoWLxBbTsILALskrddpKLwBLOUIU79YeT0OfNpLCnVi8u67X9inl', |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     sshkey { "gitlab.datenpol.at": |  | ||||||
|         ensure => present, |  | ||||||
|         type => "rsa", |  | ||||||
|         key  => "AAAAB3NzaC1yc2EAAAABIwAAAQEA06iMjK8mfl0MYClE91ilueqOA4Kx394xLZ4bJHFYUdalySAIPLJPQbtfO2cAjSDqJaq+lvCGdDyzQ8L+ZnNIhWea1FNA/QBHBSZEzsKsUPXUiL1gb0RUdPIgr24NJ4gQlLVf5SBRYPXv/JRE80TwEa7st1vkNiBzY+wt2IsLeEr+ekq0YufaODUxMfrHoAbqM4izdlWS9KVSWXdtnaFLnvYuY0d7nU9id8+ZSdLFzLrzIVuPRLVaRg00TYlxyUfLnyhKP+74GAtX9IG+yOwbzXONEjQYXsz6Ivhe6Z+fnWUrtAqyCvlvQxWXPgLNf3tCH9gnXXr3psjzNWpZDTGo6w==" |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     file { '/etc/ssh/ssh_known_hosts': |  | ||||||
|       ensure => file, |  | ||||||
|       owner  => 'root', |  | ||||||
|       group  => 'root', |  | ||||||
|       mode   => '0644', |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     class { 'postgresql::server': |  | ||||||
|         listen_addresses           => '*', |  | ||||||
|         locale => 'de_AT.UTF-8', |  | ||||||
|         encoding => 'UTF8', |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|   file { "/var/log/odoo": |  | ||||||
|       owner => 'root', |  | ||||||
|       group => 'root', |  | ||||||
|       mode  => '0777', |  | ||||||
|       ensure  => "directory", |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|     package { ['antiword', |  | ||||||
|                         'bzr', |  | ||||||
|                         'git', |  | ||||||
|                         'nginx', |  | ||||||
|                         'ntp', |  | ||||||
|                         'poppler-utils', |  | ||||||
|                         'postgresql', |  | ||||||
|                         'python-dateutil', |  | ||||||
|                         'python-decorator', |  | ||||||
|                         'python-docutils', |  | ||||||
|                         'python-egenix-mxdatetime', |  | ||||||
|                         'python-feedparser', |  | ||||||
|                         'python-gevent', |  | ||||||
|                         'python-imaging', |  | ||||||
|                         'python-jinja2', |  | ||||||
|                         'python-ldap', |  | ||||||
|                         'python-libxslt1', |  | ||||||
|                         'python-lxml', |  | ||||||
|                         'python-mako', |  | ||||||
|                         'python-matplotlib', |  | ||||||
|                         'python-mock', |  | ||||||
|                         'python-openid', |  | ||||||
|                         'python-openssl', |  | ||||||
|                         'python-paramiko', |  | ||||||
|                         'python-pdftools', |  | ||||||
|                         'python-pip', |  | ||||||
|                         'python-psutil', |  | ||||||
|                         'python-psycopg2', |  | ||||||
|                         #'python-pybabel', |  | ||||||
|                         'python-pychart', |  | ||||||
|                         'python-pydot', |  | ||||||
|                         'python-pyparsing', |  | ||||||
|                         #'python-pypdf', |  | ||||||
|                         'python-reportlab-accel', |  | ||||||
|                         'python-reportlab', |  | ||||||
|                        # 'python-requests', ist bei debian version 0.12.1 => daher install mit pip |  | ||||||
|                         'python-setuptools', |  | ||||||
|                         'python-simplejson', |  | ||||||
|                         'python-tz', |  | ||||||
|                         'python-unittest2', |  | ||||||
|                         #'python-vatnumber', |  | ||||||
|                         'python-vobject', |  | ||||||
|                         'python-webdav', |  | ||||||
|                         'python-werkzeug', |  | ||||||
|                         'python-xlwt', |  | ||||||
|                         'python-yaml', |  | ||||||
|                         'python-zsi', |  | ||||||
|                         'wget', |  | ||||||
|                         # für wkhtmltox |  | ||||||
|                         'xfonts-base', |  | ||||||
|                         'xfonts-75dpi', |  | ||||||
|                         'node-less', |  | ||||||
|                         'libxslt-dev', # lxml |  | ||||||
|                         'libxml2-dev', # lxml |  | ||||||
|                         'lib32z1-dev'. # lxml |  | ||||||
|                         'libldap2-dev', #ldap |  | ||||||
|                         'libsasl2-dev', #ldap |  | ||||||
|                         ]: |  | ||||||
|                 ensure => present, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     exec { "/usr/bin/wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb": |  | ||||||
|         alias => "wkhtmltox", |  | ||||||
|         cwd => "/tmp", |  | ||||||
|         creates => '/tmp/wkhtmltox-0.12.1_linux-trusty-amd64.deb' |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     file { "wkthmltox": |  | ||||||
| 		name => "/tmp/wkhtmltox-0.12.1_linux-trusty-amd64.deb", |  | ||||||
| 		owner => root, |  | ||||||
| 		group => root, |  | ||||||
|         ensure => present, |  | ||||||
|         alias => "wkhtmltox", |  | ||||||
|         require => Exec["wkhtmltox"] } |  | ||||||
| 
 |  | ||||||
|     package { 'wkhtmltox': |  | ||||||
|         provider => dpkg, |  | ||||||
|         ensure => installed, |  | ||||||
|         source => "/tmp/wkhtmltox-0.12.1_linux-trusty-amd64.deb", |  | ||||||
|         require => [FILE['wkhtmltox'],Package['xfonts-base']], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     package {['passlib', |  | ||||||
|               'psycogreen', |  | ||||||
|               'gdata', |  | ||||||
|               'requests', |  | ||||||
|               'vatnumber', |  | ||||||
|               'xlsxwriter', |  | ||||||
|               'ofxparse', |  | ||||||
|               'babel', |  | ||||||
|               'pypdf', |  | ||||||
|               ]: |  | ||||||
|         ensure   => installed, |  | ||||||
|         provider => 'pip', |  | ||||||
|         require => Package['python-pip'], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     # Update python lib distribute if required ("sudo easy_install -U distribute") |  | ||||||
|     $upg_cmd = "sudo easy_install -U distribute" |  | ||||||
|     $unless_upg_cmd = "sudo pip freeze | grep distribute==0.7" |  | ||||||
|     exec { 'upgrade_distribute': |  | ||||||
|         command => $upg_cmd, |  | ||||||
|         unless  => $unless_upg_cmd, |  | ||||||
|         path    => ['/bin', '/sbin', '/usr/bin', '/usr/sbin'], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     # TODO, benötigt: "sudo easy_install -U distribute" |  | ||||||
|     package {'gevent_psycopg2': |  | ||||||
|         ensure   => present, |  | ||||||
|         provider => 'pip', |  | ||||||
|         require => [Package['python-pip'],Package['python-psycopg2'],Exec['upgrade_distribute'], Class['postgresql::server']], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     # main directory for odoo backups |  | ||||||
| 	file { "/var/pgdump": |  | ||||||
| 	    owner => 'root', |  | ||||||
| 	    group => 'root', |  | ||||||
| 	    mode  => '0777', |  | ||||||
| 	    ensure => "directory", |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	# Default nginx file (prevent default server) REQUIRES SSL-key!!! |  | ||||||
|     # Conf file |  | ||||||
|     file { "/etc/nginx/conf.d/default.conf": |  | ||||||
|         owner => 'www-data', |  | ||||||
|         group => 'www-data', |  | ||||||
|         mode  => '0600', |  | ||||||
|         ensure  => present, |  | ||||||
|         content => template('odoo/default.nginx.erb'), |  | ||||||
|         notify => Service['nginx'], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 	# NGINX SSL |  | ||||||
|   	file { "/etc/nginx/ssl": |  | ||||||
|       	owner => 'www-data', |  | ||||||
|       	group => 'www-data', |  | ||||||
|       	mode  => '0700', |  | ||||||
| 		ensure => "directory", |  | ||||||
| 		require => Package['nginx'], |  | ||||||
| 		notify => Service['nginx'], |  | ||||||
|   	} |  | ||||||
| 
 |  | ||||||
|   	# Delete Default Server |  | ||||||
|   	file { "/etc/nginx/sites-enabled/default": |  | ||||||
| 		ensure => "absent", |  | ||||||
| 		require => Package['nginx'], |  | ||||||
| 		notify => Service['nginx'], |  | ||||||
|   	} |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| define odoo::instance ($db_pw,$ssl = false, $servername, $odooport, $odooport_longpolling, $gitrepo, $gitbranch) { |  | ||||||
|     $instance = $title |  | ||||||
| 
 |  | ||||||
|     include odoo |  | ||||||
| 
 |  | ||||||
| 	user {$instance: |  | ||||||
| 		ensure => present, |  | ||||||
| 		groups => ["sudo"], |  | ||||||
| 		shell => '/bin/bash', |  | ||||||
| 		managehome => 'true', |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	$key_andreas="andreas@$instance" |  | ||||||
|     ssh_authorized_key { $key_andreas: |  | ||||||
|         user => $instance, |  | ||||||
|         type => 'ssh-rsa', |  | ||||||
|         key => 'AAAAB3NzaC1yc2EAAAADAQABAAABAQDBIg6NZV4tTs+J5qUP4/zQAn+Xi3muKqbaSDV8yYm50mH77PcLwbkZVlxdF0/OFCl5f5FCNp4Ag4Px97M35Nv+BweOTCZNMKOHmvtXY1fCRUQnk6ca3NlipImppL0U47SUzt9KkNIsz0FWxLu74LANgxKwrf8Hgim8Nkq8WrlvuoJCqf+542N15cGrf/9eD6yRm7AmdFi7VIYrP4m7TPbXJBGX+cXOo0bKTyaq8mtinbUN5UCi/eJ08wYkm/CGVxL+9cm6HOABw332A8OadAliCZBWqhFT0rBKdoWLxBbTsILALskrddpKLwBLOUIU79YeT0OfNpLCnVi8u67X9inl', |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     ssh_keygen { $instance: } |  | ||||||
| 
 |  | ||||||
|     $sudo_entry="$instance ALL = (root) NOPASSWD: /etc/init.d/odoo-server-$instance, /usr/sbin/service odoo-server-$instance *" |  | ||||||
|     sudo::conf { $instance: |  | ||||||
|         priority => 10, |  | ||||||
|         content  => $sudo_entry, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     # Logfile |  | ||||||
|     file { "/var/log/odoo/$instance": |  | ||||||
|         owner => $instance, |  | ||||||
|         group => $instance, |  | ||||||
|         mode  => '0700', |  | ||||||
|         ensure => "directory", |  | ||||||
|         #require  => file['/var/log/odoo'], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     file { "/home/$instance/logs": |  | ||||||
|         ensure => "link", |  | ||||||
|         owner => $instance, |  | ||||||
|         group => $instance, |  | ||||||
|         mode  => '0600', |  | ||||||
|         target => "/var/log/odoo/$instance/odoo-server.log", |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     $require_log = "file[/var/log/odoo/$instance]" |  | ||||||
|     file { "/var/log/odoo/$instance/odoo-server.log": |  | ||||||
|         owner => $instance, |  | ||||||
|         group => $instance, |  | ||||||
|         mode  => '0600', |  | ||||||
|         ensure  => present, |  | ||||||
|         require  => $require_log, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 	$logrotate_file = "/etc/logrotate.d/odoo-$instance" |  | ||||||
| 	file { $logrotate_file: |  | ||||||
|         owner => 'root', |  | ||||||
|         group => 'root', |  | ||||||
|         mode  => '0644', |  | ||||||
|         ensure  => present, |  | ||||||
| 		content => template('odoo/logrotate.erb'), |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	# init file |  | ||||||
| 	# sudo ln -s /opt/odoo/odoo/config/odoo-server.init /etc/init.d/odoo-server |  | ||||||
|     $init_odoo_notify = "Service[odoo-server-$instance]" |  | ||||||
|   	file { "/etc/init.d/odoo-server-$instance": |  | ||||||
|       	owner => $instance, |  | ||||||
|       	group => $instance, |  | ||||||
|       	mode  => '0755', |  | ||||||
| 		ensure  => present, |  | ||||||
| 		content => template('odoo/odoo-server.init.erb'), |  | ||||||
|         notify => $init_odoo_notify, |  | ||||||
|   	} |  | ||||||
| 
 |  | ||||||
|   file { "/home/$instance/restart.sh": |  | ||||||
|       owner => $instance, |  | ||||||
|       group => $instance, |  | ||||||
|       mode  => '0755', |  | ||||||
|       ensure  => present, |  | ||||||
|       content => template('odoo/restart.sh.erb'), |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   file { "/home/$instance/update-source.sh": |  | ||||||
|       owner => $instance, |  | ||||||
|       group => $instance, |  | ||||||
|       mode  => '0755', |  | ||||||
|       ensure  => present, |  | ||||||
|       content => template('odoo/update-source.sh.erb'), |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|     $gitdir="/home/$instance/ext" |  | ||||||
|     $giturl="ssh://git@gitlab.datenpol.at:122/odoo/$gitrepo.git"$gituser="$instance" |  | ||||||
|     vcsrepo { $gitdir: |  | ||||||
|       ensure   => present, |  | ||||||
|       provider => git, |  | ||||||
|       source   => $giturl, |  | ||||||
|       revision => $gitbranch, |  | ||||||
|       user => $instance, |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 	file { "/home/$instance/config": |  | ||||||
| 	    owner => $instance, |  | ||||||
| 	    group => $instance, |  | ||||||
| 	    mode  => '0700', |  | ||||||
| 	    ensure => "directory", |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
|       # Odoo config |  | ||||||
|       file { "/home/$instance/config/odoo-server.conf": |  | ||||||
|           owner => $instance, |  | ||||||
|           group => $instance, |  | ||||||
|           mode  => '0700', |  | ||||||
|           ensure  => present, |  | ||||||
|           content => template('odoo/odoo-server.conf.erb'), |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
| #    file { "/home/$instance/ext.git": |  | ||||||
| #        owner => $instance, |  | ||||||
| #        group => $instance, |  | ||||||
| #        mode  => '0600', |  | ||||||
| #		ensure => "directory", |  | ||||||
| #		recurse => true, |  | ||||||
| #		require => Package[git], |  | ||||||
| #    } |  | ||||||
| 
 |  | ||||||
| #	file { "/home/$instance/ext": |  | ||||||
| #	    owner => $instance, |  | ||||||
| #	    group => $instance, |  | ||||||
| #	    mode  => '0700', |  | ||||||
| #	    ensure => "directory", |  | ||||||
| #	} |  | ||||||
| 
 |  | ||||||
| #    $git_requires = "File[/home/$instance/ext.git]" |  | ||||||
| #    $git_create_cmd = "sudo -u $instance git init --bare /home/$instance/ext.git" |  | ||||||
| #    $git_unless_cmd = "sudo -u $instance test -e /home/$instance/ext.git/HEAD" |  | ||||||
| #    $git_repo = "git_repo_$instance" |  | ||||||
| #    exec { $git_repo: |  | ||||||
| #        command => $git_create_cmd, |  | ||||||
| #        unless  => $git_unless_cmd, |  | ||||||
| #        path    => ['/bin', '/sbin', '/usr/bin', '/usr/sbin'], |  | ||||||
| #        require => $git_requires, |  | ||||||
| #    } |  | ||||||
| 
 |  | ||||||
| # file { "/home/$instance/ext.git/hooks/post-receive": |  | ||||||
| #      owner => $instance, |  | ||||||
| #      group => $instance, |  | ||||||
| #      mode  => '0700', |  | ||||||
| #      ensure  => present, |  | ||||||
| #      content => "#!/bin/bash |  | ||||||
| #git --work-tree=/home/$instance/ext --git-dir=/home/$instance/ext.git checkout -f", |  | ||||||
| #      require => Exec[$git_repo], |  | ||||||
| #  } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|       # backup |  | ||||||
|       file { "/home/$instance/odoo-backup.sh": |  | ||||||
|           owner => $instance, |  | ||||||
|           group => $instance, |  | ||||||
|           mode  => '0700', |  | ||||||
|           ensure  => present, |  | ||||||
|           content => template('odoo/odoo-backup.sh.erb'), |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
| 	$cron_cmd = "/home/$instance/odoo-backup.sh" |  | ||||||
| 	$cron_require = "file[/home/$instance/odoo-backup.sh]" |  | ||||||
| 	$odoo_backup = "odoo-backup-$instance" |  | ||||||
| 	cron { $odoo_backup: |  | ||||||
| 		command => $cron_cmd, |  | ||||||
| 		user    => $instance, |  | ||||||
| 		hour    => 1, |  | ||||||
| 		minute  => 30, |  | ||||||
| 		require => $cron_require, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| 	# dictionaly for odoo backups |  | ||||||
|   	file { "/var/pgdump/$instance": |  | ||||||
|       	owner => $instance, |  | ||||||
|       	group => $instance, |  | ||||||
|       	mode  => '0700', |  | ||||||
| 	ensure => "directory", |  | ||||||
|   	} |  | ||||||
| 
 |  | ||||||
| 	$odoo_service = "odoo-server-$instance" |  | ||||||
| 	$odoo_service_req = "file[/etc/init.d/odoo-server-$instance]" |  | ||||||
| 	# Run server |  | ||||||
| 	service {$odoo_service: |  | ||||||
| 		ensure => running, |  | ||||||
| 		require => $odoo_service_req, |  | ||||||
| 		enable => true, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
|     # Postgresql User |  | ||||||
|     # sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true |  | ||||||
|     postgresql::server::role { "$instance": |  | ||||||
|         password_hash => postgresql_password($instance, $db_pw), |  | ||||||
|         createdb  => true, |  | ||||||
|         #require => Exec['utf8 postgres'], |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     # NGINX |  | ||||||
| 	# Run server |  | ||||||
| 	service {'nginx': |  | ||||||
| 		ensure => running, |  | ||||||
| 		require => Package['nginx'], |  | ||||||
| 		enable => true, |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
|     if str2bool("$ssl") { |  | ||||||
|         $key_file_test = "test -e /etc/nginx/ssl/$instance.key" |  | ||||||
|         $key_file_cmd = "sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/nginx/ssl/$instance.key -out /etc/nginx/ssl/$instance.crt -subj \"/C=AT/ST=Vienna/L=Vienna/O=Security/OU=IT-Department/CN=dummy\"" |  | ||||||
|         $certname = "ssl_cert_$instance" |  | ||||||
|         exec { $certname: |  | ||||||
|             command => $key_file_cmd, |  | ||||||
|             unless  => $key_file_test, |  | ||||||
|             path    => ['/bin', '/sbin', '/usr/bin', '/usr/sbin'], |  | ||||||
|             notify => Service['nginx'], |  | ||||||
|             require => [Package[nginx], File['/etc/nginx/ssl']], |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     # Conf file |  | ||||||
|     file { "/etc/nginx/conf.d/odoo-$instance.conf": |  | ||||||
|         owner => 'www-data', |  | ||||||
|         group => 'www-data', |  | ||||||
|         mode  => '0600', |  | ||||||
|         ensure  => present, |  | ||||||
|         content => template('odoo/odoo.nginx.erb'), |  | ||||||
|         require => Package[nginx], |  | ||||||
|         notify => Service['nginx'], |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
|  | @ -1,19 +0,0 @@ | ||||||
| server { |  | ||||||
|     listen         80 default_server; |  | ||||||
|     return 444; |  | ||||||
|     server_name _; |  | ||||||
| } |  | ||||||
|   |  | ||||||
| 
 |  | ||||||
| #server { |  | ||||||
| #    listen 443 ssl default_server; |  | ||||||
| #    return 444; |  | ||||||
| #    server_name _; |  | ||||||
| 
 |  | ||||||
| 	# THIS IS REQUIRED FOR SSL!!!! |  | ||||||
|     #ssl_certificate     /etc/nginx/ssl/camadeus.at.crt; |  | ||||||
|     #ssl_certificate_key /etc/nginx/ssl/camadeus.at.key; |  | ||||||
|     #ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2; |  | ||||||
|     #ssl_ciphers         HIGH:!aNULL:!MD5; |  | ||||||
| 
 |  | ||||||
| #} |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| /var/log/odoo/<%= @instance %>/*.log { |  | ||||||
|     copytruncate |  | ||||||
|     missingok |  | ||||||
|     notifempty |  | ||||||
|     size 5M |  | ||||||
|     rotate 10 |  | ||||||
| } |  | ||||||
|  | @ -1,33 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| #dump the OpenERP DB (postgreSQL) |  | ||||||
| #author: Camadeus GmbH |  | ||||||
| 
 |  | ||||||
| hostname=`/bin/hostname` |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| dbnames=`psql -d postgres -c "SELECT datname FROM pg_database WHERE NOT datistemplate AND datname <> 'postgres' AND datname like '<%= @instance %>%'" --tuples-only` |  | ||||||
| 
 |  | ||||||
| # Dump DBs |  | ||||||
| for db in $dbnames |  | ||||||
| do |  | ||||||
|  echo "creating backup for db: " $db |  | ||||||
|  date=`date +"%Y%m%d_%H%M%N"` |  | ||||||
|  filename="/var/pgdump/<%= @instance %>/${hostname}_${db}_${date}.sql" |  | ||||||
|  pg_dump -E UTF-8 -F p -b -f $filename $db |  | ||||||
|  chmod 600 $filename |  | ||||||
|  gzip $filename  |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| ########################################## |  | ||||||
| ## Housekeeping |  | ||||||
| ########################################## |  | ||||||
| for file in `find /var/pgdump/<%= @instance %> -mtime +30 -type f -name '*.sql.gz'` |  | ||||||
| do |  | ||||||
|  echo "deleting: " $file |  | ||||||
|  rm $file |  | ||||||
| done |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| exit 0 |  | ||||||
| 
 |  | ||||||
|  | @ -1,34 +0,0 @@ | ||||||
| [options] |  | ||||||
| addons_path = ~/ext/ext/custom-addons,~/ext/ext/odoo/addons,~/ext/ext/enterprise-addons |  | ||||||
| admin_passwd = 9f8TTx34kk23 |  | ||||||
| 
 |  | ||||||
| db_host = False |  | ||||||
| db_name = False |  | ||||||
| db_password = False |  | ||||||
| db_port = False |  | ||||||
| db_user = False |  | ||||||
| 
 |  | ||||||
| proxy_mode = True |  | ||||||
| 
 |  | ||||||
| debug_mode = False |  | ||||||
| list_db = True |  | ||||||
| log_level = info |  | ||||||
| 
 |  | ||||||
| #max_cron_threads = 1 |  | ||||||
| workers = 0 |  | ||||||
| 
 |  | ||||||
| xmlrpc_interface = 127.0.0.1 |  | ||||||
| timezone = Europe/Brussels |  | ||||||
| 
 |  | ||||||
| # 5 min |  | ||||||
| #limit_time_cpu  = 300 |  | ||||||
| # 10 min |  | ||||||
| #limit_time_real = 600 |  | ||||||
| 
 |  | ||||||
| # input DMI: |  | ||||||
| limit_time_cpu  = 3000 |  | ||||||
| limit_time_real = 6000 |  | ||||||
| 
 |  | ||||||
| # if DB > 150MB, otherwise "AccessDenied" error occurs |  | ||||||
| # 10 GB |  | ||||||
| limit_memory_hard = 10000000000 |  | ||||||
|  | @ -1,91 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| 
 |  | ||||||
| ### BEGIN INIT INFO |  | ||||||
| # Provides:             odoo-server-<%= @instance %> |  | ||||||
| # Required-Start:       $remote_fs $syslog |  | ||||||
| # Required-Stop:        $remote_fs $syslog |  | ||||||
| # Should-Start:         $network |  | ||||||
| # Should-Stop:          $network |  | ||||||
| # Default-Start:        2 3 4 5 |  | ||||||
| # Default-Stop:         0 1 6 |  | ||||||
| # Short-Description:    Enterprise Resource Management software |  | ||||||
| # Description:          Open ERP is a complete ERP and CRM software. |  | ||||||
| ### END INIT INFO |  | ||||||
| 
 |  | ||||||
| PATH=/bin:/sbin:/usr/bin:/usr/local/bin |  | ||||||
| DAEMON=/home/<%= @instance %>/ext/ext/odoo/odoo-bin |  | ||||||
| NAME=odoo-server-<%= @instance %> |  | ||||||
| DESC=odoo-server-<%= @instance %> |  | ||||||
| WORKING_DIR=/home/<%= @instance %>/ext/ext/odoo |  | ||||||
| 
 |  | ||||||
| FILTER="^<%= @instance %>" |  | ||||||
| # Specify the user name (Default: openerp). |  | ||||||
| USER=<%= @instance %> |  | ||||||
| 
 |  | ||||||
| # Specify an alternate config file (Default: /etc/openerp-server.conf). |  | ||||||
| CONFIGFILE="/home/<%= @instance %>/config/odoo-server.conf" |  | ||||||
| 
 |  | ||||||
| PIDFILE=/var/run/$NAME.pid |  | ||||||
| LOGFILE=/var/log/odoo/<%= @instance %>/odoo-server.log |  | ||||||
| 
 |  | ||||||
| # Additional options that are passed to the Daemon. |  | ||||||
| DAEMON_OPTS="-c $CONFIGFILE --db-filter $FILTER --xmlrpc-port <%= @odooport %> --longpolling-port <%= @odooport_longpolling %> --logfile $LOGFILE" |  | ||||||
| 
 |  | ||||||
| [ -x $DAEMON ] || exit 0 |  | ||||||
| [ -f $CONFIGFILE ] || exit 0 |  | ||||||
| 
 |  | ||||||
| checkpid() { |  | ||||||
|     [ -f $PIDFILE ] || return 1 |  | ||||||
|     pid=`cat $PIDFILE` |  | ||||||
|     [ -d /proc/$pid ] && return 0 |  | ||||||
|     return 1 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| # Required, otherwise there are problems with sudoers-File, |  | ||||||
| # see file "Odoo_sudo_Startup_Error_20510316.odt" on Share |  | ||||||
| export LOGNAME=<%= @instance %> |  | ||||||
| 
 |  | ||||||
| case "${1}" in |  | ||||||
|         start) |  | ||||||
|                 echo -n "Starting ${DESC}: " |  | ||||||
| 
 |  | ||||||
|                 start-stop-daemon --start --quiet --pidfile ${PIDFILE} \ |  | ||||||
|                         --chuid ${USER} --background --make-pidfile \ |  | ||||||
|                         --exec ${DAEMON} -d $WORKING_DIR -- ${DAEMON_OPTS} |  | ||||||
| 
 |  | ||||||
|                 echo "${NAME}." |  | ||||||
|                 ;; |  | ||||||
| 
 |  | ||||||
|         stop) |  | ||||||
|                 echo -n "Stopping ${DESC}: " |  | ||||||
| 
 |  | ||||||
|                 start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \ |  | ||||||
|                         --oknodo |  | ||||||
| 
 |  | ||||||
|                 echo "${NAME}." |  | ||||||
|                 ;; |  | ||||||
| 
 |  | ||||||
|         restart|force-reload) |  | ||||||
|                 echo -n "Restarting ${DESC}: " |  | ||||||
| 
 |  | ||||||
|                 start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \ |  | ||||||
|                         --oknodo |  | ||||||
| 
 |  | ||||||
|                 sleep 1 |  | ||||||
| 
 |  | ||||||
|                 start-stop-daemon --start --quiet --pidfile ${PIDFILE} \ |  | ||||||
|                         --chuid ${USER} --background --make-pidfile \ |  | ||||||
|                         --exec ${DAEMON} -d $WORKING_DIR -- ${DAEMON_OPTS} |  | ||||||
| 
 |  | ||||||
|                 echo "${NAME}." |  | ||||||
|                 ;; |  | ||||||
| 
 |  | ||||||
|         *) |  | ||||||
|                 N=/etc/init.d/${NAME} |  | ||||||
|                 echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2 |  | ||||||
|                 exit 1 |  | ||||||
|                 ;; |  | ||||||
| esac |  | ||||||
| 
 |  | ||||||
| exit 0 |  | ||||||
| 
 |  | ||||||
|  | @ -1,89 +0,0 @@ | ||||||
| <% if @ssl == true %>    |  | ||||||
| server { |  | ||||||
|     listen         80; |  | ||||||
|     server_name   <%= @servername %>; |  | ||||||
|     return 301 https://$host$request_uri; |  | ||||||
| } |  | ||||||
| <% end %>    |  | ||||||
| 
 |  | ||||||
| # Should be higher for DMI! |  | ||||||
| upstream odoo-server-<%= @instance %> { |  | ||||||
|     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 { |  | ||||||
| 		<% if @ssl == true %>    |  | ||||||
|     listen 443 ssl; |  | ||||||
| 		<% else %> |  | ||||||
| 		listen      80; |  | ||||||
| 		<% end %> |  | ||||||
| 
 |  | ||||||
|     server_name   <%= @servername %>; |  | ||||||
| 
 |  | ||||||
|     # Specifies the maximum accepted body size of a client request, |  | ||||||
|     # as indicated by the request header Content-Length. |  | ||||||
|     client_max_body_size 200m; |  | ||||||
| 
 |  | ||||||
|     # log files |  | ||||||
|     access_log    /var/log/nginx/odoo-access-<%= @instance %>.log; |  | ||||||
|     error_log    /var/log/nginx/odoo-error-<%= @instance %>.log; |  | ||||||
| 
 |  | ||||||
|     # increase proxy buffer to handle some OpenERP web requests |  | ||||||
|     proxy_buffers 16 64k; |  | ||||||
|     proxy_buffer_size 128k; |  | ||||||
| 
 |  | ||||||
| 	<% if @ssl == true %> |  | ||||||
|     # SSL config |  | ||||||
|     ssl_protocols       SSLv3 TLSv1 TLSv1.1 TLSv1.2; |  | ||||||
|     ssl_ciphers         HIGH:!aNULL:!MD5;	 |  | ||||||
|      |  | ||||||
| 	   <% if @servername =~ /.*datenpol.at$/ %> |  | ||||||
|     ssl_certificate     /etc/nginx/ssl/datenpol.at.crt; |  | ||||||
|     ssl_certificate_key /etc/nginx/ssl/datenpol.at.key; |  | ||||||
| 	   <% else %> |  | ||||||
|     ssl_certificate     /etc/nginx/ssl/<%= @instance %>.crt; |  | ||||||
|     ssl_certificate_key /etc/nginx/ssl/<%= @instance %>.key; |  | ||||||
|         <% end %> |  | ||||||
| 	<% end %> |  | ||||||
| 
 |  | ||||||
|     location / { |  | ||||||
|         proxy_pass    http://odoo-server-<%= @instance %>; |  | ||||||
|         # force timeouts if the backend dies |  | ||||||
|         proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; |  | ||||||
|         proxy_read_timeout 300s; |  | ||||||
|          |  | ||||||
|         # set headers |  | ||||||
|         proxy_set_header Host $host; |  | ||||||
|         proxy_set_header X-Real-IP $remote_addr; |  | ||||||
|         proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; |  | ||||||
| 
 |  | ||||||
|         # Let the OpenERP web service know that we're using HTTPS, otherwise |  | ||||||
|         # it will generate URL using http:// and not https:// |  | ||||||
|         # proxy_set_header X-Forwarded-Proto https; |  | ||||||
| 
 |  | ||||||
|         # by default, do not forward anything |  | ||||||
|         proxy_redirect off; |  | ||||||
| 
 |  | ||||||
|         location /longpollling { |  | ||||||
|             proxy_pass http://odoo-server-<%= @instance %>-long; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|         # cache some static data in memory for 60mins. |  | ||||||
|         # under heavy load this should relieve stress on the OpenERP web interface a bit. |  | ||||||
|         location ~* /web/static/ { |  | ||||||
|             proxy_cache_valid 200 60m; |  | ||||||
|             proxy_buffering    on; |  | ||||||
|             expires 864000; |  | ||||||
|             proxy_pass http://odoo-server-<%= @instance %>; |  | ||||||
|         } |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
|  | @ -1,8 +0,0 @@ | ||||||
| #!/bin/sh |  | ||||||
| # info:   restart Odoo server |  | ||||||
| # author: datenpol gmbh |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| LOGFILE=deployment-history.txt |  | ||||||
| sudo /etc/init.d/odoo-server-<%= @instance %> restart |  | ||||||
| echo "Restart `date`" >> $LOGFILE |  | ||||||
|  | @ -1,9 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| # author: datenpol gmbh |  | ||||||
| 
 |  | ||||||
| LOGFILE=../deployment-history.txt |  | ||||||
| 
 |  | ||||||
| cd ext |  | ||||||
| git pull |  | ||||||
| git log --pretty=format:"%h - %an, %ad : %s" -1 >> $LOGFILE |  | ||||||
| echo "" >> $LOGFILE |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| class { 'odoo': } |  | ||||||
|  | @ -1,47 +0,0 @@ | ||||||
| #!/bin/bash |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| HOST='xxx.datenpol.at' |  | ||||||
| PORT=22 |  | ||||||
| 
 |  | ||||||
| if [ $# -lt 1 ] || [ $# -gt 1 ]; then |  | ||||||
|     echo "Usage: ./setup_server.sh <init|update>" |  | ||||||
|     exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| echo "Are you sure? [Press Y to confirm!]" |  | ||||||
| read ANSWER |  | ||||||
| 
 |  | ||||||
| if [ "$ANSWER" != "Y" ]; then |  | ||||||
|     echo "Ok, good bye!" |  | ||||||
|     exit 1 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| TYPE=$1 |  | ||||||
| USER=root |  | ||||||
| 
 |  | ||||||
| if [ "$TYPE" = "init" ]; then |  | ||||||
| 	ssh -p ${PORT} ${USER}@$HOST "apt-get update; apt-get install puppet;" |  | ||||||
| 	ssh -p ${PORT} ${USER}@${HOST} "sudo apt-get install rsync" |  | ||||||
| 	ssh -p ${PORT} ${USER}@${HOST} "sudo puppet module install puppetlabs-postgresql" |  | ||||||
| 	ssh -p ${PORT} ${USER}@${HOST} "sudo puppet module install saz-sudo" |  | ||||||
| 	ssh -p ${PORT} ${USER}@${HOST} "sudo puppet module install maestrodev-ssh_keygen" |  | ||||||
| 	ssh -p ${PORT} ${USER}@${HOST} "sudo puppet module install puppetlabs-vcsrepo" |  | ||||||
| 	ssh -p ${PORT} ${USER}@${HOST} "sudo puppet module install maestrodev-wget" |  | ||||||
| 
 |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| if [ "$TYPE" = "update" ]; then |  | ||||||
| 	USER=odoo |  | ||||||
| fi |  | ||||||
| 
 |  | ||||||
| # Copy to server |  | ||||||
| rsync -av -e "ssh -p ${PORT}" --copy-links "site.pp" "${USER}@${HOST}:/tmp/site.pp" |  | ||||||
| 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" |  | ||||||
| # 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 puppet apply /etc/puppet/manifests/site.pp" |  | ||||||
|  | @ -1,24 +0,0 @@ | ||||||
| 
 |  | ||||||
| node default { |  | ||||||
| 
 |  | ||||||
|     odoo::instance {'TODO-prod': |  | ||||||
|       db_pw => 'x54ef6t77t6ZZul3', |  | ||||||
|       ssl => true, |  | ||||||
|       servername => 'TODO.datenpol.at', |  | ||||||
|       odooport => 8069, |  | ||||||
|       odooport_longpolling => 8070, |  | ||||||
|       gitrepo => 'TODO', |  | ||||||
|       gitbranch => 'master' |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     odoo::instance {'TODO-test': |  | ||||||
|       db_pw => '9fd87sdfXXdfTs', |  | ||||||
|       ssl => true, |  | ||||||
|       servername => 'TODO.datenpol.at', |  | ||||||
|       odooport => 8169, |  | ||||||
|       odooport_longpolling => 8170, |  | ||||||
|       gitrepo => 'TODO', |  | ||||||
|       gitbranch => 'develop' |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
| } |  | ||||||
		Loading…
	
		Reference in New Issue