Настройки прокси в / до среды выполнения cloud-init

Экземпляры, запущенные в наш VPC в EC2, требуют HTTP_PROXY и партнеров, которые должны иметь доступ ко всему, что находится за пределами VPC.

Теперь я столкнулся с проблемой (с использованием конвейера данных), когда я не могу контролировать пользовательские данные, передаваемые для облачной конфигурации. Поскольку прокси не установлены, я вижу, что wget зависает (пытается подключиться) во время пользовательских скриптов cloud-init.

После установки переменных среды в / etc / environment кажется, что это не читается на уровне запуска 3 (здесь используется явно устаревший Amazon Linux 2013.03 и ps axf предполагает, что он вызывается с уровня запуска 3, но должен признать, что я не знаком с различными демонами инициализации и их взаимодействием с cloud-init):

 1354 ?        S      0:00  \_ /bin/bash /etc/rc3.d/S99cloud-init-user-scripts start
 1355 ?        S      0:00      \_ /usr/bin/python2.6 /usr/bin/cloud-init-run-module once-per-instance user-scripts execute run-parts /var/lib/cloud/data/scripts
 1356 ?        S      0:00          \_ /bin/bash /usr/bin/run-parts /var/lib/cloud/data/scripts
 1360 ?        S      0:00              \_ /bin/bash /var/lib/cloud/data/scripts/part-000
 1362 ?        S      0:00                  \_ wget -O remote-runner-install -N http://datapipeline-ap-southeast-2.s3.amazonaws.com/ap-southeast-2/bootstrap-actions/latest/TaskRu...
                                                \
                                                 \ This works in a login shell as I've set 
                                                   the variables in /etc/environment

Установка этих переменных здесь, похоже, не работает:

  • / etc / environment
  • / etc / sysconfig / cloudinit

Как настроить прокси, используемый во время выполнения cloud-init ?

1
задан 25 July 2016 в 15:21
2 ответа

На данный момент нет хорошего способа добавить прокси к облачной инициализации во время выполнения. Есть открытая ошибка, связанная с этим на панели запуска / cloud-init .

В комментариях есть обходные пути, но все они по своей сути зависят от приложения (например, для yum или apt ), задав прокси-переменные в их конфигурациях.

1
ответ дан 3 December 2019 в 23:43

пример пользовательских данных для cloud-init при создании экземпляра ubuntu в openstack:

#cloud-config
write_files:
  - path: /etc/apt/apt.conf.d/00-proxy
    permissions: 0640
    owner: root
    content: |
      Acquire::http { Proxy "http://example.com:8080"; };
      Acquire::https { Proxy "http://example.com:8080"; };
      Acquire::http::Pipeline-Depth "23";
      Acquire::Languages "none";
   
package_upgrade: true

packages:
  - wget
  - sysstat
  - screen
2
ответ дан 24 December 2020 в 15:00

Теги

Похожие вопросы