O que podes aprender com este post

  • Como instalar o Anchor CMS
  • Como escrever uma receita ansible pronta para o Ansible Galaxy

O que nós queremos fazer

De uma forma geral o que nós queremos fazer é o seguinte:

  1. Actualizar o nosso sistema apt-get update && apt-get upgrade
  2. Instalar os pacotes necessários apt-get install unzip vim apache2 libapache2-mod-php5 mysql-server php5-curl php5-mcrypt php5-gd php5-mysql
  3. Tornar a instalação MySQL mais segura
  4. Editar o /root/.my.cnf no caso de querermos entrar no MySQL do terminal sem ter que escrever uma password vim /root/.my.cnf
[client]
user = root
password = <YourPassword>
  1. Criar a base de dados Para aceder: mysql Para criar a base de dados: mysql> create database anchor; quit
  2. Deixar que a firewall permita acesso nas portas de saída SSH e HTTP ufw status ou iptables -nvL
  3. Ir buscar o Anchor cd /var/www/html; wget http://anchorcms.com/download -O anchor.zip; unzip anchor.zip
  4. Ajustar permissões chown -R www-data:www-data anchor-cms
  5. Permitir .htaccess nas configurações do apache sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf
  6. Ativar o módulo rewrite do Apache a2enmod rewrite
  7. Adicionar o .htaccess ao directório base ( /var/www/html/anchor-cms/.htaccess )
Options -indexes
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
ErrorDocument 404 index.php
</IfModule>
  1. Reiniciar serviços service apache2 restart; service mysql-server restart
  2. Ir a http:/// (ou http://localhost:8080 no caso do Vagrant) para fazer a instalação e configuração do Anchor

Agora com Ansible

Por isso passei a tarde a trabalhar nisto e consegui criar uma receita Ansible! Esta é a primeira aproximação por isso certamente terá pontos de melhoria.

Adicionei um Vagrantfile para poderem simplesmente fazer vagrant up no caso de quererem testar localmente.

Podes ver o código todo aqui ou a receita no Ansible Galaxy aqui!

Há um passo final que não pude automatizar porque tem de ser feito depois da instalação/configuração do Anchor, por isso deixo aqui para fazeres depois se quiseres:

rm -rf /var/www/html/anchor-cms/install

Espero que dê jeito!