Algumas especificações do servidor Samba 4:
- OS: Debian 7 amd64
- Hostname: samba4pdc
- Domínio: domain.com.br
- Rede: 172.17.0.0/16
- IP Fixo: 172.17.0.4
Basicamente a ideia é a seguinte:
- Com o host samba4pdc na LAN do samba3 obteremos os arquivos necessários a migração, via
scp, entre samba3 e samba4pdc.
- Colocaremos o host samba4pdc em outra LAN onde o adequaremos a se tornar um PDC Samba 4.
- A migração da base OpenLDAP será assim: base obtida do samba3 -> OpenLDAP no samba4pdc -> LDAP interno do Samba 4 no samba4pdc.
- Após testes, volta do samba4pdc à LAN do samba3, acompanhado da desativação do samba3. (Os dois hosts não podem existir ativamente na mesma LAN).
Dados marcados em negrito devem ser alterados para as especificidades de seu ambiente, de sua rede, os demais verifique com cautela quaisquer alterações.
Neste roteiro edito os arquivos com o vi, se quiser altere para seu editor favorito, ed, Vim, Nano etc.
Observações:
- Espero que o leitor tenha o mínimo de conhecimento de utilização do shell: perceba que comandos são apenas em uma linha; aspas simples, duplas e
invertidas, pontos, capitalizações, ordens, etc. importam muito; saiba o que deve, e o que não deve estar presente em um arquivo de configuração; etc.
- Perceba que as versões dos programas mudam com o tempo, fique atento a diretórios e arquivos que referenciam alguma versão e faça as devidas
adequações.
- Sei que algumas configurações, parâmetros e valores apresentados aqui são padrões ou automaticamente escolhidos, desejo explicitar o que, como e onde os
passos citados são efetuados.
Obtenção dos dados necessários para a migração
No servidor samba3 copie os arquivos necessários para a migração e coloque-os em alguma pasta, no caso
/root/ldap_bk:
# mkdir -p /root/ldap_bk/etc
# mkdir -p /root/ldap_bk/var/lib
Obtenha a base do ldap:
# /etc/init.d/slapd stop
# slapcat -o ldif-wrap=no > /root/ldap_bk/ldap.ldif
Caso utilize uma versão antiga do OpenLDAP execute:
# slapcat > /root/ldap_bk/ldap.ldif
No caso acima retire as quebras de linha, se existirem, com o comando:
# sed -i 's/\n\ //g' /root/ldap_bk/ldap.ldif
Continue o serviço do OpenLDAP:
# /etc/init.d/slapd start
Obtenha o arquivo de configuração do Samba e seus TDBs:
# cp -rf /etc/samba /root/ldap_bk/etc/.
# cp -rf /var/lib/samba /root/ldap_bk/var/lib/.
# cp -rf /etc/ldap /root/ldap_bk/etc/.
Verifique se os arquivos TDB estão OK:
# find /root/ldap_bk/var/lib/samba/ -name "*tdb" | xargs -I {} tdbtool {} check
Transfira os arquivos para o futuro novo servidor:
# scp -r /root/ldap_bk root@samba4pdc:/root/.
Coloque o servidor samba4pdc em outra LAN, isolado da rede do samba3.
Lembre de manter o IP da interface do samba4pdc como fixo.
Adequações ao sistema de arquivos
A partir deste ponto operaremos apenas no host samba4pdc.
Logue, como root, no samba4pdc remota ou localmente.
Atualize a árvore do APT e os pacotes instalados:
# apt-get update && apt-get upgrade
Caso utilize ext3 ou ext4 como sistema de arquivos, altere a linha de montagem da partição, no arquivo /etc/fstab, onde o Samba e pastas servidas por ele residirão,
com os seguintes dados:
# cp /etc/fstab /etc/fstab.orig
# vi /etc/fstab
No caso de ext3:
/dev/rd/c0d0p1 / ext3 user_xattr,acl,barrier=1 1 1
/dev/rd/c1d0p1 /home ext3 user_xattr,acl,barrier=1 1 1
...
No caso de ext4:
UUID=... / ext4 user_xattr,acl,barrier=1 1 1
UUID=... /home ext4 user_xattr,acl,barrier=1 1 1
...
Aplique as alterações nas partições alteradas:
# mount -o remount /
# mount -o remount /home
Caso utilize XFS mantenha o arquivo /etc/fstab inalterado.
Edite o arquivo /etc/hosts com os seguintes hosts:
# cp /etc/hosts /etc/hosts.orig
# vi /etc/hosts
127.0.0.1 localhost
172.17.0.4 samba4pdc.domain.com.br samba4pdc
Edite o arquivo /etc/resolv.conf para conter apenas as linhas:
# cp /etc/resolv.conf /etc/resolv.conf.orig
# vi /etc/resolv.conf
search domain.com.br
domain samba4pdc.domain.com.br
nameserver 172.17.0.4
Instalação/compilação de pacotes necessários
Instale os pacotes necessários:
Obs.: se perguntado para definir endereços ou senhas, utilize os valores padrão ou deixe-os vazios.
# apt-get install build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config
libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl attr ntp cups isc-dhcp-server slapd libfam-dev debian-builder libbind-
dev
Pare os serviços novos:
# /etc/init.d/ntp stop
# /etc/init.d/isc-dhcp-server stop
# /etc/init.d/cups stop
# /etc/init.d/slapd stop
Copie o fonte do BIND 9.8:
# apt-get source bind9
Obtenha as dependências do BIND 9.8 para compilá-lo em breve:
# apt-get build-dep bind9
Edite o arquivo de configuração /root/bind9-9.8.4.dfsg.P1/debian/rules:
# vi /root/bind9-9.8.4.dfsg.P1/debian/rules
Na linha das opções de configuração, onde se lê:
./configure --prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
--sysconfdir=/etc/bind \
--localstatedir=/var \
--enable-threads \
Altere para:
./configure --prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
--sysconfdir=/etc/bind \
--localstatedir=/var \
--enable-threads \
--with-dlopen=yes \
--with-dlz-filesystem=yes \
--with-dlz-stub=yes \
Compile o pacote com as alterações:
# cd /root/bind9-9.8.4.dfsg.P1/
# debuild -us -uc
# cd
# hash -r
Instale o pacote:
# dpkg -i /root/bind9utils_9.8.4.dfsg.P1-6+nmu2+deb7u1_amd64.deb
# dpkg -i /root/bind9_9.8.4.dfsg.P1-6+nmu2+deb7u1_amd64.deb
Pare o serviço do BIND:
# /etc/init.d/bind9 stop