Supposons que je devrais configurer unattended_upgrades
dans le dernier livre de recettes apt=6.1.4
.Quels sont les cas d'utilisation pour remplacer l'attribut de tableau de recettes dans le chef?
J'utilise le rôle suivant pour que:
{
"name": "default_base",
"description": "Role applied to all workstations and servers",
"json_class": "Chef::Role",
"default_attributes": {
"apt": {
"unattended_upgrades" : {
"enable": "true",
"allowed_origins" : [
"${distro_id}:${distro_codename}-security"
],
"mail": "[email protected]"
}
}
}
Mais la dernière partie de config ressemble:
Unattended-Upgrade::Allowed-Origins {
"Ubuntu xenial";
"${distro_id}:${distro_codename}-security";
};
Ubuntu xenial
est un élément de tableau défini dans Cookbook apt `attributs/fichier default.rb . Et il est fusionné avec l'attribut de rôle tel que décrit dans le doc. C'est parce que c'est un tableau.
J'ai trouvé seulement une solution de contournement - est un attribut de remise à zéro dans la section default_attributes
dans le rôle default_base
. Comme suit:
"default_attributes": {
"apt": {
"unattended_upgrades" : {
"allowed_origins" : []
}
}
}
En conséquence, le rôle résultant contient la même déclaration d'attribut dans le même rôle, mais dans différents niveaux de priorité.
Qu'est ce que c'est?
Common use case | Good solution | Dirty hack | Unskillful engineer