Mudanças entre as edições de "Owncloud distribuído"
Linha 146: | Linha 146: | ||
}</syntaxhighlight> | }</syntaxhighlight> | ||
+ | Crie um agendamento na crontab, colando o conteúdo a seguir no arquivo /etc/cron.d/csync2(sincroniza a cada 1 min): | ||
+ | <code>*/1 * * * * root /usr/sbin/csync2 -x > /dev/null 2> /dev/null</syntaxhighlight> | ||
http://tobias.ws/blog/sincronizando-arquivos-com-csync2/ | http://tobias.ws/blog/sincronizando-arquivos-com-csync2/ |
Edição das 18h04min de 13 de julho de 2016
Os passos abaixo devem ser feitos em todas os nós da implementação
Adicionando o repositório do Owncloud:
wget -nv https://download.owncloud.org/download/repositories/stable/Debian_8.0/Release.key -O Release.key
apt-key add - < Release.key
sh -c "echo 'deb http://download.owncloud.org/download/repositories/stable/Debian_8.0/ /' >> /etc/apt/sources.list.d/owncloud.list"
</syntaxhighlight>
Adicionando o repositório do mariadb e galera:
apt-get install software-properties-common
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
add-apt-repository 'deb [arch=amd64,i386] http://mirror.edatel.net.co/mariadb/repo/10.1/debian jessie main'
</syntaxhighlight>
Instalando os pacotes necessários
aptitude update
aptitude install -y rsync galera-3 mariadb-server owncloud csync2
</syntaxhighlight>
Vai pedir senha do banco, por garantia coloque a mesma senha em todos.
Modificar o arquivo /etc/hosts para colocar o ip e nome de todas as maquinas, por exemplo:
192.168.15.228 debian1
192.168.15.229 debian2
192.168.15.230 debian3
</syntaxhighlight>
Crie e edite o arquivo /etc/mysql/conf.d/galera.cnf com o conteúdo:
[mysqld]
- mysql settings
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_doublewrite=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
- galera settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_name="cluster_db"
wsrep_cluster_address=gcomm://debian1,debian2,debian3
wsrep_sst_method=rsync
</syntaxhighlight>
Pare o serviço mysql em todos os nós:
debian1 # systemctl stop mysql
debian2 # systemctl stop mysql
debian3 # systemctl stop mysqllmente
</syntaxhighlight>
Os passos abaixo devem ser feitos somente em um dos nós:
Copie o conteúdo de /etc/mysql/debian.cnf do primeiro nó para os outros para que todos fiquem com o mesmo conteúdo.
Crie e inicie o cluste:
debian1# galera_new_cluster
</syntaxhighlight>
Verifique a quantidade de usuários no cluster com o comando(irá pedir a senha do banco):
mysql -u root -p -e 'SELECT VARIABLE_VALUE as "cluster size" FROM INFORMATION_SCHEMA.GLOBAL_STATUS WHERE VARIABLE_NAME="wsrep_cluster_size"'
</syntaxhighlight>
Inicie os serviços mysql nos outros nós e verifique com o comando acima se estão entrando no cluster.
systemctl start mysql
</syntaxhighlight>
Deverá aparecer algo como isso(em caso de 3 nós):
+--------------+
| cluster size |
+--------------+
| 3 |
+--------------+
</syntaxhighlight>
Criando o banco para o Owncloud(como o banco já estão sendo replicado só é necessários digitar os passos abaixo em um deles):
Digite o comando abaixo para entrar no modo de edição do banco(pedirá a senha do banco):
mysql -uroot -p</syntaxhighlight>
Dentro digite:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO 'username'@'localhost' IDENTIFIED BY 'password';
quit
</syntaxhighlight>
Configurando o csync2:
Criar os certificados com os comandos abaixo em todas as maquinas:
openssl genrsa -out /etc/csync2_ssl_key.pem 1024
openssl req -new -key /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.csr
openssl x509 -req -days 600 -in /etc/csync2_ssl_cert.csr -signkey /etc/csync2_ssl_key.pem -out /etc/csync2_ssl_cert.pem
</syntaxhighlight>
- Obs: não preencha as informações pedidas(Common Name (CN)...), somente dê enter.
Crie a pasta /etc/csync2 em todos os nós:
mkdir /etc/csync2</syntaxhighlight>
Gere uma chave em um dos nós e copie para os outros:
csync2 -k /etc/csync2/exemplo.key
exemplo:
scp /etc/csync2/exemplo.key debian2:/etc/csync2
scp /etc/csync2/exemplo.key debian3:/etc/csync2
</syntaxhighlight>
Em todas os servidores crie e edite o arquivo /etc/csync2.cfg com o seguinte conteúdo:
- Grupo de sincronização
group exemplo {
host debian1 debian2 debian3;
key /etc/csync2/exemplo.key;
include /var/www/owncloud/data;
include /etc/mysql/debian.cnf;
auto none;
}</syntaxhighlight>
Crie um agendamento na crontab, colando o conteúdo a seguir no arquivo /etc/cron.d/csync2(sincroniza a cada 1 min):
*/1 * * * * root /usr/sbin/csync2 -x > /dev/null 2> /dev/null</syntaxhighlight>
http://tobias.ws/blog/sincronizando-arquivos-com-csync2/
https://blog.sprinternet.at/2016/03/mariadb-10-1-galera-cluster-on-debian-8-jessie/