Я пытаюсь интегрировать новый 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/