Como configuro o beanstalk .ebextensions .config “sources” key “target directory” para o diretório atual do pacote

1

Estou trabalhando em um ambiente python 2.7 de pé de feijão elástico.

Estou tentando usar as fontes digite um arquivo .configraves .config para copiar um arquivo tgz para um diretório na raiz da minha aplicação - /opt/python/current/app/utility . Estou fazendo isso porque os arquivos nesta pasta são grandes demais para serem incluídos no repositório do github.

No entanto, parece que a chave source é executada antes do link simbólico ondeck ser criado para o diretório do pacote atual, portanto não posso referenciar /opt/python/ondeck/app ao usar o comando sources porque ele cria a pasta e depois erros de beanstalk tentando criar o link simbólico ondeck.

Aqui estão cópias dos arquivos .ebextensions/utility.config que tentei:

sources:
  /opt/python/ondeck/app/utility: http://[bucket].s3.amazonaws.com/utility.tgz

Acima copia com êxito para / opt / python / ondec / app / utility, mas depois erros de beanstalk, porque ele não pode criar o link simbólico de / opt / python / bundle / x - > / opt / python / ondeck.

sources:
  utility: http://[bucket].s3.amazonaws.com/utility.tgz

Acima copia a pasta para / utility diretamente da raiz em paralelo com / etc.

    
por Peter M 10.11.2014 / 21:53

2 respostas

1

Consegui fazer isso com uma chave diferente:

container_commands:
  001_get_utility_dir:
    command: "cd /opt/python/ondeck/app/utility && curl http://[bucket].s3.amazonaws.com/elasticbeanstalk/utility.tgz | tar xz"
    
por 11.11.2014 / 17:30
0

Isso ajudou um pouco, mas no meu ambiente (php) não há um diretório ondeck transitório e o diretório current onde meu aplicativo é implementado é recriado depois que os comandos são executados.

Portanto, eu precisava executar um script post deploy. A pesquisa revelou que posso colocar um script em /opt/elasticbeanstalk/hooks/appdeploy/post/ e ele será executado após a implantação.

Então eu baixei / extraí meus arquivos do S3 para um diretório temporário da maneira mais simples usando sources . Em seguida, crio um arquivo que copia meus arquivos após a implantação e os coloco no diretório de gancho post deploy.

sources:
  /some/existing/directory: https://s3-us-west-2.amazonaws.com/my-bucket/vendor.zip
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_move_my_files_on_deploy.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      mv /some/existing/directory /var/app/current/where/the/files/belong
    
por 16.04.2016 / 09:00