Définition des propriétés dans chef-client.rb

J'ai un cas d'utilisation où une recette de chef doit utiliser «remote_file» pour récupérer un file sur un virtuel et l'extraction doit être effectuée via un proxy HTTP. Cela ne fonctionne pas parce que chef-client n'utilise pas les parameters proxy système … il obtient ses parameters proxy à partir du /etc/chef/chef-client.rb

Alors, comment puis-je get des parameters de proxy (ou des parameters en général) dans le file chef-client.rb sur un client?

Idéalement, j'aimerais que cela se produise au moment du démarrage du client, mais je ne vois pas comment le faire sans avoir piraté le code.

L'autre possibilité est que je pourrais créer une recette qui met à jour le file chef-client.rb . Mais cela me paraît dangereux. Et cela signifie que vous devez exécuter chef-client deux fois avant qu'il ne fonctionne, en supposant que le paramètre de proxy manquant dans la première exécution entraîne l'échec de l'exécution.

Des idées pour résoudre le problème?

3 Solutions collect form web for “Définition des propriétés dans chef-client.rb”

Fyi: le file de configuration par défaut est /etc/chef/client.rb , vous devrez passer -c /etc/chef/chef-client.rb pour utiliser ce file.

Pour définir les parameters de configuration Chef pour le proxy http , vous pouvez définir le proxy à utiliser avec le knife bootstrap avec l'option de ligne de --bootstrap-proxy URL . Ou, vous pouvez l'append dans votre knife.rb .

 knife[:bootstrap_proxy] = "https://proxy.example.com" 

Remplacez la valeur " https://proxy.example.com " par l'URL de votre server proxy.

Cela appenda les lignes http_proxy et https_proxy au file /etc/chef/client.rb automatiquement. Alternativement, vous pouvez créer un model de bootstrap personnalisé avec ces valeurs de configuration dans la section de configuration du client. Quelque chose comme ça (modifié par ubuntu10.04-gems.erb):

 ( cat <<'EOP' http_proxy "http://proxy.example.com" # replace with your URL <%= config_content %> EOP ) > /etc/chef/client.rb 

Je suis tombé sur cette question lorsque j'essaie de faire fonctionner un Chef seul derrière le travail de pare-feu.

Les mêmes parameters http_proxy pour client client client.rb peuvent être utilisés en solo.rb

Donc, le chef solitaire sera ainsi

solo.rb ressemble plus bas

 cookbook_path File.expand_path("../cookbooks", __FILE__) json_atsortingbs File.expand_path("../node.json", __FILE__) # HTTP for environment behind firewall # http://docs.opscode.com/config.html # solo.rb and client.rb can use the same http_proxy settings http_proxy "http://proxy.company.com:3128" # http_proxy_user "username" # http_proxy_pass "password" 

Le chef exécute => chef-solo -c solo.rb -j node.json -l debug`

Ça marche! 😉

J'ai donc eu le même problème et je n'ai pas pu get des conseils pour fonctionner correctement car il ne semble pas fonctionner de cette façon en particulier + manque d'échantillons de documentation.

À la fin, j'ai simplement choisi de modifier le chef-full.erb qui est le model par défaut bootstrap pour générer le client.rb

Pour get le bon file, exécutez ceci:

 $ gem contents chef | grep bootstrap | grep full /home/henryt/.rvm/gems/ruby-1.9.3-p547/gems/chef-11.16.4/lib/chef/knife/bootstrap/chef-full.erb 

Ensuite, vim ce file chef-full.erb et ajoutez ohai :disabled_plugins ligne ohai :disabled_plugins dans le document client.rb here ( cat > /etc/chef/client.rb <<'EOP' )

 Ohai::Config[:disabled_plugins] = [:Passwd] 

Mon file de patch:

 --- ~me/.rvm/gems/ruby-1.9.3-p547/gems/chef-11.16.4/lib/chef/knife/bootstrap/chef-full.erb.orig 2016-07-22 00:53:33.689961205 -0700 +++ ~me/.rvm/gems/ruby-1.9.3-p547/gems/chef-11.16.4/lib/chef/knife/bootstrap/chef-full.erb 2016-07-22 00:44:21.253493396 -0700 @@ -64,6 +64,7 @@ cat > /etc/chef/client.rb <<'EOP' <%= config_content %> +Ohai::Config[:disabled_plugins] = [:Passwd] EOP cat > /etc/chef/first-boot.json <<'EOP' 

Maintenant, chaque fois que je client.rb une machine, le client.rb est généré avec cette ligne ohai :disabled_plugins et je n'ai pas besoin d'avoir un file client.rb personnalisé.

  • Pourquoi l'installateur de la plate-forme Web tente-t-il de se réparer toutes les 40 minutes?
  • Quel est le meilleur stream de travail pour build et tester localement tes livres de cuisine de chef d'oeuvre d'opsworks?
  • Comment copyr des keys ssh sur une nouvelle machine virtuelle
  • Meilleure stratégie pour contrôler les versions des cuisiniers de cuisine
  • Chef 'avise' ne parvient pas à redémarrer ou recharger des services
  • Mise à jour d'un server de mise en scène (à partir d'un server CI) dans une boîte Vagrant avec Chef
  • Chef bootstrap chef-server, déployez ma propre validation.pem et webui.pem
  • Impossible d'append le client Chef du post de travail Chef en raison de la key privée AWS
  • Dépendances conditionnelles dans CHEF
  • Spécification du port SSH avec Chef, bootstrap couteau
  • Que font effectivement les livres de cuisine par défaut d'opsworks?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.