¿Cómo configurar manualmente un nodo Chef?

Tengo un server Chef funcionando en Ubuntu 14.04 (ver Nota 1 ) y puedo acceder al website "Chef Manage" visitando la dirección IP ( mychefserver.myorg.com ) en mi browser.

Tengo una estación de trabajo que funciona en el EL Capitan de Mac OS X (véase la nota 2 ) y puedo conectar con el server del cocinero usando la knife client list y del knife client list knife ssl check .

El problema: el knife no arrancará mi tercera máquina ( mynode.myorg.com ) como un nodo.

 $ knife bootstrap mynode.myorg.com --sudo --ssh-user myname --forward-agent --node-name mynode Creating new client for mynode Creating new node for mynode Connecting to mynode Failed to authenticate myname - trying password auth Enter your password: stty: 'standard input': unable to perform all requested operations ERROR: Net::SSH::AuthenticationFailed: Authentication failed for user myname@mynode@mynode 

mynode.myorg.com es una máquina corporativa. SSH está configurado para permitir sólo la authentication basada en certificates. SSH con contraseña y SSH con key privada no está permitido.

Me parece que desde el knife bootstrap utiliza contraseña o SSH basado en key, y ya que puedo llegar a una command-line en el nodo simplemente ejecutando ssh mynode.myorg.com , mi mejor opción es SSH en el nodo y el set Chef manualmente. Desafortunadamente, no hay documentation sobre cómo crear un nodo Chef que no implique la invocación de knife bootstrap desde una estación de trabajo.

¿Qué commands tengo que ejecutar localmente en el nodo para recrear el trabajo realizado por el knife bootstrap ?


Nota 1: Etapas de configuration de Chef Server 12.4.1

 $ wget https://packagecloud.io/chef/stable/packages/ubuntu/trusty/chef-server-core_12.4.1-1_amd64.deb/download $ dpkg -i download $ cat > /etc/opscode/chef-server.rb server_name = 'mychefserver.myorg.com' api_fqdn server_name bookshelf['vip'] = server_name nginx['url'] = "https://#{server_name}/" nginx['server_name'] = server_name nginx['ssl_certificate'] = "/var/opt/opscode/nginx/ca/#{server_name}.crt" nginx['ssl_certificate_key'] = "/var/opt/opscode/nginx/ca/#{server_name}.key" ^D $ chef-server-ctl reconfigure $ chef-server-ctl install opscode-manage $ chef-server-ctl reconfigure $ opscode-manage-ctl reconfigure $ chef-server-ctl install opscode-reporting $ chef-server-ctl reconfigure $ opscode-reporting-ctl reconfigure $ chef-server-ctl user-create myname My Name myname@myorg.com mypassword --filename myname.pem $ chef-server-ctl org-create myorg "My Org" --association_user myname 

Nota 2: Pasos de configuration de la estación de trabajo ChefDK 0.11.2

 $ wget URL: https://opscode-omnibus-packages.s3.amazonaws.com/mac_os_x/10.11/x86_64/chefdk-0.11.2-1.dmg $ hdiutil mount chefdk-0.11.2-1.dmg $ installer -package '/Volumes/Chef Development Kit/chefdk-0.11.2-1.pkg' -target '/Volumes/Macintosh HD' $ hdiutil unmount '/Volumes/Chef Development Kit/' $ chef generate app chef-repo $ cd chef-repo $ mkdir .chef $ cat > .chef/myname.pem -----BEGIN RSA PRIVATE KEY----- # …snip… -----END RSA PRIVATE KEY----- ^D $ cat > .chef/knife.rb log_level :info log_location STDOUT node_name 'myname' client_key "#{__dir__}/myname.pem" chef_server_url 'https://mychefserver.myorg.com/organizations/myorg' cookbook_path ["#{__dir__}/../chef-repo/cookbooks"] ^D $ knife ssl fetch 

One Solution collect form web for “¿Cómo configurar manualmente un nodo Chef?”

1. Instalar el chef-cliente

Utilice el https://www.chef.io/chef/install.sh script o descargue e instale el package correcto de chef-client para su sistema operativo.

2. Cree /etc/chef/client.rb

Tal vez usted puede usar uno de sus nodos bootstrap como reference. Lo importante es que usted tiene chef_server_url apuntando a su server Chef.

Ejemplo:

/etc/chef/client.rb

 chef_server_url "https://mychefserver.myorg.com/organizations/myorg" validation_client_name "myorg-validator" validation_key "/etc/chef/myorg-validator.pem" log_level :info 

3. Copiar key de validation

La key que obtuvo después de ejecutar chef-server-ctl org-create . Si se pierde, puede generar uno nuevo de Chef Manage.

Copie la key a /etc/chef/myorg-validator.pem (a lo que está configurado como validation_key en client.rb )

4. Buscar certificate SSL

Opcionalmente, si el certificate SSL en su server Chef no está firmado (probablemente no lo es), debe searchlo manualmente para que el cliente / cliente confíe en el certificate.

 mkdir /etc/chef/trusted_certs knife ssl fetch -c /etc/chef/client.rb 

Ver también http://jtimberman.housepub.org/blog/2014/12/11/chef-12-fix-untrusted-self-sign-certs/

  • ¿Cómo monitorear y registrar el server de Chef y el time de respuesta del cliente Chef y trafiic de la networking?
  • En chef, ¿cómo puedo acceder a los attributes dentro de los files de roles?
  • Chef: import de definiciones de otros libros de cocina
  • ¿Cuáles son los pros y los contras de AWS Elastic Beanstalk en comparación con otras estrategias de implementación?
  • AMI personalizado para AWSr Opsworks falla en la fase de configuration pero los loggings parecen limpios?
  • ¿Puedo usar Chef-Solo para proveer un server creado con cuchillo-eucalipto
  • ¿Por qué no utiliza Chef mis attributes pnetworkingeterminados en mi entorno de desarrollo?
  • ¿Crear / actualizar apache virtualhost en el mismo nodo para los subdominios diff usando el server Chef?
  • Instalación desatendida del cliente del cocinero
  • ¿El cocinero y el títere cuestan dinero?
  • ¿Cómo ejecutar la secuencia de commands sólo después de que el chef actualice todos los nodos?
  • bootstrap (añadir nodo) localhost en el chef
  • Orden receta Chef de ejecución networkingux
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.