Как сетевой сервер автоматически реализует службу часов NTP в пакетном режиме?

Как сетевой сервер автоматически реализует службу часов NTP в пакетном режиме?
Как сетевой сервер автоматически реализует службу часов NTP в пакетном режиме?

Недавно в проект были добавлены два новых устройства часов. Более сотни серверов Linux в сети должны быть настроены с помощью службы NTP для достижения синхронизации времени с устройством часов. Чтобы избежать проблем с настройкой каждого устройства по одному, был написан сценарий Python.

Сценарий разделен на 3 файла, первый - это скрипт python, второй - список хостов, который содержит два элемента IP-адреса и пароля, а третий - командный файл, включая установку программного пакета ntp из yum в конфигурацию файла параметров ntp.conf. Для запуска оператора работы службы NTP.

Выполните сценарий, вызовите эти два файла, и все серверы в сети будут установлены и настроены для завершения службы. Фактически, этот скрипт может выполнять все виды пакетных операций, нужно только изменить командный файл, скрипту не нужно вносить никаких изменений.

кошка cmd_list.txt

### Настроить файл NTP

mv /etc/ntp.conf /etc/ntp.conf.bak

echo 'сервер 192.168.5.200' >> /etc/ntp.conf

echo 'Fudge 192.168.5.200 stratum 10' >> /etc/ntp.conf

### Установите программный пакет NTP и запустите службу NTP.

rm /etc/yum.repos.d/*.repo

echo '[ol7_u5_base]' >> /etc/yum.repos.d/local.repo

echo 'имя = Oracle Linux' >> /etc/yum.repos.d/local.repo

echo 'baseurl = http: //192.168.5.250/redhat7' >> /etc/yum.repos.d/local.repo

echo 'gpgkey = http: //192.168.5.250/redhat7/RPM-GPG-KEY-redhat-release' >> /etc/yum.repos.d/local.repo

echo 'gpgcheck = 1' >> /etc/yum.repos.d/local.repo

echo 'enabled = 1' >> /etc/yum.repos.d/local.repo

yum install -y ntp *

systemctl start ntpd

systemctl включить ntpd

кошка host.txt

192.168.5.1 пройти1

192.168.5.2 пройти2

192.168.5.254 пройти254

кошка auto_ntp.py

импорт парамико

время импорта

import sys

импортный сокет

host = open (sys.argv [1])

host_list = []

имя пользователя = «корень»

для хоста в host.readlines ():

host_list.append(hosta.strip().split())

f = open ('log.txt', 'а')

cmd = open (sys.argv [2])

для имени хоста пароль в host_list:

ssh_client = paramiko.SSHClient()

ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:

   ssh_client.connect(hostname=hostname, username=username, password=password)

   print("Successfull connected to ", hostname)

   cmd.seek(0)

   stdin, stdout, stderr = ssh_client.exec_command('hostname')

   f.write(hostname + ' ' + stdout.read().decode('utf-8') + "\n")

   for ccc in cmd.readlines():

       c = ccc.strip()

       stdin, stdout, stderr = ssh_client.exec_command(c)

       f.write(stdout.read().decode('utf-8') + "\n")

       f.write(stderr.read().decode('utf-8') + "\n")

except paramiko.ssh_exception.AuthenticationException:

       print("User authentication failed for " + username)

except socket.error:

       print(hostname + " is not reachable.")

cmd.close ()

f.close ()

ssh_client.close ()

выполненный:

python auto_ntp.py host.txt cmd_list.txt

Выполняйте любые другие операции в пакетном режиме, если вы изменяете операторы операции в файле cmd_list.txt.

рекомендация

отblog.csdn.net/weixin_44990608/article/details/107627636