自動批量對linux伺服器安裝配置NTP服務
最近專案上新上了2臺時鐘裝置,需要把網路內的一百多臺linux伺服器配置NTP服務,實現和時鐘裝置時間同步,為了避免每臺裝置挨個配置的麻煩,寫了一個python指令碼。指令碼分3個檔案,第一個是python指令碼,第二個是主機清單,裡面包含IP地址和密碼兩項,第三個是命令檔案,包含從yum安裝ntp軟體包到配置ntp.conf引數檔案到啟動NTP服務所要執行的操作語句。執行指令碼,呼叫這個兩個檔案,網路內的所有伺服器NTP安裝配置起服務就完成了。事實上這個指令碼可以做各種批量操作,只需要改一下命令檔案即可,指令碼不用做任何更改。
cat cmd_list.txt
###配置NTP檔案
mv /etc/ntp.conf /etc/ntp.conf.bak
echo 'server 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 'name=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 enable ntpd
cat host.txt
192.168.5.1 pass1
192.168.5.2 pass2
...
192.168.5.254 pass254
cat auto_ntp.py
import paramiko
import time
import sys
import socket
host = open(sys.argv[1])
host_list = []
username="root"
for hosta in host.readlines():
host_list.append(hosta.strip().split())
f = open('log.txt', 'a')
cmd = open(sys.argv[2])
for hostname,password in 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檔案中的操作語句即可
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/51077/viewspace-2699211/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux伺服器配置---ntpLinux伺服器
- 如何在 Linux 上安裝、配置 NTP 伺服器和客戶端?Linux伺服器客戶端
- Kali Linux常用服務配置教程安裝及配置DHCP服務Linux
- CentOS 配置阿里雲 NTP 服務CentOS阿里
- linux 配置ntp時間伺服器Linux伺服器
- Linux伺服器---郵件服務postfix安裝Linux伺服器
- Linux 安裝Mosquitto服務LinuxUI
- linux 安裝git服務LinuxGit
- Linux平臺下snmp服務的安裝和配置Linux
- 服務端常見服務安裝及配置服務端
- GPS對時裝置(GPS對時系統)LINUX系統下配置NTP方法Linux
- Linux伺服器配置——安裝CentOS以及源配置Linux伺服器CentOS
- Linux伺服器---郵件服務postfix配置Linux伺服器
- Linux系統安裝Redis服務LinuxRedis
- Linux下安裝SVN服務端Linux服務端
- Kali Linux常用服務配置教程啟動DHCP服務Linux
- Linux伺服器配置——安裝配置JDK1 7Linux伺服器JDK
- Linux環境下安裝配置vsftpd服務(三種認證模式)LinuxFTP模式
- linux安裝nodejs及服務部署(二)LinuxNodeJS
- 13. 自動化運維——批量關閉tomcat服務運維Tomcat
- Linux系統安裝並配置nginx實現多服務同一埠LinuxNginx
- ubuntu系統samba服務的安裝配置UbuntuSamba
- centos8安裝和配置redis服務CentOSRedis
- CentOS7下RabbitMQ服務安裝配置CentOSMQ
- Nexus windows安裝,配置為系統服務Windows
- Windos NTP 服務設定
- Linux伺服器---設定服務啟動Linux伺服器
- 使用阿里雲映象站NTP服務搭建NTP伺服器(基於CentOS 7系統)阿里伺服器CentOS
- Linux伺服器必備自啟動服務有哪些?linux系統使用學習Linux伺服器
- Linux安裝Nginx並配置啟動命令LinuxNginx
- 如何安裝和配置 Chrony 作為 NTP 客戶端?客戶端
- 如何在 Kali Linux 上安裝 SSH 服務Linux
- Linux配置JavaEE環境 Linux中安裝JDK、Tomcat、mysql 設定Tomcat自啟動、設定mysql自啟動LinuxJavaJDKTomcatMySql
- 【linux運維】Linux伺服器玩轉vsftpd安裝與配置Linux運維伺服器FTP
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(1)OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(2)OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.5. Linux配置OracleLinux
- centos6.5伺服器安裝Nginx設定服務和開機自啟CentOS伺服器Nginx