1. role push function use password and public key completed

pull/26/head
yumaojun 2015-11-15 12:38:57 +08:00
parent 83c2704d53
commit 8b94833ea0
12 changed files with 65 additions and 242 deletions

View File

@ -177,7 +177,7 @@ def asset_edit(request):
if password == asset.password: if password == asset.password:
password_encode = password password_encode = password
else: else:
password_encode = CRYPTOR.encrypt(password) password_encode = password
else: else:
username = None username = None
password_encode = None password_encode = None

View File

@ -241,6 +241,26 @@ class Tasks(Command):
return {"status": "failed","msg": self.msg} if self.msg else {"status": "ok"} return {"status": "failed","msg": self.msg} if self.msg else {"status": "ok"}
def push_multi_key(self, **user_info):
"""
push multi key
:param user_info:
:return:
"""
ret_failed = []
ret_success = []
for user, key_path in user_info.iteritems():
ret = self.push_key(user, key_path)
if ret.get("status") == "ok":
ret_success.append(ret)
if ret.get("status") == "failed":
ret_failed.append(ret)
if ret_failed:
return {"status": "failed", "msg": ret_failed}
else:
return {"status": "success", "msg": ret_success}
def del_key(self, user, key_path): def del_key(self, user, key_path):
""" """
push the ssh authorized key to target. push the ssh authorized key to target.
@ -260,24 +280,26 @@ class Tasks(Command):
return {"status": "failed","msg": self.msg} if self.msg else {"status": "ok"} return {"status": "failed","msg": self.msg} if self.msg else {"status": "ok"}
def add_multi_user(self, *args): def add_multi_user(self, **user_info):
""" """
add multi user add multi user
:param args: :param user_info: keyword args
user {username: password}
:return: :return:
""" """
results = {} ret_success = []
users = {} ret_failed = []
action = results["action_info"] = {} for user, password in user_info.iteritems():
for user in args:
users[user] = get_rand_pass()
for user, password in users.iteritems():
ret = self.add_user(user, password) ret = self.add_user(user, password)
action[user] = ret if ret.get("status") == "ok":
results["user_info"] = users ret_success.append(ret)
if ret.get("status") == "failed":
ret_failed.append(ret)
return results if ret_failed:
return {"status": "failed", "msg": ret_failed}
else:
return {"status": "success", "msg": ret_success}
def del_user(self, username): def del_user(self, username):
""" """

View File

@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDXDRoQwHevjEVqM2JeVgkADM2aVxEm/yQHCpqYqREe0xGGrSSCykEZGp+O+q5FRZwFEgbZkCykJRrI3+3kEr6zB83N3P2oy/qd0pRTkA0tS50uctQA4aIp9kyOQOKLx8Uttmta0+nLwYKBSSPgJPL1xwC+sVMVvMwsIXyWGzgIWV0KZIrjNYjgEpxU0cQ7pJLXCrw5dM+fMdWvP9MDyMfX5iYZwIaYwnnTY1qO+fNewDbiFSDTo5AzcYnAUsNsRjOqWrNazMEB3o6ZoH8fANlJCJ5Jgeu/IV6UcRAYGYXq924I6AwTVENiDVf3o1lfBvAqTmNfIo25TgZCzewFGl0cuRdKVP6j0qps6N1ZBRVE8NtT4fmg8gP05OGHzz9j8rsPzCpsnQXByYJ927u7ypIm2+xCAhvqElsyJeR5yFs9J9SFa6ix9UzO2hEhO0ypU8ioNU99DbMEhZ4jXwRl63sK5AWUzf3akNGzUDLlttw86SIjV9dt6kOyhKpE8oVVB56DrmHx76uC0Dd75QojDyQQUnLX+pd9OngCCIu+VVWB175+LhDduDRBIrWsFsOciqzCS4LwB5rQFj/6dikfDDKt++M5qOzLeVnnKcMGucH8uHK8JVEB8yZMhsTkha4vxvrh1XsoTxwIqSs9JbUVI2ZjARSO+t8JU4meSV/HL+QeCQ==

View File

