├── .gitignore ├── README.md ├── Vagrantfile └── saltstack ├── salt_local ├── pillar │ ├── buddycloud │ │ └── init.sls │ ├── postgres │ │ └── init.sls │ ├── top.sls │ └── users │ │ └── init.sls └── salt │ ├── base │ └── init.sls │ ├── buddycloud-vm-motd │ ├── init.sls │ └── motd.template │ └── top.sls └── vagrant_salt_bootstrap ├── bootstrap.sh ├── master └── minion /.gitignore: -------------------------------------------------------------------------------- 1 | saltstack/config/minion.d/ 2 | .vagrant 3 | .DS_Store 4 | *.swp 5 | *.dpkg-dist 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Buddycloud-VM 2 | 3 | This Vagrant-based virtual machine can be run locally as a complete buddycloud stack including the following components: 4 | - xmpp server (Prosody and Tigase are included) 5 | - buddycloud-server-java 6 | - buddycloud-http-api 7 | - buddycloud-media-server 8 | - buddycloud-pusher 9 | - buddycloud-angular-app 10 | 11 | ### Project Goals 12 | 13 | **Ship identical bits to dev and production:** When development, staging and production environments use identical orchestration files you reduce the "but it worked in dev" scenarios. 14 | 15 | **Quick:** The buddycloud-vm project is designed to a new developer a complete Buddycloud stack in about 10 mintues. Running locally. 16 | 17 | ### How it works 18 | 19 | 1. Vagrant to build a VM 20 | 2. Install a [definied list of components](https://github.com/buddycloud/buddycloud-vm/blob/master/saltstack/salt_local/salt/top.sls). 21 | 3. [Configure](https://github.com/buddycloud/saltstack/tree/master/salt) each package. 22 | 23 | The VM is designed to expose buddycloud-services out to your workstation: 24 | ``` 25 | +-------------------------------------------------+ 26 | | | 27 | | Local workstation | 28 | | ----------------- | 29 | | | 30 | | * port forwards 5222,5269,5432,8080 | 31 | | * http://localhost.buddycloud.org:8080 | 32 | | | 33 | +-------------------------------------------------+ 34 | | | | 35 | (port 2222) (port 5222) (port 8080) 36 | | | | 37 | +-------------------------------------------------+ 38 | | | 39 | | buddycloud-VM | 40 | | ------------- | 41 | | * hostname: localhost.buddycloud.org | 42 | | * runs complete buddycloud stack | 43 | | * TLS functions disabled | 44 | | * federation disabled | 45 | | | 46 | +-------------------------------------------------+ 47 | ``` 48 | 49 | ### Requirements 50 | 51 | - [Vagrant](http://www.vagrantup.com/) (v1.7.2 or later) 52 | - [Virtualbox](https://www.virtualbox.org/wiki/Downloads) (or libvirt) 53 | 54 | ### Setup 55 | 56 | ```bash 57 | git clone https://github.com/buddycloud/buddycloud-vm.git 58 | cd buddycloud-vm 59 | vagrant up 60 | ``` 61 | 62 | Have patience! The build process will take anywhere from 5 to 10 minutes. You can watch progress with `sudo tail -F /var/log/salt/minion` inside the VM. 63 | 64 | ### Access 65 | 66 | - Web: [demo](https://github.com/buddycloud/buddycloud-angular-app) at http://localhost.buddycloud.org:8080 67 | - ssh: `vagrant ssh` 68 | 69 | ### Making Changes 70 | 71 | | | Outside the VM | Inside the VM | 72 | |-----------------|-------------------------------------------------|------------------------------------| 73 | | basic [what to install](https://github.com/buddycloud/buddycloud-vm/blob/master/saltstack/salt_local/salt/top.sls) | `saltstack/salt_local/salt` | `/srv/salt_local/salt` | 74 | | basic [configs](https://github.com/buddycloud/buddycloud-vm/tree/master/saltstack/salt_local/pillar) | `saltstack/salt_local/pillar` | `/srv/salt_local/pillar` | 75 | | somewhere for your own changes | `saltstack/my_saltstack_repo` | `/srv/my_saltstack_repo` | 76 | | [buddycloud stack](https://github.com/buddycloud/saltstack) as a fallback for all packages | `saltstack/buddycloud_saltstack_repo` | `/srv/buddycloud_saltstack_repo` | 77 | 78 | Activating the changes 79 | ```bash 80 | salt "*" state.highstate -l all 81 | ``` 82 | 83 | ### about localhost.buddycloud.org 84 | 85 | `localhost.buddycloud.org` is a special sub-domain hosted for this project. It answers all DNS queries with `127.0.0.1` which is great for testing code inside a VM. 86 | 87 | for reference this is the current zone-file: 88 | ```bind 89 | localhost.buddycloud.org. A 127.0.0.1 90 | $ORIGIN .localhost.buddycloud.org. 91 | api A 127.0.0.1 92 | webclient A 127.0.0.1 93 | friendfinder A 127.0.0.1 94 | search A 127.0.0.1 95 | topics A 127.0.0.1 96 | pusher A 127.0.0.1 97 | s2s A 127.0.0.1 98 | buddycloud A 127.0.0.1 99 | media A 127.0.0.1 100 | c2s A 127.0.0.1 101 | channels A 127.0.0.1 102 | _xmpp-client._tcp SRV 5 0 5222 c2s.localhost.buddycloud.org. 103 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 104 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 105 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 106 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 107 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 108 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 109 | _xmpp-server._tcp SRV 5 0 5269 s2s.localhost.buddycloud.org. 110 | _bcloud-server._tcp TXT "v=1.0 server=channels.localhost.buddycloud.org" 111 | _buddycloud-api._tcp TXT "v=1.0 host=localhost.buddycloud.org protocol=https path=/api port=8080" 112 | ``` 113 | 114 | ### Shutting down the VM 115 | 116 | - Shut down Vagrant with: `vagrant halt`. 117 | - Running `vagrant kill` will remove all disks and configs. 118 | 119 | ### Deploying to cloud-providers 120 | 121 | Generally you will want to run your own copy of saltstack to orchestrate changes to your production environment. If you would rather copy VMs around, edit the `Vagrantfile` and install the provider plugin. 122 | 123 | For example, Google Cloud ([background reading](https://github.com/mitchellh/vagrant-google)) uses 124 | ``` 125 | vagrant plugin install vagrant-google 126 | vagrant up --provider=google 127 | ``` 128 | -------------------------------------------------------------------------------- /Vagrantfile: -------------------------------------------------------------------------------- 1 | # -*- mode: ruby -*- 2 | # vi: set ft=ruby : 3 | 4 | # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! 5 | VAGRANTFILE_API_VERSION = "2" 6 | 7 | Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 8 | config.vm.box = "ubuntu/trusty64" 9 | config.vm.host_name = "buddycloud-vm.dev" 10 | config.ssh.forward_agent = true 11 | # Resolve "stdin: is not a tty" errors 12 | config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" 13 | 14 | # Forward ports 15 | config.vm.network :forwarded_port, guest: 5222, host: 5222, protocol: 'tcp' # XMPP-client 16 | config.vm.network :forwarded_port, guest: 5269, host: 5269, protocol: 'tcp' # XMPP-S2S 17 | config.vm.network :forwarded_port, guest: 5432, host: 5432, protocol: 'tcp' # Postgresql 18 | config.vm.network :forwarded_port, guest: 443, host: 8080, protocol: 'tcp' # website 19 | 20 | # Sync the following folders 21 | config.vm.synced_folder "saltstack/vagrant_salt_bootstrap", "/srv/vagrant_salt_bootstrap" 22 | config.vm.synced_folder "saltstack/salt_local", "/srv/salt_local" 23 | config.vm.synced_folder "saltstack/buddycloud_saltstack_repo", "/srv/buddycloud_saltstack_repo" 24 | config.vm.synced_folder "saltstack/my_saltstack_repo", "/srv/my_saltstack_repo" 25 | 26 | # Provision the box with a masterless salt configuration 27 | config.vm.provision :shell, :inline => "sudo /srv/vagrant_salt_bootstrap/bootstrap.sh" 28 | 29 | # configure for virtualbox 30 | config.vm.provider :virtualbox do |virtualbox| 31 | virtualbox.gui = false 32 | virtualbox.memory = 2048 33 | virtualbox.cpus = 1 34 | virtualbox.name = "buddycloud-vm" 35 | end 36 | 37 | # Libvirt 38 | config.vm.provider "libvirt" do |lv| 39 | lv.memory = 2048 40 | end 41 | 42 | # Google Compute 43 | config.vm.provider :google do |google| 44 | google.google_project_id = "hallowed-coww-638" 45 | google.google_client_email = "user@domain.com" 46 | google.google_key_location = "~/.ssh/google_compute_engine.private_key" 47 | google.zone = "europe-west1-d" 48 | google.zone_config "europe-west1-d" do |zone1d| 49 | zone1d.name = "testing-vagrant" 50 | zone1d.image = "debian-7-wheezy-v20150127" 51 | zone1d.machine_type = "n1-standard-4" 52 | zone1d.zone = "europe-west1-d" 53 | zone1d.metadata = {'custom' => 'metadata', 'testing' => 'foobarbaz'} 54 | zone1d.tags = ['web', 'app1'] 55 | end 56 | end 57 | 58 | # VMware Vcenter configuration 59 | config.vm.provider :vcenter do |vcenter| 60 | vcenter.hostname = 'my.vcenter.hostname' 61 | vcenter.username = 'myUsername' 62 | vcenter.password = 'myPassword' 63 | vcenter.folder_name = 'myFolderName' 64 | vcenter.datacenter_name = 'MyDatacenterName' 65 | vcenter.computer_name = 'MyHostOrCluster' 66 | vcenter.datastore_name = 'MyDatastore' 67 | vcenter.network_name = 'myNetworkName' 68 | vcenter.linked_clones = true 69 | end 70 | end 71 | -------------------------------------------------------------------------------- /saltstack/salt_local/pillar/buddycloud/init.sls: -------------------------------------------------------------------------------- 1 | buddycloud: 2 | lookup: 3 | domain: localhost.buddycloud.org # domain for buddycloud service 4 | env: dev 5 | git-branch: master 6 | web-listen-port: 443 # where to listen 7 | use_tls: false # enable TLS on web-listen-port 8 | database-server: 127.0.0.1 9 | send-address: noreply@example.com 10 | smtp-server: smtp.example.com 11 | # DNS 12 | server-ip: 127.0.0.1 13 | ddns-server: 127.0.0.1 14 | tsigkeysecret: Cafgg7bVEnErJ95n143cBA== 15 | dns-checker-recipient: your-email@example.com 16 | # XMPP 17 | xmpp-component-secret: secret 18 | media-jid-password: mediaserver-test 19 | hosting-admin-username: hosting-admin-username #appended to domain 20 | hosting-admin-password: hosting-admin-password 21 | # Pusher 22 | gcm.google_project_id: 732635300110 23 | gcm.api_key: ZIza1yA2rA9d4YfutCR1224UleLZhb_tGbV1wzVw 24 | -------------------------------------------------------------------------------- /saltstack/salt_local/pillar/postgres/init.sls: -------------------------------------------------------------------------------- 1 | postgres: 2 | pg_hba.conf: salt://postgres/pg_hba.conf 3 | 4 | lookup: 5 | pkg: 'postgresql-9.3' 6 | pg_hba: '/etc/postgresql/9.3/main/pg_hba.conf' 7 | 8 | users: 9 | {% for env in ['dev'] %} 10 | {% for db in ['buddycloudserver','hosting','mediaserver','tigase','friendfinder','prosody','pusher','channeldirectory'] %} 11 | {{ env }}_{{ db }}: 12 | password: '{{ env }}_secret' 13 | createdb: False 14 | connlimit: 10 15 | {% endfor %} 16 | {% endfor %} 17 | 18 | # This section cover this ACL management of the pg_hba.conf file. 19 | # , , , [host], 20 | acls: 21 | - ['host', 'all', 'all', '::1/128'] 22 | - ['host', 'all', 'all', '127.0.0.1/32'] 23 | 24 | databases: 25 | {% for env in ['dev'] %} 26 | {% for db in ['buddycloudserver','hosting','mediaserver','tigase','friendfinder','prosody','pusher','channeldirectory'] %} 27 | {{ env }}_{{ db }}: 28 | owner: '{{ env }}_{{ db }}' 29 | user: '{{ env }}_{{ db }}' 30 | template: 'template0' 31 | lc_ctype: 'en_GB.UTF-8' 32 | lc_collate: 'en_GB.UTF-8' 33 | {% endfor %} 34 | {% endfor %} 35 | 36 | # This section will append your configuration to postgresql.conf. 37 | postgresconf: | 38 | listen_addresses = '*' 39 | 40 | -------------------------------------------------------------------------------- /saltstack/salt_local/pillar/top.sls: -------------------------------------------------------------------------------- 1 | base: 2 | '*': 3 | - buddycloud 4 | - postgres 5 | -------------------------------------------------------------------------------- /saltstack/salt_local/pillar/users/init.sls: -------------------------------------------------------------------------------- 1 | users: 2 | ubuntu: 3 | state: absent 4 | purge: True 5 | simon: 6 | state: present 7 | fullname: Simon Tennant 8 | shell: /bin/bash 9 | home: /home/simon 10 | uid: 4000 11 | groups: 12 | - wheel 13 | - adm 14 | pubkey: ssh-dss AAAAB3NzaC1kc3MAAACBAKKFx7hGR3xi1T9OwhLfIs0synlZB2/jvPxrJYL29E5OG2jE1zPfKuouMain9ppk/6+soRskufFV33sbxrr6jsLxLitXVQdsrFXI3HyR6CpIsyHrHpPeUl1XGYQ4WKp/kzQVkP/p0JDY4MtF3vpgFNdKEEBXdtdgcIXw326iE3i7AAAAFQD8RNEYBX8Xtl2ua7XNFp7sh7j5VQAAAIBoPpACJsBlVaFc9mz/L/7hlp6xvvEPSnqyxLUuY7vEDn0xJN1miIqTmlXOw8m7vp+rBLMNIqT3A7lJcizYNmkQlhrSxOrVyRSCtUDL3uqsXd/xLpDq2GbpkUm9tonsQ6uc9Wc8CHhF7PidVyCNgiyGCj5XjACxSp5B9fNNZ5mn0QAAAIBeovAF4Mbj1VC8wnOsYyCj23/STPYo3ZnLPl83uWoJmnyMf/i12RIrJLvuot3T6BjSvCdHsHh3bqHnXHSSf/s7HJD0q/9jGaUv1D1u7HfNIyAIsl+7OarN7SgiL6LB6iC5UD1uQBbmpbqpbpLFTxS7YAnywvC+UG7uEoucLALOeQ== simon@bunker 15 | jaredh: 16 | state: present 17 | fullname: Jared Honey 18 | shell: /bin/bash 19 | home: /home/jaredh 20 | uid: 4001 21 | groups: 22 | - wheel 23 | - adm 24 | pubkey: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAgEAtDIMohSq2fVSMbv7ZGc48180qEljuPW5hS1qckSUIaw3q8BnD/iI6l7v5laO4NGkTNuOpDhH6Y/Q62nl0r4s1KFezeyCjiSpeVivBhS1JVZIfoRBYj0Ds8IHADaejKUya2ZgJtG00xCL+Wz+93RPRKeeZHGba2jQe9exPp9SbDK5VJ4VmtctT/0dwpohFnc3AT2O0A8MMWSdE/5jkyxtHSzT97tm47wqnloInUe5e5Lo7L5BM8wK/1zrAKpCdrXGKvnJNLbZy1l7o0wfO1bfud1KPGHnywRp2OKp/6zvC+ELrWQNYML2ktQY02Xs/YOO39Mzkhvv1ZUh5qn0AYoJx1hJS03gDbAM1YwaXExWpExXVzIHtYqPCI9TYdGz3Q5p14jN77KsyTD0h/j3fkN6/kxtS/dbfgTBIWzBeou4mFltMIibN17jjwfeb/Zi0f0pDBpiZ0SvCtIlqBXGSEkjsLtY/rNrLekh/nmpUVNfd2ZInXQR46qQges6xKQUcsPuqdLpxe+8U2bylVRMpuQhqrCY7hg7uAt5dy1V6gnPSpbXdJP+xXNPONQIDwjmay2dmIAXB0AfYbJhU3uzePvOi9TsW2aBFpejnVBPiRg3EjKDJMDO15yUKUx6HqWZhcRBnfxOxBCg3JmmxJYFajGFEZvlUhoUxZU6WjiWVN+WK4M= jared@somewhere 25 | lloyd: 26 | state: present 27 | fullname: Lloyd Watkin 28 | shell: /bin/bash 29 | home: /home/lloyd 30 | uid: 4002 31 | groups: 32 | - wheel 33 | - adm 34 | pubkey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDc6kFQ20ciODsqAg+eyebTF0C9i3sNT7ucuduq6qH7X0BYVkpuVV4FCbGFkqjMkVSI8njwnWI0dmXE5MzonLs/tPYW8/xC5aM+zBKblsf1NC6tLKEoyqgKH9KaahRfqnAEE3oqkUoE6G6R9nb1+J9jKMoTiLSg/yjBAUoq7co5dXRtfQU2IBZu/X54JKf3Olo2VVAyke57ddjnDcW0VU/og4cnOOkgbQ8FlXcKW3vdxqKWzNr7i5/6T5Ehny/SH3/Mr8xElg7U41T9H3TS+fblVwKdKutXNE91jwaKa+7nKz0mJWGnnDDgqn7XXHTn0lS1UcAHmsHzAJQBgYTNNST9 lloyd@evilprofessor.co.uk 35 | mrflix: 36 | state: present 37 | fullname: Felix 38 | shell: /bin/bash 39 | home: /home/mrflix 40 | uid: 4003 41 | groups: 42 | - wheel 43 | - adm 44 | pubkey: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApQP3/WtwQcVsE68NIll4ts5Wt3QMuU5D5vETBptMCFMWmTgrG3BfWWXmAgnioe1yep/BbKlSuJ4rs04szR/Q9HPFy90EERO4MXTIPGc+0CA7HcVGJYiZhA8j/J2ZHvirfmILFewfh9r6hSE3e7T0fqn1AMTrkuzCyeutlMsvykhLi6ZuXuIanfWIR+tZ5RdtQmaZtWM2tkE+g6d2V43+ixxxqw/N7r+hRJK0inBMcFy6gnwmjU5X5KeDA3b1OkzFKeQmDwTF0p9bKlWGd7kC14a4wfy6BXZVtobe6llHz1GWpLWwnzOqAvcYvRQfUxxYsT4PylX8nEu9hPII2dJvOw== mrflix@gmail.com 45 | -------------------------------------------------------------------------------- /saltstack/salt_local/salt/base/init.sls: -------------------------------------------------------------------------------- 1 | foundation: 2 | pkg.installed: 3 | - pkgs: 4 | - language-pack-en 5 | - vim 6 | - tmux 7 | - htop 8 | - tree 9 | - htop 10 | - git 11 | - python-git 12 | cmd.run: 13 | - name: dpkg-reconfigure locales 14 | - name: sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100 15 | 16 | fix-locale: 17 | cmd.run: 18 | - name: localedef -i en_US -f UTF-8 en_US.UTF-8 19 | 20 | en_US.UTF-8: 21 | locale.system 22 | -------------------------------------------------------------------------------- /saltstack/salt_local/salt/buddycloud-vm-motd/init.sls: -------------------------------------------------------------------------------- 1 | /etc/motd: 2 | file.managed: 3 | - user: root 4 | - group: root 5 | - mode: 0644 6 | - source: salt://buddycloud-vm-motd/motd.template 7 | - template: jinja 8 | 9 | -------------------------------------------------------------------------------- /saltstack/salt_local/salt/buddycloud-vm-motd/motd.template: -------------------------------------------------------------------------------- 1 | 2 | __ 3 | |__) _| _| _| _ _| __ \ /|\/| 4 | |__)|_|(_|(_|\/(_|(_)|_|(_| \/ | | 5 | / 6 | 7 | Working 8 | ------- 9 | For your convenience Vagrant syncs /srv/saltstack with 10 | ~/src/buddycloud-vm/saltstack (or equivalent). 11 | 12 | Setup 13 | ----- 14 | - set workstation nameserver to 127.0.0.1. 15 | - browse to http://{{ salt['pillar.get']('buddycloud:lookup:domain') }}:{{ salt['pillar.get']('buddycloud:lookup:web-listen-port') }} 16 | - DNS requests are forwarded to the VM. Anything not for {{ salt['pillar.get']('buddycloud:lookup:domain') }} is forwarded onto Google's nameserver (8.8.8.8). 17 | 18 | Running configuration: 19 | ----- 20 | - xmpp domain {{ salt['pillar.get']('buddycloud:lookup:domain') }} 21 | - buddycloud-http-api http://{{ salt['pillar.get']('buddycloud:lookup:domain') }}:{{ salt['pillar.get']('buddycloud:lookup:web-listen-port') }}/api 22 | - buddycloud-angular-app http://{{ salt['pillar.get']('buddycloud:lookup:domain') }}:{{ salt['pillar.get']('buddycloud:lookup:web-listen-port') }} 23 | - websocket endpoint http://{{ salt['pillar.get']('buddycloud:lookup:domain') }}:{{ salt['pillar.get']('buddycloud:lookup:web-listen-port') }}/api/scripts/primus/primus.js 24 | 25 | Log files 26 | --------- 27 | everything: tail -F /var/log/buddycloud/*log 28 | 29 | To active any changes 30 | --------------------- 31 | sudo salt "*" state.highstate -l debug 32 | 33 | Pull requests welcomed. 34 | 35 | -------------------------------------------------------------------------------- /saltstack/salt_local/salt/top.sls: -------------------------------------------------------------------------------- 1 | # applied to all machines in your saltstack setup 2 | base: 3 | '*': 4 | - buddycloud-vm-motd 5 | - buddycloud-general 6 | - sanity 7 | - time 8 | - groups 9 | - users 10 | - sudoers 11 | - node 12 | - sun-java 13 | - postgres 14 | - nginx 15 | - prosody 16 | - buddycloud-server-java 17 | - buddycloud-http-api 18 | - buddycloud-media-server 19 | - buddycloud-pusher 20 | - buddycloud-angular-app 21 | - buddycloud-webclient 22 | -------------------------------------------------------------------------------- /saltstack/vagrant_salt_bootstrap/bootstrap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export DEBIAN_FRONTEND=noninteractive 3 | apt-get --yes -q install python-software-properties 4 | add-apt-repository ppa:saltstack/salt2015-5 -y 5 | apt-get --yes -q update 6 | mkdir /etc/salt 7 | apt-get --yes -q install python-git salt-master salt-minion 8 | cp /srv/vagrant_salt_bootstrap/master /etc/salt/master 9 | cp /srv/vagrant_salt_bootstrap/minion /etc/salt/minion 10 | # add the https://github.com/buddycloud/saltstack repo (the heavy lifting part) 11 | git clone https://github.com/buddycloud/saltstack.git /srv/buddycloud_saltstack_repo 12 | mkdir /srv/my_saltstack_repo 13 | restart salt-minion 14 | restart salt-master 15 | sleep 10 16 | salt-key -y -a '*' 17 | sleep 10 18 | echo "this next step will take around 10 minutes to run... be patient" 19 | echo "if you are curious sudo tail -F /var/log/salt/minion on the VM" 20 | salt -v "*" state.highstate -l debug 21 | -------------------------------------------------------------------------------- /saltstack/vagrant_salt_bootstrap/master: -------------------------------------------------------------------------------- 1 | fileserver_backend: 2 | - roots 3 | 4 | file_roots: 5 | base: 6 | - /srv/salt_local/salt 7 | - /srv/my_saltstack_repo/salt 8 | - /srv/buddycloud_saltstack_repo/salt 9 | 10 | # put your private keys, certificates and config data into 11 | # /srv/pillar/buddycloud/init.sls 12 | pillar_roots: 13 | base: 14 | - /srv/salt_local/pillar 15 | 16 | -------------------------------------------------------------------------------- /saltstack/vagrant_salt_bootstrap/minion: -------------------------------------------------------------------------------- 1 | master: 127.0.0.1 2 | id: buddycloud-vm.dev 3 | sub_timeout: 2 4 | --------------------------------------------------------------------------------