Question

Est-il possible de spécifier des valeurs d'attribut dans le Chef de Solo JSON?J'ai un solo.json avec une liste en cours et je tiens à spécifier les attributs de là.Le Chef de la documentation semble indiquer qu'il devrait être possible pour moi de faire quelque chose comme:

{
    "hostname": {
        "test": "value2"
    },
    "default_attributes": {
        "hostname": {
            "test": "value3"
        }
    },
    "override_attributes": {
        "hostname": {
            "test": "value4"
        }
    },
    "default": {
        "hostname": {
            "test": "value5"
        }
    },
    "run_list": [
        "recipe[hostname::default]"
    ]
}

Cependant, chaque fois que j'essaie d'accéder à la valeur dans ma recette:

p node['hostname']['test']

Je viens d'obtenir la valeur définie dans les attributs par défaut.rb, et si je ne la définissez pas là, j'obtiens une valeur nulle en arrière.

Est-il un moyen de faire référence à ces valeurs?

Était-ce utile?

La solution

Le seul niveau d'attributs que vous pouvez stocker dans le nœud de données est normal, tout le reste est remis au début de l'convergent et reconstruite à partir des rôles, des environnements et des livres de cuisine.Vous voulez quelque chose comme ressemble à ceci:

{
  "normal": {
    "hostname": {
      "test": "something"
    }
  },
  "run_list": [
    "recipe[hostname::default]"
  ]
}

Autres conseils

J'ai essayé en utilisant l'exemple ci-dessus pour la définition des attributs dans un fichier JSON pour le chef-solo, et le "normal": {...} le bloc a été complètement ignorée.La liste de lancement a été lu, mais les attributs de ne jamais l'impression de travailler.

Ma commande est:

chef-solo -c /path/to/config_file.rb -j /path/to/file.json

Mon fichier JSON:

{
  "name": "my_json_file",
  "description": "JSON run-list and attributes.",
  "normal": {
    "my_cookbook": {
      "git_branch": "staging"
    }
  },
  "run_list": [
    "recipe[my_cookbook::recipe1]",
    "recipe[my_cookbook::recipe2]",
  ]
}

Au cours de l'converge, le Chef est allé directement aux valeurs par défaut à l'intérieur de attributes/default.rb.Sont le JSON valeurs saisies correctement?Pour l'instant, ma seule solution a été de créer une nouvelle recette pour chaque "git_branch": attribut je veux testé avec le chef-solo, et en ajoutant que la mise à jour de l'exécution de la liste vers un autre fichier JSON.Essentiellement, la copie de l'intégralité de la recette pour changer un seul node.normal['my_cookbook']['git_branch'] de la valeur.Inutile de dire que cela ne devrait pas être une solution.

À L'Aide De Chef 14.0.202

Suivi:

Pas de définition de l'attribut niveau de priorité, à l'intérieur du fichier JSON avec le Chef des oeuvres en Solo.Le JSON doit ressembler à ceci:

{
  "name": "my_json_file",
  "description": "JSON run-list and attributes.",
  "my_cookbook": {
    "git_branch": "staging"
  },
  "run_list": [
    "recipe[my_cookbook::recipe1]",
    "recipe[my_cookbook::recipe2]",
  ]
}

Non compris "normal": {...} ou "default_attributes": {...}, etc, va passer des attributs pour le chef-solo à utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top