@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC5NOm3k5bZLzjsM1YhHskQUvNsk9tGwYTx7+UQ1o1HBJ00C05f+e6FwfyG0wWjVS+WRLVE95JrqLhOKzOFHmxBuA4eA+rSQewjljkJH35ZYhcuqUSpGTU7mSVgQaE7iSJxTfu0vnydsWYbP9IW04LmX5tg2OC69LL5M0NE+LFm07m7rAZTfXpTLs3p4zCKKIfu7jVXtnCwnd3dc5oJpbumuqci2MPKvl4vTIGBBJz3MUqYFxSvsTvBPDop4oV738mso6wuFQQNvVFvt+BCelBkws3Im3Ij0his6OVROAkzw8MLTty3VSPfVcmHM6IEuD/q2GacQafK+BSTADkpmIjyJEKf5U6vftjwW18/rLMJ/CrbFEYigSmNQMSwkY/uOwSzxAPHrW37WA7fxybR8T7o895ELisUd3EhS8al8W4A0QVmkZ+l09uaHW/BrxJ8TuJSPTTfU++vCPfmDb3HQ5A9KH+yO9k8IHuFY5OFwuRGURsUx0kMV8D4YpbsAjwA0xyGw+20zFHC49bgfZj26/tOV2GIPfW9JXR5GXeFgGR9j3QJc6QXJQXgPhLRDzrhtAlyV/iqOeXHOhyq/73lIRu3FWu4IuVuIoIcUQRQfW67ihifywQxIPjlRo6vgXND4J7ugVPZPwHJZ0mCimtMj3vOQ9E6XOFim3+v4dH8M0GZpQ==

View File

@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBlmj6CGfjmP+1pPxaH5otomnU6ShYLs0Oxo19FpzCsWnSstFZMHv7So3zH0l3qvyfqxQzG38T7rkOwu0Ksdp7I6E7Qqov6GxONpsdpOQQisYgdzMdWzpJ2M+fEru/68QCiKCdLs2PUP3T7JwgIf3S0Vqi+qBxGs/aKALL8m2bpjp8Nvo0TVKdEH6LtpYJ/L1gfrMRSIf/Crt9JEjo3GGeN/U94WCU4iBunZL37g/oQ6U+RlylxFiDrrITBYA1cdXGAEY8ts5lvypKGCU7JFHW3YLv6ZlBZud16y8C9J1RjxSTh9RZc6w1p1j4b1hjyNAWSgHLvlCQEo5TKVMMTGx/sR+yVGR1gL8Cr2cPNJoXeDJhKjqlKYCYIdNLFJHx68C+A5ONYrANeHZbCQwsIgZLqD5Zd5nUxC/5z+5y2RU29SuqNktVeGkDpeofn0cQNH2RYZAKdA+EWnMeebr+zgNloXyp9SgR0loPUMk3dXwiWg714DhUoM3HhE2JhJwhyamFKPd13t5mokpLSMzBIae+o84iFDy5MplFASf66k5ZhnQ4/M9QIB6DgyJmo20HN4PvNg8Wbsz06iPbJqYBP4LgaooKQh5QitrvvQg4KZ/mi8jXBsrbeONxcbVlCuFQ3DUZ3MghGx65k/aGDrDk0nuE8p9iDrl8FKf+wgwS4+fMpw==

View File

@ -1,51 +0,0 @@
-----BEGIN RSA PRIVATE KEY-----
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
-----END RSA PRIVATE KEY-----

View File

@ -1 +0,0 @@
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCcN2e3DZBEWLZcw/20Mo39H8leTUhXshy7JAriAoJoDfiMAy2fqhE3RbvipD3xcKcYWzrX9lEfp6mw1PyStVbcy7NqJ0spMnnNSQpqA0T2K2ySeVzVOfMhUHQOsyraVG7HizvtTHNzFqBOvucxdfEaCYKw+NWDsRCOIn9VjBUjK4fnL2qxeOiWP9ZsiOYSNH0wkhJYPjx0vPxVLbbDnOl4fSU+Do/bIeq0TZ4jY7XP9ctCSxQVztZCvR70AZBei5PpB9kii/CbsiRgprj9r8wz/TrfjiWTt+J0cBjpschDvOpuVXNMqgD+WF0408XJgXsKatmwRl6eQc86TtpKMsvhj+R3cF3Fj2Q8fJFKGmoHHbG3V3Z2lc2KwvjcjDWwy2/tY8bT9uLDQZYLxEGV+Mjbux/qDytMC5vWXKXVm0J7FBrWy8RqhWb+lTAm7nH1gSfAkrlHZRyHz49bMUwkajDFS9QcBmd0kJ/MDIGsiNxg+MFQrJzXkSw8QHhXWRDDNHu4eh5rPbYwPVNobonkBy3Jf0WPB75qumE7JtoHLKcRyk2zWEDwSrVZ9Z8/faaFh9AMVkP++WCg5R+alovn906zcXZei0Nx91q7+nki2RMfP+uZsRWJllCiZz6GfNp6Ry8vHfJ2K58uKCH0OEluoN/14wVM+RaEER+F0Ceo0QyDaQ==

