2017-02-10 8 views
0

J'essaye d'ajouter le service de céleri à l'environnement de tige de haricot élastique. J'ai donc décidé de créer le premier utilisateur et groupe "céleri". Je suivre les instructions de la page http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html#linux-users, et j'ai créé config:Elastic Bean Stalk - Impossible d'ajouter l'utilisateur

groups: 
    celery: 
    gid: "101" 

users: 
    celery: 
    groups: 
     - celery 
    uid: "1501" 
    homeDir: "/opt/python/celery" 

Mais lors du déploiement, je reçois l'erreur:

[2017-02-10T08:59:23.899Z] INFO [16595] - [Application update [email protected]/AppDeployStage0/EbExtensionPreBuild/Infra-EmbeddedPreBuild] : Activity execution failed, because: Failed to add user celery (ElasticBeanstalk::ExternalInvocationError) 

J'ai aussi été modifing homedir et uid, et connectez-vous, et id gruop, mais ça n'aide pas. Comment le réparer? Ou comment déboguer useradding par une tige de haricot élastique?

Répondre

1

Solution avec des sections de commandes:

groups: 
    celery: 
    gid: "101" 

commands: 
    command 00_add_user_celery: 
    command: useradd -d /opt/python/celery -g celery -u 1501 celery 
    ignoreErrors: true 
+0

Je préfère définir 'ignoreErrors' à' false' pour éviter les surprises. Pour que le script fonctionne, vous pouvez vous fier à l'option de test. Ajoutez juste quelque chose comme 'test: test! "' id -u celery 2>/dev/null' "' à la section de commande. –

0

La solution par 404pio offre une solution, mais le ignoreErrors ensemble à true peut cacher des erreurs surprise.

J'ai commenté cette réponse, mais le formatage est limité et difficile à comprendre. Voici un moyen d'améliorer les cas d'erreur:

groups: 
    celery: 
    gid: "101" 

commands: 
    command 00_add_user_celery: 
    test: test ! "`id -u celery 2> /dev/null`" 
    command: useradd -d /opt/python/celery -g celery -u 1501 celery 
    ignoreErrors: false 

ignoreErrors: false est la valeur par défaut et pourrait également être omis.