SaltStack - Exemplo de Trabalho
Neste exemplo de trabalho, criaremos uma fórmula Salt que configurará o servidor da web apache junto com o software PHP. Salt é uma ótima maneira de executar comandos ad-hoc, mas você não gostaria de configurar continuamente sua infraestrutura dessa maneira. Ao criar um conjunto de fórmulas Salt, você pode reproduzir com segurança qualquer configuração.
Salt Formulas são arquivos de texto YAML simples e, por padrão, residem em seu Salt Master em /srv/salt/*. Vamos começar criando uma fórmula de sal para instalar o servidor web Apache e o PHP ao mesmo tempo.
Crie um arquivo chamado “websetup.sls” em /srv/salt/ diretório e adicione o seguinte código.
websetup.sls
websetup:
pkg:
- installed
- pkgs:
- apache2
- php5
- php5-mysql
Neste exemplo, observe o argumento “- pkgs:”. Cada item na lista abaixo “- pkgs:” será passado junto ao gerenciador de pacotes do SO para serem instalados juntos. Sempre que você tiver uma grande lista de pacotes para instalar, esta é a maneira mais eficiente de instalá-los.
Aplique esta fórmula ao mestre de sal usando o seguinte comando.
root@saltmaster:/home/vagrant# salt 'minion2' state.sls websetup
Agora, você verá o seguinte output -
minion2:
----------
ID: websetup
Function: pkg.installed
Result: True
Comment: 3 targeted packages were installed/updated.
Started: 01:50:53.978396
Duration: 86738.132 ms
Changes:
----------
apache2:
----------
new:
2.4.7-1ubuntu4.13
old:
apache2-api-20120211:
----------
new:
1
old:
apache2-bin:
----------
new:
2.4.7-1ubuntu4.13
old:
apache2-data:
----------
new:
2.4.7-1ubuntu4.13
old:
libapache2-mod-php5:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
libapr1:
----------
new:
1.5.0-1
old:
libaprutil1:
----------
new:
1.5.3-1
old:
libaprutil1-dbd-sqlite3:
----------
new:
1.5.3-1
old:
libaprutil1-ldap:
----------
new:
1.5.3-1
old:
php5:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-cli:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-common:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-json:
----------
new:
1.3.2-2build1
old:
php5-mhash:
----------
new:
1
old:
php5-mysql:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
php5-readline:
----------
new:
5.5.9+dfsg-1ubuntu4.21
old:
phpapi-20121212:
----------
new:
1
old:
ssl-cert:
----------
new:
1.0.33
old:
Summary for minion2
------------
Succeeded: 1 (changed = 1)
Failed: 0
------------
Total states run: 1
Total run time: 86.738 s
Agora, você instalou os pacotes em minion2.
Highstate
Um “estado elevado” é uma maneira de Salt determinar qual das fórmulas do sal deve ser aplicada a um determinado lacaio. Execute um “highstate” usando o seguinte comando.
root@saltmaster:/home/vagrant# salt <targets> state.highstate
top.sls
Quando o lacaio pede para executar um estado elevado, como mencionado antes, o lacaio solicita o top.sls do mestre de Sal e procura por fórmulas que correspondam. Por padrão, este arquivo está localizado em /srv/salt/top.sls. Vamos adicionar nossa fórmula ao arquivo top.sls e definir minion2 como destino.
base:
'*':
- common
'minion2’:
- websetup
Agora, execute o highstate visando minion2 como mostrado abaixo.
root@saltmaster:/home/vagrant# salt 'minion2' state.highstate
Depois de aplicar isso, você poderá ver o seguinte output -
minion2:
----------
ID: common_packages
Function: pkg.installed
Result: True
Comment: All specified packages are already installed
Started: 01:55:17.998824
Duration: 461.615 ms
Changes:
Summary for minion2
------------
Succeeded: 1
Failed: 0
------------
Total states run: 1
Total run time: 461.615 ms
Agora, o servidor web Apache e o PHP estão instalados no minion2. Desta forma, temos que mirar lacaios usando ambostop.sls e highstate e instale o software necessário com trabalho mínimo e flexibilidade máxima.