Вы можете использовать jq
для получения объектов 'keyData', а затем передать их вwhile read
:
jq -c '.responses[].keyData' file.json
{"algorithm":13,"flags":257,"protocol":3,"publicKey":"a1"}
{"algorithm":13,"flags":257,"protocol":3,"publicKey":"a4"}
{"algorithm":13,"flags":257,"protocol":3,"publicKey":"fa4"}
И оттуда:
jq -c '.responses[].keyData' file.json |
while read keydata; do curl --data "'$keydata'" http://example.com/service ; done
Если ввести исходную команду curl
, весь конвейер будет выглядеть так:
curl -v -X POST --data '{ "authToken": ".......", "clientTransactionId": "",}' https:/domain.tld/api/v1/json/keysList |
jq -c '.responses[].keyData' file.json |
while read keydata; do curl --data "'$keydata'" http://example.com/service ; done
Не забудьте изменить вторую команду curl
с фактическим URL-адресом, параметрами и т. д. перед выполнением. Если необходимо, вы можете добавить оператор echo
/ printf
перед командой curl
, чтобы увидеть, как будет выглядеть ваш запрос.
Вероятно, вы ищете PXE:
https://wiki.archlinux.org/index.php/Preboot_Execution_Environment
http://jensd.be/533/linux/create-a-pxe-bootserver-to-server-multiple-linux-distributions
https://www.howtoforge.com/ubuntu_pxe_install_server
Если ваша локальная сеть слишком медленная, вы можете использовать
Кикстарт для Fedora/CentOS/RHEL:https://docs.fedoraproject.org/en-US/fedora/rawhide/install-guide/advanced/Kickstart_Installations/
Полностью автоматическая установка:https://fai-project.org/
Вы можете использовать
Кикстарт RedHat,
FAI -Полностью автоматическая установка
Выход в открытый космос (на основе данных спутника RedHat)
и другие доступные решения.
Репликация ISO 1 ->2 ->4 ->8, поэтому при параллельном выполнении требуется 3 времени копирования и 4 времени установки.
Я бы выбрал nc и минимальный img.gz, затем запустил сценарий для расширения раздела/fs и перегенерировал ключи, имя хоста.
Вы можете распространять установку Linux по сети через многоадресную рассылку, используяudpcast
:
udp-sender /dev/sda
на исходном ПК. udp-receiver /dev/sda
на всех целевых компьютерах. После завершения переноса на всех компьютерах установлена пригодная для использования установка Linux.
В частности, существует несколько подходов к этому.
Больше всего раздражает наличие работающего Linux на всех ПК. Многие рекомендуютhttps://fogproject.org/для PXE, но для этого нужен выделенный сервер, которого у меня просто не было под рукой. В конце концов я прибегнул к кастомному Tiny Core Linux, распространяемому через PXE. Для вашего первого родео вы также можете загрузить живой Linux с USB-накопителя. Все, что вам нужно, это то, что поставляется с udp-sender
иudp-receiver
(в Ubuntu, это находится в пакете udpcast
).
Сам процесс распространения можно значительно ускорить, если клонировать не весь жесткий -диск, а отдельные разделы и быстрое сжатие, подобное gz -2
. Если у вас есть сервер, вы также можете сохранить образ целевой файловой -системы с помощью специального инструмента для клонирования файловой -системы, такого как e2image -ra
. Тогда команды будут примерно такими:
udp-sender image.ext4.gz
udp-receiver | gzip -d > /dev/sda1
С помощью этого метода я клонировал Ubuntu (и Windows )в пару комнат, заполненных компьютерами в школе. Скорость впечатляет.