Projet

Général

Profil

Development #23086

deviner le nom d'utilisateur

Ajouté par Christophe Siraut il y a environ 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
11 avril 2018
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

ce patch permet d'éviter de devoir préciser "-e user=`whoami`".


Fichiers

0001-guess-username-closes-23086.patch (1,76 ko) 0001-guess-username-closes-23086.patch Christophe Siraut, 28 mai 2018 18:07
0001-guess-username-closes-23086.patch (1,75 ko) 0001-guess-username-closes-23086.patch Christophe Siraut, 28 mai 2018 18:17
0001-guess-username-closes-23086.patch (1,79 ko) 0001-guess-username-closes-23086.patch Christophe Siraut, 28 mai 2018 18:23
0001-guess-username-23086.patch (2,24 ko) 0001-guess-username-23086.patch Christophe Siraut, 31 août 2018 16:00

Révisions associées

Révision dab85a4c (diff)
Ajouté par Christophe Siraut il y a presque 6 ans

guess username (closes: #23086)

Révision fc067c73 (diff)
Ajouté par Christophe Siraut il y a plus de 5 ans

guess username (closes: #23086)

Révision 8703b81d (diff)
Ajouté par Christophe Siraut il y a plus de 5 ans

guess username (#23086)

Révision c7a55a57 (diff)
Ajouté par Christophe Siraut il y a plus de 5 ans

guess username (#23086)

Historique

#1

Mis à jour par Christophe Siraut il y a environ 6 ans

  • Fichier 0001-guess-username.patch supprimé
#2

Mis à jour par Christophe Siraut il y a environ 6 ans

  • Fichier 0001-guess-username.patch ajouté
  • Patch proposed changé de Non à Oui

fonctionne désormais avec tous les playbooks

#3

Mis à jour par Christophe Siraut il y a environ 6 ans

  • Fichier 0003-bootstrap-install-ca-certificates-entrouvert-complet.patch ajouté
  • Fichier 0002-clean.yaml-allow-execution-on-all-hosts.patch ajouté

Petits ajouts à #21756.

#4

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Statut changé de Nouveau à Résolu (à déployer)
  • % réalisé changé de 0 à 100
#5

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Statut changé de Résolu (à déployer) à En cours

(une branche wip avait mis ce ticket à résolu)

#6

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Fichier 0001-guess-username.patch supprimé
#7

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Fichier 0003-bootstrap-install-ca-certificates-entrouvert-complet.patch supprimé
#8

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Fichier 0002-clean.yaml-allow-execution-on-all-hosts.patch supprimé
#9

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Description mis à jour (diff)
#10

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Fichier 0001-guess-username-closes-23086.patch ajouté

Actuellement la documentation [1] recommande de spécifier "-e user=$(whoami)" pour la majorité des commandes, cette valeur peut être calculée simplement, voir ce patch.

1. https://dev.entrouvert.org/projects/publik-devinst/wiki/Installation_d'un_environnement_de_d%C3%A9veloppement_local
#11

Mis à jour par Christophe Siraut il y a presque 6 ans

  • Fichier 0001-guess-username-closes-23086.patch supprimé
#14

Mis à jour par Christophe Siraut il y a presque 6 ans

ajouté une note dans le commentaire de l'action

#15

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

  • Tracker changé de Bug à Development
#16

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

Marche dans le cas où l'utilisateur ne définit pas de user dans son inventaire ou sur la CLI.
Dans le cas contraire erreur :

TASK [common : set user variable] ***********************************************************************
fatal: [localhost]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'stdout'\n\nThe error appears to have been in '/home/cazino/src/publi
k-devinst/roles/common/tasks/main.yml': line 7, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: set user variable\n  ^ here\n\
nexception type: <class 'ansible.errors.AnsibleUndefinedVariable'>\nexception: 'dict object' has no attribute 'stdout'"} 

Tenté de supprimé le premier when dans le patch, l'utilisateur de l'inventaire est quand même surchargé.

#17

Mis à jour par Christophe Siraut il y a presque 6 ans

Manu, j'ai oublié pourquoi on ne prend pas simplement "ansible_user"? (surchargeable un peu partout, https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html)

#18

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

Déjà essayé mais ça ne marchait pas, en particulier dans les roles qui sont appelés par un import_role: si ma mémoire est bonne.

Mais import_role est une fonctionnalité très récente, ça vaut peut-être le coup de re-essayer avec la dernière version d'ansible de pypi, ça a peut-être été corrigé.

#19

Mis à jour par Christophe Siraut il y a presque 6 ans

Pour la question "ansible_user", nous n'utilisons pas cette variable parce que la procédure actuelle utilise "sudo" et que "ansible_user" donne alors "root". Dans ce cas il y a bien la varibale SUDO_USER qui est intéressante mais qui n'existe pas dans une utilisation simple.

chris@pad:~$ sudo ansible -m setup localhost | grep ansible_user
 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
        "ansible_user_dir": "/root", 
        "ansible_user_gecos": "root", 
        "ansible_user_gid": 0, 
        "ansible_user_id": "root", 
        "ansible_user_shell": "/bin/bash", 
        "ansible_user_uid": 0, 
        "ansible_userspace_architecture": "x86_64", 
        "ansible_userspace_bits": "64", 
chris@pad:~$ sudo ansible -m setup localhost | grep chris
 [WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does not match 'all'
            "PWD": "/home/chris", 
            "SUDO_USER": "chris", 
                "device": "/home/chris/.Private", 
                "mount": "/home/chris",
#20

Mis à jour par Christophe Siraut il y a presque 6 ans

Pour faire marcher mon patch initial il faudrait déplacer "user" depuis group_vars vers roles/common/defaults. Ceci afin que tu puisse la surcharger avec ton propre inventory:

https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable

Je regardais un talk de la dernière debconf à Hamburg sur Ansible, et le gars disais qu'il faut privilégier roles/defaults/mail.yaml pour cette raison, voir 7:20 dans https://saimei.ftp.acc.umu.se/pub/debian-meetings/2018/miniconf-hamburg/2018-05-20/ansible_bcp.webm

#21

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

Christophe Siraut a écrit :

Pour la question "ansible_user", nous n'utilisons pas cette variable parce que la procédure actuelle utilise "sudo" et que "ansible_user" donne alors "root". Dans ce cas il y a bien la varibale SUDO_USER qui est intéressante mais qui n'existe pas dans une utilisation simple.

Je n'utilise jamais sudo, je fais ansible-playbook -K.

Pour faire marcher mon patch initial il faudrait déplacer "user" depuis group_vars vers roles/common/defaults. Ceci afin que tu puisse la surcharger avec ton propre inventory:

Hmmm actuellement le user est dans group_vars/all qui a une priorité plus flaible que inventory host_vars/*
J'ai plutôt l'impression que le problème est que le set_facts que tu utilise dans le patch a une priorité plus haute que inventory host_vars/*

Bref je peux me tromper, je te laisse le soin de proposer et tester un patch :)

#22

Mis à jour par Christophe Siraut il y a plus de 5 ans

  • Statut changé de En cours à Résolu (à déployer)
#23

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à En cours

Ça a juste été poussé dans une branche; il ne faut pas utiliser (closes: #...).

#24

Mis à jour par Christophe Siraut il y a plus de 5 ans

Emmanuel Cazenave a écrit :

Marche dans le cas où l'utilisateur ne définit pas de user dans son inventaire ou sur la CLI.
Dans le cas contraire erreur : [...]

Corrigé dans le patch attaché.

#25

Mis à jour par Anonyme il y a plus de 5 ans

  • Statut changé de Solution proposée à Solution validée

ça marche

#26

Mis à jour par Benjamin Dauvergne il y a plus de 5 ans

  • Assigné à mis à Christophe Siraut
#27

Mis à jour par Christophe Siraut il y a plus de 5 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit c7a55a57a8674015dbc3cb23a91d29a41e8336a2 (HEAD -> master, origin/master, origin/HEAD)
Author: Christophe Siraut <csiraut@entrouvert.com>
Date:   Wed Apr 11 09:39:22 2018 +0200

    guess username (#23086)
#28

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

Cool cool et j'ai du coup pu simplifier la doc.

#29

Mis à jour par Emmanuel Cazenave il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF