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

chef 13, и запрещение сетевых запросов связующего

Мои узлы вообще не имеют доступа в Интернет. У нас нет разрешения на создание местного зеркала драгоценных камней. Все драгоценные камни должны устанавливаться с сервера Chef.

Теперь, когда Chef запускается, он вызывает установку пакета (chef / lib / chef / cookbook / gem_installer.rb - L51) без параметров.

Как нам остановить запуск сборщика или принудительно запустить его в локальную или автономную установку, чтобы он не инициировал выходное соединение? (установка из локального каталога - это нормально, если мы можем принудительно установить его для каждого камня в другое место)

Кто-нибудь еще запускает это в строгой корпоративной среде с сильными брандмауэрами и правилами продвижения программного обеспечения? Боюсь, что повару это сложно.

  1. Это, похоже, не помогло, но у меня может быть неправильное содержимое dir (просто жемчужина):

    /opt/chef/embedded/bin/bundle \ config \ local.chef-vault /var/chef/cache/cookbooks/gem-chef-vault/files/default/

  2. Ладно. Таким образом, проверка подмодулей в файлах может работать:

    cd ~/chef-repo git submodule add \ https://github.com/chef/chef-vault.git \ local-cookbooks/gem-chef-vault/files/default/chef-vault

    обратите внимание, что, поскольку шеф-повар присоединится ко всем каталогам кулинарных книг, ваша ссылка в сборщике по-прежнему ... / cookbooks / ....

  3. Хм. Сложно изменить /root/.bundle/config до начала загрузки гема. Это, например, не победа в гонке:

    template /root/.bundle/config do action :nothing end.run_action(:create)

  4. боббитная процедура в [Строке 49] (https://github.com/chef/chef/blob/master/lib/chef/cookbook/gem_installer.rb#L49) (|| true) отключает захват драгоценного камня, но затем мы возвращаемся к ошибке, когда включенная сторонняя поваренная книга 'требует' (еще не установленного) драгоценного камня во время компиляции - и r = / r.run_action (: install) бит, похоже, еще не запускается ... именно там, где я думаю, он должен был.

  5. даже если бы я мог зажечь дешевый пустой репозиторий с драгоценностями на коробке шеф-повара:

    mkdir -p /var/opt/opscode/nginx/html/repo/gems /opt/opscode/embedded/bin/gem \ generate_index \ -d /var/opt/opscode/nginx/html/repo/

    :::::::::::::: /var/opt/opscode/nginx/etc/addon.d/99-gem-mirror_external.conf :::::::::::::: location "/repo/" { } (перезапустите с chef-server-ctl restart)

    .... и укажите узлы в этом месте

    knife ssh 'name:victim2' -- \ chef-client --config-option 'rubygems_url=http://chef/repo/'

    он все еще умирает - при "требует", поэтому я думаю, что URL-адрес не имеет значения.

  6. наша текущая стратегия, если мы по-прежнему будем работать с шеф-поваром на предприятии, выглядит следующим образом:

    ##3p_something::default.rb: chef_gem 'something' do # install in compile source '/some/local/file.gem' clear_sources true compile_time true include_default_source false action :nothing end.run__action (:install) # include_recipe 'something'

    В идеале мы хотим предварительно засеять необходимый драгоценный камень до того, как включенный рецепт слепо захватит что-то из Интернета, чтобы мы получили что-то проверяемое, последовательное и повторяемое (конечно; и обновление file.gem - еще одно усилие, которое мы принимаем в этом отношении).

Вроде похоже проблемы с поваром 3456 но не полностью, или проблема с докером 682 или Chef-vault, выпуск 61 и 63: наша проблема в том, что все это происходит автократически, когда считывается строка 'gem' в metadata.rb.

Вы можете использовать rubygems_url config, чтобы нацеливаться на локальное зеркало, или просто не используйте кулинарные книги, которые используют эту функцию, и она не должна активироваться вообще.

Самый выигрышный ответ, кажется, соответствует №5. Вам нужно будет создать зеркало драгоценных камней и управлять им, а также ввести локальный URL-адрес одним из двух способов.

МОЖЕТ БЫТЬ загрузкой местоположения в .gemrc и .bundle / config будет работать (не подтверждено напрямую), как в № 3, но не пытайтесь использовать на нем постамбль run_action, потому что оператор gem является первым. это избавит от необходимости указывать бит отмены в растущей и опасной командной строке (сделайте это как можно скорее, поскольку автоматизация может снизить риск опечаток). Что касается действительного, но пустого «репо» драгоценного камня для URL-адреса, чтобы остановить этот процесс, я не смог подтвердить, что вопрос был понят.

№6, вероятно, не сработает. МОЖЕТ БЫТЬ, даже если вы убьете код в пакете chef или отключите его с помощью действительного, но пустого репозитория гемов.

Да, это угрожает Единому Источнику Истины. Да, вам нужно настроить больше снаряжения. Да, вам нужно поддерживать его. Да, может сработать. Других идей нет.

Помните, в конце концов, что «это на вас». Я хотел бы поблагодарить Шона Спайсера за помощь в экономии $ 137 на узел в год. : - /