View File

@ -3,7 +3,7 @@
import random import random
import os.path import os.path
from Crypto.PublicKey import RSA from paramiko.rsakey import RSAKey
from os import chmod, mkdir from os import chmod, mkdir
from uuid import uuid4 from uuid import uuid4
@ -49,14 +49,17 @@ def gen_keys():
key_path_dir = os.path.join(KEY_DIR, key_basename) key_path_dir = os.path.join(KEY_DIR, key_basename)
mkdir(key_path_dir, 0700) mkdir(key_path_dir, 0700)
key = RSA.generate(4096) key = RSAKey.generate(2048)
private_key = os.path.join(key_path_dir, 'id_rsa') private_key = os.path.join(key_path_dir, 'id_rsa')
public_key = os.path.join(key_path_dir, 'id_rsa.pub') public_key = os.path.join(key_path_dir, 'id_rsa.pub')
with open(private_key, 'w') as content_file: key.write_private_key_file(private_key)
content_file.write(key.exportKey('PEM'))
with open(public_key, 'w') as content_file:
content_file.write(key.publickey().exportKey('OpenSSH'))
with open(public_key, 'w') as content_file:
for data in [key.get_name(),
" ",
key.get_base64(),
" %s@%s" % ("jumpserver", os.uname()[1])]:
content_file.write(data)
return key_path_dir return key_path_dir

View File

@ -283,6 +283,13 @@ def perm_role_delete(request):
# 获取参数删除的role对象 # 获取参数删除的role对象
role_id = request.POST.get("id") role_id = request.POST.get("id")
role = PermRole.objects.get(id=role_id) role = PermRole.objects.get(id=role_id)
role_key = role.key_path
# 删除存储的秘钥,以及目录
key_files = os.listdir(role_key)
for key_file in key_files:
os.remove(os.path.join(role_key, key_file))
os.rmdir(role_key)
# 数据库里删除记录
role.delete() role.delete()
return HttpResponse(u"删除角色: %s" % role.name) return HttpResponse(u"删除角色: %s" % role.name)
else: else:
@ -358,34 +365,33 @@ def perm_role_push(request):
calc_assets = set(assets_obj) | set(group_assets_obj) calc_assets = set(assets_obj) | set(group_assets_obj)
# 生成Inventory # 生成Inventory
hosts = [{"hostname": asset.ip, push_resource = [{"hostname": asset.ip,
"port": asset.port, "port": asset.port,
"username": asset.username, "username": asset.username,
"password": asset.password} for asset in calc_assets] "password": asset.password} for asset in calc_assets]
# 获取角色的推送方式,以及推送需要的信息 # 获取角色的推送方式,以及推送需要的信息
roles_obj = [PermRole.objects.get(name=role_name) for role_name in role_names] roles_obj = [PermRole.objects.get(name=role_name) for role_name in role_names]
roles_info = {} role_pass = {}
role_key = {}
for role in roles_obj: for role in roles_obj:
roles_info[role.name] = {"password": role.password, "key": role.key_path} role_pass[role.name] = role.password
role_key[role.name] = os.path.join(role.key_path, 'id_rsa.pub')
# 推送 # 调用Ansible API 进行推送
password_push = request.POST.get("use_password") password_push = request.POST.get("use_password")
key_push = request.POST.get("use_publicKey") key_push = request.POST.get("use_publicKey")
task = Tasks(push_resource)
ret = {}
if password_push: if password_push:
pass ret["password_push"] = task.add_multi_user(**role_pass)
if key_push: if key_push:
pass ret["key_push"] = task.push_multi_key(**role_key)
# 调用Ansible API 执行 password方式的授权 TODO: Surport sudo
# tasks = Tasks(hosts)
# ret = tasks.add_multi_user(*role_names)
return HttpResponse(u"未实现")
if ret["password_push"].get("status") == "success" and ret["kye_push"].get("status") == "success":
return HttpResponse(u"推送系统角色: %s" % ','.join(role_names))
else:
return HttpResponse(u"推送失败")