summaryrefslogtreecommitdiff
path: root/docs/backup/migration.md
blob: 49026eb08613592b2f024de6627a55590570c024 (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
# 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