From 1e6af11d64700328c180aaef55095123e8fb553e Mon Sep 17 00:00:00 2001 From: Nikolai Kristiansen Date: Wed, 21 Aug 2013 15:38:41 +0200 Subject: [PATCH] Partial salt-based developer environment --- README.md | 20 +- Vagrantfile | 85 ++++++ salt/minion | 418 ++++++++++++++++++++++++++++++ salt/roots/django/init.sls | 31 +++ salt/roots/nginx/init.sls | 9 + salt/roots/postgresql/init.sls | 27 ++ salt/roots/postgresql/pg_hba.conf | 101 ++++++++ salt/roots/requirements/init.sls | 1 + salt/roots/top.sls | 4 + 9 files changed, 687 insertions(+), 9 deletions(-) create mode 100644 Vagrantfile create mode 100644 salt/minion create mode 100644 salt/roots/django/init.sls create mode 100644 salt/roots/nginx/init.sls create mode 100644 salt/roots/postgresql/init.sls create mode 100644 salt/roots/postgresql/pg_hba.conf create mode 100644 salt/roots/requirements/init.sls create mode 100644 salt/roots/top.sls diff --git a/README.md b/README.md index 8aff43c..7c04984 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,22 @@ Dårlig Utrustet Studentsystem som Kommer til å Endre Norge. Installation ------------ -See http://edb.neuf.no/wiki/index.php/DUSKEN +See http://edb.neuf.no/wiki/index.php/DUSKEN for installation + +**TODO installation:** + +Download latest version of Vagrant from [http://downloads.vagrantup.com/]() and then do: + + vagrant plugin install vagrant-salt + vagrant up + vagrant ssh -`sudo apt-get install python-dev libmysqlclient-dev python-virtualenv python-pip -sudo apt-get install postgresql-server-dev-9.1 # for postgres client lib -virtualenv --distribute --no-site-packages venv # create a project specific python environment -. venv/bin/activate # active the environment -pip install -U distribute # upgrade distribute -pip install -r requirements.txt # install all requirements` Database Diagram Generation --------------------------- -`sudo apt-get install graphviz libgraphviz-dev +sudo apt-get install graphviz libgraphviz-dev pip install pygraphviz django-extensions -python manage.py graph_models -o diagramfile.png main` +python manage.py graph_models -o diagramfile.png main Generate Fixtures for Test diff --git a/Vagrantfile b/Vagrantfile new file mode 100644 index 0000000..75e55a9 --- /dev/null +++ b/Vagrantfile @@ -0,0 +1,85 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + # All Vagrant configuration is done here. The most common configuration + # options are documented and commented below. For a complete reference, + # please see the online documentation at vagrantup.com. + + # Every Vagrant virtual environment requires a box to build off of. + config.vm.box = "precise64" + + # The url from where the 'config.vm.box' box will be fetched if it + # doesn't already exist on the user's system. + config.vm.box_url = "http://files.vagrantup.com/precise64.box" + + # Create a forwarded port mapping which allows access to a specific port + # within the machine from a port on the host machine. In the example below, + # accessing "localhost:8080" will access port 80 on the guest machine. + # config.vm.network :forwarded_port, guest: 80, host: 8080 + + # Create a private network, which allows host-only access to the machine + # using a specific IP. + # config.vm.network :private_network, ip: "192.168.33.10" + + # Create a public network, which generally matched to bridged network. + # Bridged networks make the machine appear as another physical device on + # your network. + # config.vm.network :public_network + + # If true, then any SSH connections made will enable agent forwarding. + # Default value: false + # config.ssh.forward_agent = true + + # Share an additional folder to the guest VM. The first argument is + # the path on the host to the actual folder. The second argument is + # the path on the guest to mount the folder. And the optional third + # argument is a set of non-required options. + # config.vm.synced_folder "../data", "/vagrant_data" + # config.vm.synced_folder "host_src_dir, "guest_dest_dir" + config.vm.synced_folder "salt/roots/", "/srv/salt/" + + ## Use all the defaults: + config.vm.provision :salt do |salt| + + salt.minion_config = "salt/minion" + + # configuration for database + salt.pillar({ + 'database' => { + 'user' => 'postgres', + 'port' => '5432', + 'host' => 'localhost', + 'pass' => '', + 'db' => 'template0' + } + }) + + salt.run_highstate = true + + end + + # Provider-specific configuration so you can fine-tune various + # backing providers for Vagrant. These expose provider-specific options. + # Example for VirtualBox: + # + # config.vm.provider :virtualbox do |vb| + # # Don't boot with headless mode + # vb.gui = true + # + # # Use VBoxManage to customize the VM. For example to change memory: + # vb.customize ["modifyvm", :id, "--memory", "1024"] + # end + # + # View the documentation for the provider you're using for more + # information on available options. + + # Enable provisioning with Puppet stand alone. Puppet manifests + # are contained in a directory path relative to this Vagrantfile. + + # config.vm.provision :puppet do |puppet| + # puppet.manifests_path = "puppet/manifests" + # puppet.manifest_file = "init.pp" + # end + +end diff --git a/salt/minion b/salt/minion new file mode 100644 index 0000000..9edb299 --- /dev/null +++ b/salt/minion @@ -0,0 +1,418 @@ +#### Primary configuration settings ##### +########################################## + +# Per default the minion will automatically include all config files +# from minion.d/*.conf (minion.d is a directory in the same directory +# as the main minion config file). +#default_include: minion.d/*.conf + +# Set the location of the salt master server, if the master server cannot be +# resolved, then the minion will fail to start. +#master: salt + +# Set whether the minion should connect to the master via IPv6 +#ipv6: False + +# Set the number of seconds to wait before attempting to resolve +# the master hostname if name resolution fails. Defaults to 30 seconds. +# Set to zero if the minion should shutdown and not retry. +# retry_dns: 30 + +# Set the port used by the master reply and authentication server +#master_port: 4506 + +# The user to run salt +#user: root + +# Specify the location of the daemon process ID file +#pidfile: /var/run/salt-minion.pid + +# The root directory prepended to these options: pki_dir, cachedir, log_file, +# sock_dir, pidfile. +#root_dir: / + +# The directory to store the pki information in +#pki_dir: /etc/salt/pki/minion + +# Explicitly declare the id for this minion to use, if left commented the id +# will be the hostname as returned by the python call: socket.getfqdn() +# Since salt uses detached ids it is possible to run multiple minions on the +# same machine but with different ids, this can be useful for salt compute +# clusters. +#id: + +# Append a domain to a hostname in the event that it does not exist. This is +# useful for systems where socket.getfqdn() does not actually result in a +# FQDN (for instance, Solaris). +#append_domain: + +# Custom static grains for this minion can be specified here and used in SLS +# files just like all other grains. This example sets 4 custom grains, with +# the 'roles' grain having two values that can be matched against: +#grains: +# roles: +# - webserver +# - memcache +# deployment: datacenter4 +# cabinet: 13 +# cab_u: 14-15 + +# Where cache data goes +#cachedir: /var/cache/salt/minion + +# Verify and set permissions on configuration directories at startup +#verify_env: True + +# The minion can locally cache the return data from jobs sent to it, this +# can be a good way to keep track of jobs the minion has executed +# (on the minion side). By default this feature is disabled, to enable +# set cache_jobs to True +#cache_jobs: False + +# set the directory used to hold unix sockets +#sock_dir: /var/run/salt/minion + +# Set the default outputter used by the salt-call command. The default is +# "nested" +#output: nested +# +# By default output is colored, to disable colored output set the color value +# to False +#color: True + +# Backup files that are replaced by file.managed and file.recurse under +# 'cachedir'/file_backups relative to their original location and appended +# with a timestamp. The only valid setting is "minion". Disabled by default. +# +# Alternatively this can be specified for each file in state files: +# +# /etc/ssh/sshd_config: +# file.managed: +# - source: salt://ssh/sshd_config +# - backup: minion +# +#backup_mode: minion + +# When waiting for a master to accept the minion's public key, salt will +# continuously attempt to reconnect until successful. This is the time, in +# seconds, between those reconnection attempts. +#acceptance_wait_time: 10 + +# When the master-key changes, the minion will try to re-auth itself to +# receive the new master key. In larger environments this can cause a +# syn-flood on the master because all minions try to re-auth immediately. +# To prevent this and have a minion wait for a random amount of time, +# specify a value here. The wait-time will be chosen in seconds between +# 0 and the defined value. +#random_reauth_delay: 60 + +# The loop_interval sets how long in seconds the minion will wait between +# evaluating the scheduler and running cleanup tasks. This defaults to a +# sane 60 seconds, but if the minion scheduler needs to be evaluated more +# often lower this value +#loop_interval: 60 + +# When healing, a dns_check is run. This is to make sure that the originally +# resolved dns has not changed. If this is something that does not happen in +# your environment, set this value to False. +#dns_check: True + +# Windows platforms lack posix IPC and must rely on slower TCP based inter- +# process communications. Set ipc_mode to 'tcp' on such systems +#ipc_mode: ipc +# +# Overwrite the default tcp ports used by the minion when in tcp mode +#tcp_pub_port: 4510 +#tcp_pull_port: 4511 + +# The minion can include configuration from other files. To enable this, +# pass a list of paths to this option. The paths can be either relative or +# absolute; if relative, they are considered to be relative to the directory +# the main minion configuration file lives in (this file). Paths can make use +# of shell-style globbing. If no files are matched by a path passed to this +# option then the minion will log a warning message. +# +# +# Include a config file from some other path: +# include: /etc/salt/extra_config +# +# Include config from several files and directories: +# include: +# - /etc/salt/extra_config +# - /etc/roles/webserver + +##### Minion module management ##### +########################################## +# Disable specific modules. This allows the admin to limit the level of +# access the master has to the minion +#disable_modules: [cmd,test] +#disable_returners: [] +# +# Modules can be loaded from arbitrary paths. This enables the easy deployment +# of third party modules. Modules for returners and minions can be loaded. +# Specify a list of extra directories to search for minion modules and +# returners. These paths must be fully qualified! +#module_dirs: [] +#returner_dirs: [] +#states_dirs: [] +#render_dirs: [] +# +# A module provider can be statically overwritten or extended for the minion +# via the providers option, in this case the default module will be +# overwritten by the specified module. In this example the pkg module will +# be provided by the yumpkg5 module instead of the system default. +# +# providers: +# pkg: yumpkg5 +# +# Enable Cython modules searching and loading. (Default: False) +#cython_enable: False +# + +##### State Management Settings ##### +########################################### +# The state management system executes all of the state templates on the minion +# to enable more granular control of system state management. The type of +# template and serialization used for state management needs to be configured +# on the minion, the default renderer is yaml_jinja. This is a yaml file +# rendered from a jinja template, the available options are: +# yaml_jinja +# yaml_mako +# yaml_wempy +# json_jinja +# json_mako +# json_wempy +# +#renderer: yaml_jinja +# +# The failhard option tells the minions to stop immediately after the first +# failure detected in the state execution, defaults to False +#failhard: False +# +# autoload_dynamic_modules Turns on automatic loading of modules found in the +# environments on the master. This is turned on by default, to turn of +# autoloading modules when states run set this value to False +#autoload_dynamic_modules: True +# +# clean_dynamic_modules keeps the dynamic modules on the minion in sync with +# the dynamic modules on the master, this means that if a dynamic module is +# not on the master it will be deleted from the minion. By default this is +# enabled and can be disabled by changing this value to False +#clean_dynamic_modules: True +# +# Normally the minion is not isolated to any single environment on the master +# when running states, but the environment can be isolated on the minion side +# by statically setting it. Remember that the recommended way to manage +# environments is to isolate via the top file. +#environment: None +# +# If using the local file directory, then the state top file name needs to be +# defined, by default this is top.sls. +#state_top: top.sls +# +# Run states when the minion daemon starts. To enable, set startup_states to: +# 'highstate' -- Execute state.highstate +# 'sls' -- Read in the sls_list option and execute the named sls files +# 'top' -- Read top_file option and execute based on that file on the Master +#startup_states: '' +# +# list of states to run when the minion starts up if startup_states is 'sls' +#sls_list: +# - edit.vim +# - hyper +# +# top file to execute if startup_states is 'top' +#top_file: '' + +##### File Directory Settings ##### +########################################## +# The Salt Minion can redirect all file server operations to a local directory, +# this allows for the same state tree that is on the master to be used if +# copied completely onto the minion. This is a literal copy of the settings on +# the master but used to reference a local directory on the minion. + +# Set the file client, the client defaults to looking on the master server for +# files, but can be directed to look at the local file directory setting +# defined below by setting it to local. +file_client: local + + + + +# The file directory works on environments passed to the minion, each environment +# can have multiple root directories, the subdirectories in the multiple file +# roots cannot match, otherwise the downloaded files will not be able to be +# reliably ensured. A base environment is required to house the top file. +# Example: +# file_roots: +# base: +# - /srv/salt/ +# dev: +# - /srv/salt/dev/services +# - /srv/salt/dev/states +# prod: +# - /srv/salt/prod/services +# - /srv/salt/prod/states +# +# Default: +#file_roots: +# base: +# - /srv/salt + +# The hash_type is the hash to use when discovering the hash of a file in +# the minion directory, the default is md5, but sha1, sha224, sha256, sha384 +# and sha512 are also supported. +#hash_type: md5 + +# The Salt pillar is searched for locally if file_client is set to local. If +# this is the case, and pillar data is defined, then the pillar_roots need to +# also be configured on the minion: +#pillar_roots: +# base: +# - /srv/pillar + +###### Security settings ##### +########################################### +# Enable "open mode", this mode still maintains encryption, but turns off +# authentication, this is only intended for highly secure environments or for +# the situation where your keys end up in a bad state. If you run in open mode +# you do so at your own risk! +#open_mode: False + +# Enable permissive access to the salt keys. This allows you to run the +# master or minion as root, but have a non-root group be given access to +# your pki_dir. To make the access explicit, root must belong to the group +# you've given access to. This is potentially quite insecure. +#permissive_pki_access: False + +# The state_verbose and state_output settings can be used to change the way +# state system data is printed to the display. By default all data is printed. +# The state_verbose setting can be set to True or False, when set to False +# all data that has a result of True and no changes will be suppressed. +#state_verbose: True +# +# The state_output setting changes if the output is the full multi line +# output for each changed state if set to 'full', but if set to 'terse' +# the output will be shortened to a single line. +#state_output: full +# +# Fingerprint of the master public key to double verify the master is valid, +# the master fingerprint can be found by running "salt-key -F master" on the +# salt master. +#master_finger: '' + +###### Thread settings ##### +########################################### +# Disable multiprocessing support, by default when a minion receives a +# publication a new process is spawned and the command is executed therein. +#multiprocessing: True + +##### Logging settings ##### +########################################## +# The location of the minion log file +# The minion log can be sent to a regular file, local path name, or network +# location. Remote logging works best when configured to use rsyslogd(8) (e.g.: +# ``file:///dev/log``), with rsyslogd(8) configured for network logging. The URI +# format is: ://:/ +#log_file: /var/log/salt/minion +#log_file: file:///dev/log +#log_file: udp://loghost:10514 +# +#log_file: /var/log/salt/minion +#key_logfile: /var/log/salt/key +# +# The level of messages to send to the console. +# One of 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'. +# Default: 'warning' +#log_level: warning +# +# The level of messages to send to the log file. +# One of 'garbage', 'trace', 'debug', info', 'warning', 'error', 'critical'. +# Default: 'warning' +#log_level_logfile: + +# The date and time format used in log messages. Allowed date/time formating +# can be seen here: http://docs.python.org/library/time.html#time.strftime +#log_datefmt: '%H:%M:%S' +#log_datefmt_logfile: '%Y-%m-%d %H:%M:%S' +# +# The format of the console logging messages. Allowed formatting options can +# be seen here: http://docs.python.org/library/logging.html#logrecord-attributes +#log_fmt_console: '[%(levelname)-8s] %(message)s' +#log_fmt_logfile: '%(asctime)s,%(msecs)03.0f [%(name)-17s][%(levelname)-8s] %(message)s' +# +# This can be used to control logging levels more specificically. This +# example sets the main salt library at the 'warning' level, but sets +# 'salt.modules' to log at the 'debug' level: +# log_granular_levels: +# 'salt': 'warning', +# 'salt.modules': 'debug' +# +#log_granular_levels: {} + +###### Module configuration ##### +########################################### +# Salt allows for modules to be passed arbitrary configuration data, any data +# passed here in valid yaml format will be passed on to the salt minion modules +# for use. It is STRONGLY recommended that a naming convention be used in which +# the module name is followed by a . and then the value. Also, all top level +# data must be applied via the yaml dict construct, some examples: +# +# You can specify that all modules should run in test mode: +#test: True +# +# A simple value for the test module: +#test.foo: foo +# +# A list for the test module: +#test.bar: [baz,quo] +# +# A dict for the test module: +#test.baz: {spam: sausage, cheese: bread} + + +###### Update settings ###### +########################################### +# Using the features in Esky, a salt minion can both run as a frozen app and +# be updated on the fly. These options control how the update process +# (saltutil.update()) behaves. +# +# The url for finding and downloading updates. Disabled by default. +#update_url: False +# +# The list of services to restart after a successful update. Empty by default. +#update_restart_services: [] + + +###### Keepalive settings ###### +############################################ +# ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by +# the OS. If connections between the minion and the master pass through +# a state tracking device such as a firewall or VPN gateway, there is +# the risk that it could tear down the connection the master and minion +# without informing either party that their connection has been taken away. +# Enabling TCP Keepalives prevents this from happening. +# +# Overall state of TCP Keepalives, enable (1 or True), disable (0 or False) +# or leave to the OS defaults (-1), on Linux, typically disabled. Default True, enabled. +#tcp_keepalive: True +# +# How long before the first keepalive should be sent in seconds. Default 300 +# to send the first keepalive after 5 minutes, OS default (-1) is typically 7200 seconds +# on Linux see /proc/sys/net/ipv4/tcp_keepalive_time. +#tcp_keepalive_idle: 300 +# +# How many lost probes are needed to consider the connection lost. Default -1 +# to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes. +#tcp_keepalive_cnt: -1 +# +# How often, in seconds, to send keepalives after the first one. Default -1 to +# use OS defaults, typically 75 seconds on Linux, see +# /proc/sys/net/ipv4/tcp_keepalive_intvl. +#tcp_keepalive_intvl: -1 + + +###### Windows Software settings ###### +############################################ +# Location of the repository cache file on the master +# win_repo_cachefile: 'salt://win/repo/winrepo.p' diff --git a/salt/roots/django/init.sls b/salt/roots/django/init.sls new file mode 100644 index 0000000..e8528ed --- /dev/null +++ b/salt/roots/django/init.sls @@ -0,0 +1,31 @@ +django: + pkg.installed: + - names: + - python-dev + - python-virtualenv + - python-pip + - postgresql-server-dev-9.1 + + +/home/vagrant/dusken/venv: +virtualenv.managed: + - no_site_packages: True + - runas: vagrant + - requirements: /vagrant/requirements.txt + - require: + - pkg: python-virtualenv + + +# TODO: you are here +# http://www.barrymorrison.com/2013/Mar/11/deploying-django-with-salt-stack/ +# http://www.barrymorrison.com/2013/Apr/21/deploying-django-with-salt-now-with-postgresql/ + +/vagrant/dusken/settings.py: + - file.managed: + - source: salt://django/settings.py + - template: jinja + +dusken-setup: + cmd.run: + - user: vagrant + - name: ". venv/bin/activate/ && python manage.py syncdb && python manage.py runserver" diff --git a/salt/roots/nginx/init.sls b/salt/roots/nginx/init.sls new file mode 100644 index 0000000..0262e82 --- /dev/null +++ b/salt/roots/nginx/init.sls @@ -0,0 +1,9 @@ +nginx: + pkg.installed: + - name: nginx + service.running: + - enable: True + +default-nginx: + file.absent: + - name: /etc/nginx/sites-enabled/default diff --git a/salt/roots/postgresql/init.sls b/salt/roots/postgresql/init.sls new file mode 100644 index 0000000..169f52b --- /dev/null +++ b/salt/roots/postgresql/init.sls @@ -0,0 +1,27 @@ +pg_hba.conf: + file.managed: + - name: /etc/postgresql/9.1/main/pg_hba.conf + - source: salt://postgresql/pg_hba.conf + - user: postgres + - group: postgres + - mode: 644 + - require: + - pkg: postgresql-9.1 + +postgresql: + pkg.installed: + - name: postgresql-9.1 + service.running: + - enabled: True + - watch: + - file: /etc/postgresql/9.1/main/pg_hba.conf + - require: + - pkg: postgresql-9.1 + +postgresql-9.1-dbg: + pkg.installed: + - name: postgresql-9.1-dbg + +postgresql-server-dev-9.1: + pkg.installed: + - name: postgresql-server-dev-9.1 diff --git a/salt/roots/postgresql/pg_hba.conf b/salt/roots/postgresql/pg_hba.conf new file mode 100644 index 0000000..9a94914 --- /dev/null +++ b/salt/roots/postgresql/pg_hba.conf @@ -0,0 +1,101 @@ +# PostgreSQL Client Authentication Configuration File +# =================================================== +# +# Refer to the "Client Authentication" section in the PostgreSQL +# documentation for a complete description of this file. A short +# synopsis follows. +# +# This file controls: which hosts are allowed to connect, how clients +# are authenticated, which PostgreSQL user names they can use, which +# databases they can access. Records take one of these forms: +# +# local DATABASE USER METHOD [OPTIONS] +local sogdb sog md5 +local tc2012db tc2012 md5 +# host DATABASE USER ADDRESS METHOD [OPTIONS] +# hostssl DATABASE USER ADDRESS METHOD [OPTIONS] +# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS] +# +# (The uppercase items must be replaced by actual values.) +# +# The first field is the connection type: "local" is a Unix-domain +# socket, "host" is either a plain or SSL-encrypted TCP/IP socket, +# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a +# plain TCP/IP socket. +# +# DATABASE can be "all", "sameuser", "samerole", "replication", a +# database name, or a comma-separated list thereof. The "all" +# keyword does not match "replication". Access to replication +# must be enabled in a separate record (see example below). +# +# USER can be "all", a user name, a group name prefixed with "+", or a +# comma-separated list thereof. In both the DATABASE and USER fields +# you can also write a file name prefixed with "@" to include names +# from a separate file. +# +# ADDRESS specifies the set of hosts the record matches. It can be a +# host name, or it is made up of an IP address and a CIDR mask that is +# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that +# specifies the number of significant bits in the mask. A host name +# that starts with a dot (.) matches a suffix of the actual host name. +# Alternatively, you can write an IP address and netmask in separate +# columns to specify the set of hosts. Instead of a CIDR-address, you +# can write "samehost" to match any of the server's own IP addresses, +# or "samenet" to match any address in any subnet that the server is +# directly connected to. +# +# METHOD can be "trust", "reject", "md5", "password", "gss", "sspi", +# "krb5", "ident", "peer", "pam", "ldap", "radius" or "cert". Note that +# "password" sends passwords in clear text; "md5" is preferred since +# it sends encrypted passwords. +# +# OPTIONS are a set of options for the authentication in the format +# NAME=VALUE. The available options depend on the different +# authentication methods -- refer to the "Client Authentication" +# section in the documentation for a list of which options are +# available for which authentication methods. +# +# Database and user names containing spaces, commas, quotes and other +# special characters must be quoted. Quoting one of the keywords +# "all", "sameuser", "samerole" or "replication" makes the name lose +# its special character, and just match a database or username with +# that name. +# +# This file is read on server startup and when the postmaster receives +# a SIGHUP signal. If you edit the file on a running system, you have +# to SIGHUP the postmaster for the changes to take effect. You can +# use "pg_ctl reload" to do that. + +# Put your actual configuration here +# ---------------------------------- +# +# If you want to allow non-local connections, you need to add more +# "host" records. In that case you will also need to make PostgreSQL +# listen on a non-local interface via the listen_addresses +# configuration parameter, or via the -i or -h command line switches. + + + + +# DO NOT DISABLE! +# If you change this first entry you will need to make sure that the +# database superuser can access the database using some other method. +# Noninteractive access to all databases is required during automatic +# maintenance (custom daily cronjobs, replication, and similar tasks). +# +# Database administrative login by Unix domain socket +local all postgres peer + +# TYPE DATABASE USER ADDRESS METHOD + +# "local" is for Unix domain socket connections only +local all all peer +# IPv4 local connections: +host all all 127.0.0.1/32 trust +# IPv6 local connections: +host all all ::1/128 trust +# Allow replication connections from localhost, by a user with the +# replication privilege. +#local replication postgres peer +#host replication postgres 127.0.0.1/32 md5 +#host replication postgres ::1/128 md5 diff --git a/salt/roots/requirements/init.sls b/salt/roots/requirements/init.sls new file mode 100644 index 0000000..9186b10 --- /dev/null +++ b/salt/roots/requirements/init.sls @@ -0,0 +1 @@ +packages: diff --git a/salt/roots/top.sls b/salt/roots/top.sls new file mode 100644 index 0000000..06bd4b6 --- /dev/null +++ b/salt/roots/top.sls @@ -0,0 +1,4 @@ +base: + '*': + - postgresql + - django