сценарий оболочки для загрузки на несколько узлов с разными IP-адресом и именем

Да, ваш процессор выполняет NOP (No Op) или HLT

Linux использует простаивающий процесс. Эта задача ничего не делает, но посылает HLT и заставляет процессор использовать меньше энергии и тепла, пока нечего делать. Затем, когда нужно выполнить работу, процессор "включается" и выполняет работу.

Теперь имейте в виду, что планировщик Linux будет выполнять "любую работу, которую сможет" до этого момента. Это HLTing также происходит очень быстро.

-2
13.03.2018, 00:04
3 ответа
#!/bin/bash

# Read ip.txt and names.txt into arrays 'ips' and 'names'. This assumes that
# the files have the same number of lines, and that both files are in the
# correct order (i.e. line N of ip.txt corresponds to line N of name.txt),
# so that the indices for both arrays match.
mapfile -t ips < ip.txt 
mapfile -t names < name.txt 

# Don't use all-caps variable names in your own scripts, they're probably already
# used by other programs.  $USER certainly is.  Use lowercase variable names.
user="ubuntu"
key="test.pem"

for i in "${!ips[@]}"; do
  knife bootstrap  "${ips[$i]}" -ssh-port 22 \
    --ssh-user "$user" --sudo  --i "$key" \
    --no-host-key-verify -N "${names[$i]}" --run-list "role[webserver]"
done

ПРИМЕЧАНИЕ:mapfile— это bash, встроенный -. Это синоним readarray.

Также обратите внимание, :я не запускаю chefздесь, поэтому я понятия не имею, будет ли ваша команда knife bootstrapделать то, что вы хотите. Я предположил, что синтаксис правильный и вы использовали соответствующие параметры.

0
28.01.2020, 05:17

Использование современных сценариев в :

ip=$(< ip.txt)
user="ubuntu"
key="test.pem"
name=$(< name.txt)

for i in $ip; do
    knife bootstrap  $i -ssh-port 22 \
        --ssh-user $user --sudo  --i $key \
        --no-host-key-verify -N $name --run-list "role[webserver]"
 done

Не знаю, что

"role[webserver]"

если это значение из ассоциативного массива, то оно должно быть записано как

"${role[webserver]}"
0
28.01.2020, 05:17

На самом деле я пытаюсь получить вывод в формате ниже путем передачи $IP и $NAME из двух разных файлов

1.1.1.1 веб1

2.2.2.2 веб2

3.3.3.3 веб3

0
28.01.2020, 05:17

Теги

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