Вот пример базового скрипта на Bash для использования в Ansible для распространения публичных ключей на целевые машины:
```bash
#!/bin/bash
# Путь к публичному ключу
PUBLIC_KEY_PATH="/путь/к/вашему/публичному/ключу/id_rsa.pub"
# Целевые хосты
TARGET_HOSTS=("хост1" "хост2" "хост3")
for host in "${TARGET_HOSTS[@]}"
do
ssh-copy-id -i $PUBLIC_KEY_PATH user@$host
done
```
Для улучшения этого скрипта можно добавить проверку наличия файла с публичным ключом и обработку ошибок. Например, можно добавить следующий код:
```bash
#!/bin/bash
# Путь к публичному ключу
PUBLIC_KEY_PATH="/путь/к/вашему/публичному/ключу/id_rsa.pub"
# Проверяем наличие файла с публичным ключом
if [ ! -f "$PUBLIC_KEY_PATH" ]; then
echo "Error: Public key file not found"
exit 1
fi
# Целевые хосты
TARGET_HOSTS=("хост1" "хост2" "хост3")
for host in "${TARGET_HOSTS[@]}"
do
ssh-copy-id -i $PUBLIC_KEY_PATH user@$host
if [ $? -ne 0 ]; then
echo "Error: Failed to copy public key to $host"
fi
done
```
Этот улучшенный скрипт проверит наличие файла с публичным ключом перед началом выполнения, а также будет выводить сообщение об ошибке, если копирование ключа на целевую машину не удалось.