Как я изменяю несколько/etc/fstab серверов Linux одновременно

У нас есть много сервера Linux, который смонтирует несколько файловых серверов Linux использованием SMB или NFS /etc/fstab

Но вручную изменение каждого сервера /etc/fstab очень утомительно.

Есть ли любой способ отредактировать несколько серверов Linux /etc/fstab одновременно?

2
задан 3 July 2014 в 12:33
4 ответа

В долгосрочной перспективе, это тот тип задач, которые средства управления конфигурированием (например, марионетка , шеф-повар , допустим).

Для краткосрочного решения я бы использовал что-то вроде функции или ткани , чтобы вытолкнуть ваш fstab файл. Просмотрим пример использования ткани , так как это тот, который мне наиболее знаком.

Установка зависит от вашего дистрибутива. Скорее всего, один из них сработает:

$ sudo pip install fabric
$ sudo easy_install fabric
$ sudo apt-get install fabric

Тогда вам также понадобится распространить ключи ssh. Всё просто:

$ ssh-keygen
$ ssh-copy-id host2
$ ssh-copy-id host3

Теперь вам нужно создать файл fab (в основном скрипт Python). Например, copy_fstab.fab будет выглядеть примерно так:

from fabric.operations import put
from fabric.operations import sudo

def copy_fstab():
    # Copy local fstab over
    put('/etc/fstab', '/etc/fstab', use_sudo=True)

    # Run mount -a
    sudo('mount -a')

Наконец, вы запускаете файл fab:

$ fab -H host2,host3 copy_fstab

Надеюсь, это поможет!

.
6
ответ дан 3 December 2019 в 08:46

Я согласен с Питером, что использование инструмента развёртывания является самым лучшим решением. Однако я не согласен с тем, что использование cron является хорошей идеей!

Если бы инструмент установки был слишком большим, я бы использовал поздний init/systemd скрипт (который мог бы получить определения из центрального хранилища) и смонтировал бы файловые системы.

1
ответ дан 3 December 2019 в 08:46

С помощью таких средств массового развертывания, как automateit, salt, puppet, ansible и т.д.. вы можете запустить скрипт (в марионетке использовать exec) или cronjob, как показано ниже, чтобы использовать mount для запуска массового развертывания fstab:

mount -a --fstab pathtofile

И мой старый ответ (если ваш mount слишком старый, чтобы иметь --fstab / -T): в таком инструменте массового развертывания, вы можете сделать ужасный хакер для эмуляции поведения /etc/fstab.d (так как /etc/fstab.d еще не поддерживается, и эти каталоги делают инструменты развертывания очень полезными).

Переместите fstab в /etc/fstab. d/01main

Разверните свою строку fstab в файле /etc/fstab.d/02nfsstuff

Объедините их (здесь важен порядок следования номеров):

cat /etc/fstab.d/* > /etc/fstab

Сделайте ужасный хакерский cronjob в /etc/cron.d/nfsstuff

0 * * * * root cat /etc/fstab.d/* > /etc/fstab ; mount -a

Надеюсь, вы найдете правильное решение, но до тех пор, может быть, это будет полезно.

.
1
ответ дан 3 December 2019 в 08:46

Если предположить, что у меня есть учетная запись администратора на каждом сервере, доступном по SSH с авто-ключом public-key, я просто удаленно запущу sed или другой инструмент для редактирования текста, используя эту учетную запись SSH, в бэш-цикле.

1
ответ дан 3 December 2019 в 08:46

Теги

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