Eu tenho experimentado com o s3ql no Ubuntu 10.04, usando-o para montar os buckets do Amazon S3. No entanto, eu realmente gostaria de montá-los automaticamente. Alguém sabe como fazer isso?
Solução:
Graças à ajuda de Nikratio de s3ql , finalmente posso montar automaticamente baldes S3 quando o sistema é inicializado. Você definitivamente vai querer olhar para o manual , mas aqui está o básico de como fazer isso!
O primeiro passo é criar um arquivo authinfo. Esse arquivo deve ser colocado em um diretório .s3ql dentro do diretório inicial do usuário que o utilizará. O arquivo authinfo contém informações de login, permitindo que o s3ql monte os buckets sem avisar. Abaixo está um exemplo de como deve ser seu arquivo authinfo. A primeira linha contém suas credenciais de segurança da Amazon. O segundo contém o local e a senha do seu intervalo. Você pode adicionar várias linhas de depósito a esse arquivo, se necessário, mas estou usando apenas um neste exemplo. Nesse ponto, a senha do intervalo pode ser qualquer coisa.
backend s3 machine any login ASDFGHJKL password ZXCVBNM
storage-url s3://mybucket password mypassword
O nome do intervalo deve ser exclusivo. Nenhum usuário pode ter o mesmo nome de intervalo, por isso é uma boa ideia fazer login no Amazon Web Services e tentar nomes diferentes até encontrar um que esteja disponível. Depois de encontrar um, você precisará excluí-lo, pois o s3ql o recriará quando criar seu sistema de arquivos s3ql. Se o intervalo já existir, você receberá um erro.
Para criar o sistema de arquivos, use o comando:
mkfs.s3ql s3://mybucket
Ele solicitará sua senha de criptografia. Isso deve ser o mesmo que a senha do intervalo no arquivo authinfo.
Agora que seu sistema de arquivos foi criado, você pode montá-lo usando o comando:
mount.s3ql s3://mybucket /mnt/s3/bucket
É claro que o nome do seu intervalo e o ponto de montagem variam.
Agora, se quisermos montar esse bucket automaticamente na inicialização, precisamos adicionar um script upstart ao / etc / init. Felizmente, o s3ql vem empacotado com um, s3ql.conf.
Eu adicionei "--allow-other" ao comando mount.s3ql para permitir que usuários além do root acessem o bucket montado.
#
# This file can be placed in /etc/init. It defines an upstart job that
# takes care of mounting and unmounting an S3QL file system.
#
description "S3QL Backup File System"
author "Nikolaus Rath <[email protected]>"
start on (filesystem and net-device-up IFACE=eth0)
stop on runlevel [016]
env BUCKET="s3://mybucket"
env MOUNTPOINT="/mnt/s3/bucket"
expect stop
script
# Redirect stdout and stderr into the system log
DIR=$(mktemp -d)
mkfifo "$DIR/LOG_FIFO"
logger -t s3ql -p local0.info < "$DIR/LOG_FIFO" &
exec > "$DIR/LOG_FIFO"
exec 2>&1
rm -rf "$DIR"
# Check and mount file system
fsck.s3ql --batch "$BUCKET"
exec mount.s3ql --upstart --allow-other "$BUCKET" "$MOUNTPOINT"
end script
pre-stop script
umount.s3ql "$MOUNTPOINT"
end script
Depois de adicionar esse script, em teoria você deve poder reinicializar e ter o seu bucket montado automaticamente, mas isso é porque eu tive problemas. O meu não estava sendo montado.
Meu problema foi causado pelo fato de que o upstart estava executando o script como root, mas eu criei o sistema de arquivos como outro usuário. Depois que eu copiei o diretório .s3ql do diretório home do usuário que eu estava logado como / root, o problema foi resolvido.
Espero que isso ajude alguém lá fora. Embora eu não tenha usado meu balde S3 montado por muito tempo, estou impressionado com a forma como meus testes iniciais foram feitos.
Além disso, esta resposta foi escrita cerca de uma semana após a solução ter sido encontrada. Acho que cobri tudo, mas se você perceber que eu perdi um passo, me avise e adicionarei. Você também vai querer ler o manual , vale a pena lê-lo se você pretende usar s3ql.