Назад | Перейти на главную страницу

Интеграция Foreman 1.7.1 с Chef12

Я пытаюсь интегрировать новый Foreman 1.7.1 с новым сервером Chef 12.

Я установил их оба и хочу их интегрировать (https://www.youtube.com/watch?v=mtR0mCeisbs будет моим вдохновением).

Я не могу найти никаких хороших инструкций или документации относительно процесса установки и настройки.

Теперь я могу получить доступ к своему веб-интерфейсу Foreman WebUI, но похоже, что прокси-сервер неправильный, и я не могу понять, что мне нужно делать :(

После запуска Forema-installer я вижу

"Could not find a suitable provider for foreman_smartproxy"

сообщение и мой журнал прокси-сервера говорит, что "No client SSL certificate supplied". Я выполнил команду "puppet cert generate", но ничего не помогло ..

Больше информации:

[root@***** tmp]# gem list | grep foreman
/usr/local/lib/ruby/1.9.1/yaml.rb:84:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
foreman (0.77.0)
foreman-tasks (0.6.12)
foreman_chef (0.1.1)



[root@***** tmp]# rpm -qa | grep foreman
rubygem-hammer_cli_foreman-0.1.3-1.el6.noarch
foreman-compute-1.7.2-1.el6.noarch
ruby193-rubygem-foreman-mco-0.0.1-3.el6.noarch
foreman-selinux-1.7.2-1.el6.noarch
foreman-proxy-1.7.2-1.el6.noarch
foreman-1.7.2-1.el6.noarch
ruby193-rubygem-foreman_setup-2.1.1-1.el6.noarch
ruby193-rubygem-foreman_column_view-0.2.0-1.el6.noarch
foreman-release-scl-1-1.el6.x86_64
foreman-cli-1.7.2-1.el6.noarch
foreman-vmware-1.7.2-1.el6.noarch
ruby193-rubygem-foreman_templates-1.4.0-2.el6.noarch
ruby193-rubygem-foreman-tasks-0.6.12-2.el6.noarch
ruby193-rubygem-foreman_simplify-0.0.5-1.el6.noarch
ruby193-rubygem-foreman_custom_parameters-0.0.2-1.el6.noarch
foreman-installer-1.7.2-1.el6.noarch
ruby193-rubygem-foreman_bootdisk-4.0.2-1.el6.noarch
ruby193-rubygem-foreman_chef-doc-0.1.1-1.el6.noarch
foreman-postgresql-1.7.2-1.el6.noarch
ruby193-rubygem-foreman_discovery-2.0.0-0.1.rc2.el6.noarch
ruby193-rubygem-foreman_default_hostgroup-3.0.0-1.el6.noarch
foreman-release-1.7.2-1.el6.noarch
ruby193-rubygem-foreman_chef-0.1.1-1.el6.noarch
ruby193-rubygem-foremancli-1.0-6.el6.noarch




[root@***** tmp]# ruby -v
ruby 1.9.3p551 (2014-11-13 revision 48407) [x86_64-linux]

И конфигурация Foreman yaml:

--- 
  foreman: 
    foreman_url: "https://foreman*.BLAH.BLAH"
    unattended: true
    authentication: true
    passenger: true
    passenger_scl: 
    passenger_ruby: /usr/bin/ruby193-ruby
    passenger_ruby_package: ruby193-rubygem-passenger-native
    use_vhost: true
    servername: foreman*.BLAH.BLAH
    ssl: true
    custom_repo: true
    repo: stable
    configure_epel_repo: true
    configure_scl_repo: true
    configure_brightbox_repo: false
    selinux: 
    gpgcheck: true
    version: present
    db_manage: true
    db_type: postgresql
    db_adapter: 
    db_host: 
    db_port: 
    db_database: 
    db_username: foreman
    db_password: *****
    db_sslmode: 
    app_root: /usr/share/foreman
    user: foreman
    group: foreman
    user_groups: 
      - puppet
    environment: production
    puppet_home: /var/lib/puppet
    locations_enabled: false
    organizations_enabled: false
    passenger_interface: ""
    server_ssl_ca: /var/lib/puppet/ssl/certs/ca.pem
    server_ssl_chain: /var/lib/puppet/ssl/certs/ca.pem
    server_ssl_cert: /var/lib/puppet/ssl/certs/foreman*.BLAH.BLAH.pem
    server_ssl_key: /var/lib/puppet/ssl/private_keys/foreman*.BLAH.BLAH.pem
    oauth_active: true
    oauth_map_users: false
    oauth_consumer_key: ****
    oauth_consumer_secret: "****"
    passenger_prestart: true
    passenger_min_instances: "1"
    passenger_start_timeout: "600"
    admin_username: admin
    admin_password: ******
    admin_first_name: 
    admin_last_name: 
    admin_email: 
    initial_organization: 
    initial_location: 
    ipa_authentication: false
    http_keytab: /etc/httpd/conf/http.keytab
    pam_service: foreman
    configure_ipa_repo: false
    ipa_manage_sssd: true
    websockets_encrypt: true
    websockets_ssl_key:
/var/lib/puppet/ssl/private_keys/foreman*.BLAH.BLAH.pem
    websockets_ssl_cert: /var/lib/puppet/ssl/certs/foreman*.BLAH.BLAH.pem
  foreman_proxy: 
  repo: stable
    gpgcheck: true
    custom_repo: true
    version: present
    port: 8443
    dir: /usr/share/foreman-proxy
    user: foreman-proxy
    log: /var/log/foreman-proxy/proxy.log
    ssl: true
    ssl_ca: /var/lib/puppet/ssl/certs/ca.pem
    ssl_cert: /var/lib/puppet/ssl/certs/foreman*.BLAH.BLAH.pem
    ssl_key: /var/lib/puppet/ssl/private_keys/foreman*.BLAH.BLAH.pem
    trusted_hosts: 
      - foreman*.BLAH.BLAH
    manage_sudoersd: true
    use_sudoersd: true
    puppetca: true
    ssldir: /var/lib/puppet/ssl
    puppetdir: /etc/puppet
    autosign_location: /etc/puppet/autosign.conf
    puppetca_cmd: "/usr/bin/puppet cert"
    puppet_group: puppet
    puppetrun: true
    puppetrun_cmd: "/usr/bin/puppet kick"
    puppetrun_provider: ""
    customrun_cmd: /bin/false
    customrun_args: "-ay -f -s"
    puppetssh_sudo: false
    puppetssh_command: "/usr/bin/puppet agent --onetime --no-usecacheonfailure"
    puppetssh_user: root
    puppetssh_keyfile: /etc/foreman-proxy/id_rsa
    puppetssh_wait: false
    puppet_user: root
    puppet_url: "https://foreman*.BLAH.BLAH:8140"
    puppet_ssl_ca: /var/lib/puppet/ssl/certs/ca.pem
    puppet_ssl_cert: /var/lib/puppet/ssl/certs/foreman*.BLAH.BLAH.pem
    puppet_ssl_key: /var/lib/puppet/ssl/private_keys/foreman*.BLAH.BLAH.pem
    puppet_use_environment_api: 
    tftp: true
    tftp_syslinux_root: /usr/share/syslinux
    tftp_syslinux_files: 
      - pxelinux.0
      - menu.c32
      - chain.c32
      - memdisk
    tftp_root: /var/lib/tftpboot/
    tftp_dirs: 
      - /var/lib/tftpboot//pxelinux.cfg
      - /var/lib/tftpboot//boot
    tftp_servername: "*.*.*.*."
    dhcp: false
    dhcp_managed: true
    dhcp_interface: eth0
    dhcp_gateway: "*.*.100.1"
    dhcp_range: false
    dhcp_nameservers: default
    dhcp_vendor: isc
    dhcp_config: /etc/dhcp/dhcpd.conf
    dhcp_leases: /var/lib/dhcpd/dhcpd.leases
    dhcp_key_name: ""
    dhcp_key_secret: ""
    dns: false
    dns_managed: true
    dns_provider: nsupdate
    dns_interface: eth0
    dns_zone: BLAH.BLAH
    dns_reverse: "100.168.192.in-addr.arpa"

-- press enter/return to continue or q to stop --  
                                                       dns_server: "127.0.0.1"
    dns_ttl: "86400"
    dns_tsig_keytab: /etc/foreman-proxy/dns.keytab
    dns_tsig_principal: "foremanproxy/foreman*.BLAH.BLAH@BLAH.CO.IL"
    dns_forwarders: []
    virsh_network: default
    bmc: false
    bmc_default_provider: ipmitool
    realm: false
    realm_provider: freeipa
    realm_keytab: /etc/foreman-proxy/freeipa.keytab
    realm_principal: "realm-proxy@EXAMPLE.COM"
    freeipa_remove_dns: true
    keyfile: /etc/rndc.key
    register_in_foreman: true
    foreman_base_url: "https://foreman*.BLAH.BLAH"
    registered_name: foreman*.BLAH.BLAH
    registered_proxy_url: "https://foreman*.BLAH.BLAH:8443"
    oauth_effective_user: admin
    oauth_consumer_key: ****************
    oauth_consumer_secret: "******"
  puppet: false
  foreman_cli: 
    foreman_url: 
    manage_root_config: true
    username: 
    password: 
    refresh_cache: false
    request_timeout: 120
  foreman_plugin_bootdisk: {}
  foreman_plugin_chef: {}
  foreman_plugin_default_hostgroup: false
  foreman_plugin_discovery: 
    version: latest
    source: "http://downloads.theforeman.org/discovery/releases/latest/"
    initrd: foreman-discovery-image-latest.el6.iso-img
    kernel: foreman-discovery-image-latest.el6.iso-vmlinuz
    install_images: false
  foreman_plugin_ovirt_provision: false
  foreman_plugin_tasks: false
  foreman_plugin_hooks: false
  foreman_plugin_puppetdb: false
  foreman_plugin_setup: {}
  foreman_plugin_templates: {}
  foreman_compute_ec2: false
  foreman_compute_gce: false
  foreman_compute_libvirt: false
  foreman_compute_openstack: false
  foreman_compute_ovirt: false
  foreman_compute_rackspace: false
  foreman_compute_vmware: {}
  foreman_proxy_plugin_pulp: false

Спасибо всем!

Майкл.

сначала небольшое предупреждение, интеграция Foreman 1.7 и Chef может быть немного сложной в настройке, и есть ограничения (например, вы не можете использовать https для связи между Foreman и прокси-сервером Foreman). Это будет намного проще в версии 1.8, которая находится примерно на стадии RC1. Так что, возможно, если вы начнете с ночных сборок Foreman, вам будет легче, если это вариант.

Если вы все еще хотите использовать 1.7, убедитесь, что у вас установлена ​​последняя минорная версия 1.7, которая сейчас - 1.7.2. Затем установите плагин foreman_chef (кажется, вы уже это сделали) с помощью мастера-установщика. Теперь необходимо выполнить несколько ручных шагов:

1) установите плагин smart_proxy_chef (в зависимости от вашей платформы это либо rubygem-smart_proxy_chef rpm, либо ruby-smart-proxy-chef deb (только в ночном репозитории, но работает с 1.7)

2) настройте плагин smart_proxy_chef, откройте /etc/foreman-proxy/settings.d/chef.yml и настройте параметры в соответствии с вашими потребностями, убедитесь, что для параметра enabled установлено значение true

3) перезапустите смарт-прокси

4) обновите функции интеллектуального прокси в Foreman, теперь вы должны увидеть Chef среди функций

Как указано выше, интеллектуальный прокси-сервер не может использовать https для связи с Foreman в версии 1.7, если у вас также не установлена ​​марионетка (и сертификат клиента для этого прокси-сервера). Поэтому, если это так, убедитесь, что ваш URL-адрес Foreman - http, и у вас есть интеллектуальный прокси-сервер среди доверенного хоста в настройках Foreman.

Хорошая новость в том, что я работаю над документами, которые должны касаться установки с Foreman 1.8 и Chef 12.

Надеюсь это поможет

РЕДАКТИРОВАТЬ: упомянутые мной документы опубликованы на http://www.theforeman.org/plugins/foreman_chef/0.1/