dfbf2427
Antonio Terceiro
Unified release p...
|
1
2
3
4
|
# Software Público - configuration management
## Requirements
|
f95e628f
Paulo Tada
Updating dependec...
|
5
|
* [chake](https://rubygems.org/gems/chake). Version 0.13 or greater
|
56dd9d0a
Paulo Tada
Updating README.c...
|
6
7
|
* [rake](https://rubygems.org/gems/rake)
* python-sphinx
|
dfbf2427
Antonio Terceiro
Unified release p...
|
8
9
10
11
12
13
14
15
16
17
18
|
For development
* vagrant
* shunit2
* moreutils
* redir
## Configuration parameters
All configuration parameters are defined in `nodes.yaml`, with exception of IP
|
56dd9d0a
Paulo Tada
Updating README.c...
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
addresses and ssh configuration, which are defined in different files.
Each environment are defined on `config/<ENV>/*` and to deploy
you're need to use the `SPB_ENV` variable. The environment
`local` is defined by default. The files to configure a new env are:
- **config.yaml**: any configuration used for the specific environment.
- **ips.yaml**: the IP of each node.
- **ssh_config**: used to login into the machine with the
command `rake login:$server`.
- **iptables-filter-rules**: any iptables configuration needed
to the environment.
If you need to do any changes on the IPs addresses, make sure
that the ips.yaml are configure for the right environment.
You will probably not need to change nodes.yaml unless you are
developing the deployment process.
|
dfbf2427
Antonio Terceiro
Unified release p...
|
35
36
37
38
39
40
41
42
43
44
45
46
47
|
## Deploy
### Development
First you have to bring up the development virtual machines:
```bash
$ vagrant up
$ rake preconfig
$ rake bootstrap_common
```
|
56dd9d0a
Paulo Tada
Updating README.c...
|
48
49
50
51
52
|
```
WARNING: Right now there are 7 VM's: six of them with 512MB of
RAM and one with 1GB of RAM. Make sure that your local machine
can handle this environment. Also, this might take a while.
```
|
dfbf2427
Antonio Terceiro
Unified release p...
|
53
|
|
56dd9d0a
Paulo Tada
Updating README.c...
|
54
|
The basic commands for deployment:
|
dfbf2427
Antonio Terceiro
Unified release p...
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
```bash
$ rake # deploys all servers
$ rake nodes # lists all servers
$ rake converge:$server # deploys only $server
```
### Production
* TODO: document adding the SSL key and certificate
* TODO: document creation of `prod.yaml`.
* TODO: document SSH configuration
The very first step is
```
$ rake preconfig SPB_ENV=production
```
This will perform some initial configuration to the system that is required
|
56dd9d0a
Paulo Tada
Updating README.c...
|
74
75
|
before doing the actual deployment. This command should only be
runned **one** time.
|
dfbf2427
Antonio Terceiro
Unified release p...
|
76
77
78
79
80
81
82
83
84
|
After that:
```bash
$ rake SPB_ENV=production # deploys all servers
$ rake nodes SPB_ENV=production # lists all servers
$ rake converge:$server SPB_ENV=production # deploys only $server
```
|
56dd9d0a
Paulo Tada
Updating README.c...
|
85
86
|
You can also do `export SPB_ENV=production` in your shell and
omit it in the `rake` calls.
|
dfbf2427
Antonio Terceiro
Unified release p...
|
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
See the output of `rake -T` for other tasks.
## Viewing the running site when developping locally
Run:
```bash
./server
```
Follow the on-screen instructions an browse to
[http://softwarepublico.dev/](http://softwarepublico.dev/).
Note: this requires that your system will resolve `\*.dev` to `localhost`.
Google DNS servers will do that automatically, otherwise you might add the following entries to `/etc/hosts`:
```
127.0.53.53 softwarepublico.dev
127.0.53.53 listas.softwarepublico.dev
```
|