一 公司的部门介绍
2. IT管理工具 行业现状: 技术部 运维部门 运维: - 系统、业务 - 网络 - 桌面 DBA: - 数据库管理 运维开发: - 为运维开发工具 - 为开发自动化工具 前端 测试 咨询 口碑 二手车 车商城 自动化招聘:
二 paramiko模块实现ssh链接
fabric模块详细信息:http://python.jobbole.com/87241/
实例借鉴:https://www.cnblogs.com/aslongas/p/5961144.html
ansible模块的详细信息:https://www.cnblogs.com/leomei91/p/7255353.html
使用:https://blog.csdn.net/u013636377/article/details/50732160
paramiko模块官网:http://docs.paramiko.org/en/2.4/
使用和介绍:https://blog.csdn.net/aeolus_pu/article/details/50965031
#!/usr/bin/env python # -*- coding:utf-8 -*- """ paramiko,用于远程连接服务器操作。 安装: pip3 install paramiko """ import paramiko def user_pwd_ssh(host,user,pwd,cmd): """ 使用用户名和密码远程执行命令 :param cmd: :return: """ # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname=host, port=22, username=user, password=pwd) # 执行命令 stdin, stdout, stderr = ssh.exec_command(cmd) # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close() return result def rsa_ssh(cmd): """ 使用秘钥远程执行命令 :param cmd: :return: """ # private_key = paramiko.RSAKey.from_private_key_file('/Users/wupeiqi/.ssh/id_rsa') private_key = paramiko.RSAKey.from_private_key_file(r'C:\Users\Administrator\.ssh\id_rsa') # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 连接服务器 ssh.connect(hostname='123.206.9.225', port=22, username='root', pkey=private_key) # 执行命令 stdin, stdout, stderr = ssh.exec_command(cmd) # 获取命令结果 result = stdout.read() # 关闭连接 ssh.close() return result def user_pwd_upload_download(): """ 基于用户名密码实现远程上传和下载文件 :return: """ transport = paramiko.Transport(('123.206.9.225', 22,)) transport.connect(username='root', password='fangshaoweigege') sftp = paramiko.SFTPClient.from_transport(transport) # 上传文件: # 参数一:本地文件 # 参数二:目标服务器路径 # sftp.put('xxxx.py', '/tmp/fangjinghong.py') # 下载文件: # 参数一:服务器文件路径 # 参数二:本地路径 sftp.get('/tmp/gpu_init.log', 'x.log') # 面试题:找到某个目录中所有的文件并上传。 transport.close() def ssh_upload_download(): """ 基于ssh实现文件上传和下载 :return: """ private_key = paramiko.RSAKey.from_private_key_file('/Users/wupeiqi/.ssh/id_rsa') transport = paramiko.Transport(('47.98.134.86', 22,)) transport.connect(username='root', pkey=private_key) sftp = paramiko.SFTPClient.from_transport(transport) # 上传文件: # 参数一:本地文件 # 参数二:目标服务器路径 sftp.put('1.git.py', '/tmp/xx.py') # 下载文件: # 参数一:服务器文件路径 # 参数二:本地路径 # sftp.get('/tmp/test.py', '2.py') transport.close() if __name__ == '__main__': # result = user_pwd_ssh('123.206.9.225','root','fangshaoweigege','ifconfig') # print(result) # result = rsa_ssh('ifconfig') # print(result) user_pwd_upload_download()
用Python在本地执行命令subprocess
v = subprocess.check_output('git clone https://github.com/WuPeiqi/Tyrion.git',shell=True)
print(v)
subprocess.Popen(...)
import subprocess """ result = subprocess.call("dir", shell=True) print(result,1111) """ # import subprocess # obj = subprocess.Popen("git clone https://github.com/WuPeiqi/Tyrion.git", shell=True, cwd=r'D:\wupeiqi\s7') # print(obj) v = subprocess.check_output('git clone https://github.com/WuPeiqi/Tyrion.git',shell=True) print(1111,v,1111)
三 saltstack模块
只在一台机器上安装:
master:一台
slave:其他所有
安装过程:
master:
1. 安装salt-master yum install salt-master 2. 修改配置文件:/etc/salt/master interface: 0.0.0.0 # 表示Master的IP 3. 启动 /etc/init.d/salt-master start 或 service salt-master start 或 systemctl start salt-master.service
slave:
1. 安装salt-minion yum install salt-minion 2. 修改配置文件 /etc/salt/minion master: 10.211.55.4 # master的地址 或 master: - 10.211.55.4 - 10.211.55.5 random_master: True id: c2.salt.com # 客户端在salt-master中显示的唯一ID 3. 启动 service salt-minion start
授权:
""" salt-key -L # 查看已授权和未授权的slave salt-key -a salve_id # 接受指定id的salve salt-key -r salve_id # 拒绝指定id的salve salt-key -d salve_id # 删除指定id的salve """
在master服务器上对salve进行远程操作:
基于shell命令:
salt 'c2.salt.com' cmd.run 'ifconfig'
基于Salt的API:
import salt.client local = salt.client.LocalClient() result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])
常用命令:
编辑文件的路径:/etc/salt/minion vim进入编辑
systemctl start salt-master.service : 启动服务的时候总是出现这个提示,解决的办法就是写上/bin/systemctl start httpd.service这条命令
salt-key -L : 查看已授权和未授权的slave
salt-key -a 指定的那个id执行:接受指定id的slave
salt-key -A: 接收所有指定id的slave
salt 'cc.com' cmd.run 'ifconfig' : 指定哪个指定id的执行这条命令
salt '*' cmd.run 'ifconfig' : 所有制定过的id都执行这条命令
salt 'c*.com' cmd.run 'ifconfig' : 所有以什么开头的id名执行这条命令
详细命令信息:https://blog.csdn.net/wjacketcn/article/details/50853604