summaryrefslogtreecommitdiff
path: root/backup/migration.mdwn
blob: 48bf5259437566464d403b6aaad15ae09ba1fe7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
Migração de Sites
=================

Sites
-----

Parâmetros iniciais:

    ORIGIN="hostname-origem"
    DEST="fqdn-destino:porta-ssh"

Montando manualmente a lista de sites:

    IKIWIKIS="lista de ikiwikis"
    SITES="$IKIWIKIS outros sites"

Montando a partir das definições do puppet:

    hydra sarava list-sites $ORIGIN

DNS
---

Proceda com a mudança de DNS para os sites, atualizando o repositório dns.git.

Backup
------

Na origem:

    hydractl backup-sites $SITES

Cópia
-----

Na origem:

    hydractl backup-copy-sites $DEST $SITES

A senha do usuário `backups` está no keyringer.

Para agilizar, copie **temporariamente** a chave pública de de `root@$ORIGIN` para `backups@DEST:~/.ssh/authorized_keys`.
Isso evitará a digitação excessiva da senha do usuário `backups`.

Git
---

Caso os repositórios `git` também estejam sendo migrados, crie uma senha temporária para
o `gitolite` na máquina de destino e proceda com a cópia do material:

    su gitolite -c "rsync -avz --delete -e 'ssh -p porta-ssh' /var/git/ fqdn-destino:/var/git/"

Você também precisará alterar a chave de acesso de `root@ORIGIN` para `root@DEST` na configuração
do gitolite.

Habilitando
-----------

Habilite os sites pelo puppet, mudando o nome do servidor no campo `tag` de cada definição.

Verifique se existem usuários e grupos em `users::virtual` associados a esses sites, fazendo
a alteração conforme necessário.

Aplique o catálogo no servidor de destino. Eventualmente, desabilite o puppet no servidor de
origem com o comando

    hydractl puppet-disable

Isso evitará que os sites sejam apagados antes que tenhamos certeza que foram migrados com
sucesso.

Restore
-------

No destino:

    hydractl backup-restore-sites $ORIGIN $SITES

No caso de um único site:

    hydractl backup-restore-sites backups $ORIGIN nome-do-sitio

Reprepro:

    hydractl backup-restore-reprepro $ORIGIN