Commit 18841d6c authored by fit2cloud-fengyi's avatar fit2cloud-fengyi

add ignore

parent 84c4e690
......@@ -30,4 +30,4 @@ celerybeat.pid
django.db
celerybeat-schedule.db
data/static
_build/
docs/_build/
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-12-21 16:06
from __future__ import unicode_literals
import assets.models.utils
from django.db import migrations, models
import django.db.models.deletion
import uuid
def add_default_group(apps, schema_editor):
group_model = apps.get_model("assets", "AssetGroup")
db_alias = schema_editor.connection.alias
group_model.objects.using(db_alias).create(
name="Default"
)
def add_default_cluster(apps, schema_editor):
cluster_model = apps.get_model("assets", "Cluster")
db_alias = schema_editor.connection.alias
cluster_model.objects.using(db_alias).create(
name="Default"
)
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='AdminUser',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
('username', models.CharField(max_length=16, verbose_name='Username')),
('_password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Password')),
('_private_key', models.TextField(blank=True, max_length=4096, null=True, validators=[assets.models.utils.private_key_validator], verbose_name='SSH private key')),
('_public_key', models.TextField(blank=True, max_length=4096, verbose_name='SSH public key')),
('comment', models.TextField(blank=True, verbose_name='Comment')),
('date_created', models.DateTimeField(auto_now_add=True)),
('date_updated', models.DateTimeField(auto_now=True)),
('created_by', models.CharField(max_length=32, null=True, verbose_name='Created by')),
('become', models.BooleanField(default=True)),
('become_method', models.CharField(choices=[('sudo', 'sudo'), ('su', 'su')], default='sudo', max_length=4)),
('become_user', models.CharField(default='root', max_length=64)),
('_become_pass', models.CharField(default='', max_length=128)),
],
options={
'ordering': ['name'],
},
),
migrations.CreateModel(
name='Asset',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('ip', models.GenericIPAddressField(db_index=True, verbose_name='IP')),
('hostname', models.CharField(max_length=128, unique=True, verbose_name='Hostname')),
('port', models.IntegerField(default=22, verbose_name='Port')),
('is_active', models.BooleanField(default=True, verbose_name='Is active')),
('type', models.CharField(blank=True, choices=[('Server', 'Server'), ('VM', 'VM'), ('Switch', 'Switch'), ('Router', 'Router'), ('Firewall', 'Firewall'), ('Storage', 'Storage')], default='Server', max_length=16, null=True, verbose_name='Asset type')),
('env', models.CharField(blank=True, choices=[('Prod', 'Production'), ('Dev', 'Development'), ('Test', 'Testing')], default='Prod', max_length=8, null=True, verbose_name='Asset environment')),
('status', models.CharField(blank=True, choices=[('In use', 'In use'), ('Out of use', 'Out of use')], default='In use', max_length=12, null=True, verbose_name='Asset status')),
('public_ip', models.GenericIPAddressField(blank=True, null=True, verbose_name='Public IP')),
('remote_card_ip', models.CharField(blank=True, max_length=16, null=True, verbose_name='Remote control card IP')),
('cabinet_no', models.CharField(blank=True, max_length=32, null=True, verbose_name='Cabinet number')),
('cabinet_pos', models.IntegerField(blank=True, null=True, verbose_name='Cabinet position')),
('number', models.CharField(blank=True, max_length=32, null=True, verbose_name='Asset number')),
('vendor', models.CharField(blank=True, max_length=64, null=True, verbose_name='Vendor')),
('model', models.CharField(blank=True, max_length=54, null=True, verbose_name='Model')),
('sn', models.CharField(blank=True, max_length=128, null=True, verbose_name='Serial number')),
('cpu_model', models.CharField(blank=True, max_length=64, null=True, verbose_name='CPU model')),
('cpu_count', models.IntegerField(null=True, verbose_name='CPU count')),
('cpu_cores', models.IntegerField(null=True, verbose_name='CPU cores')),
('memory', models.CharField(blank=True, max_length=64, null=True, verbose_name='Memory')),
('disk_total', models.CharField(blank=True, max_length=1024, null=True, verbose_name='Disk total')),
('disk_info', models.CharField(blank=True, max_length=1024, null=True, verbose_name='Disk info')),
('platform', models.CharField(blank=True, max_length=128, null=True, verbose_name='Platform')),
('os', models.CharField(blank=True, max_length=128, null=True, verbose_name='OS')),
('os_version', models.CharField(blank=True, max_length=16, null=True, verbose_name='OS version')),
('os_arch', models.CharField(blank=True, max_length=16, null=True, verbose_name='OS arch')),
('hostname_raw', models.CharField(blank=True, max_length=128, null=True, verbose_name='Hostname raw')),
('created_by', models.CharField(blank=True, max_length=32, null=True, verbose_name='Created by')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('comment', models.TextField(blank=True, default='', max_length=128, verbose_name='Comment')),
('admin_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin user')),
],
),
migrations.CreateModel(
name='AssetGroup',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=64, unique=True, verbose_name='Name')),
('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('comment', models.TextField(blank=True, verbose_name='Comment')),
],
options={
'ordering': ['name'],
},
),
migrations.CreateModel(
name='Cluster',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=32, verbose_name='Name')),
('bandwidth', models.CharField(blank=True, max_length=32, verbose_name='Bandwidth')),
('contact', models.CharField(blank=True, max_length=128, verbose_name='Contact')),
('phone', models.CharField(blank=True, max_length=32, verbose_name='Phone')),
('address', models.CharField(blank=True, max_length=128, verbose_name='Address')),
('intranet', models.TextField(blank=True, verbose_name='Intranet')),
('extranet', models.TextField(blank=True, verbose_name='Extranet')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('operator', models.CharField(blank=True, max_length=32, verbose_name='Operator')),
('created_by', models.CharField(blank=True, max_length=32, verbose_name='Created by')),
('comment', models.TextField(blank=True, verbose_name='Comment')),
('admin_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='assets.AdminUser', verbose_name='Admin user')),
],
options={
'ordering': ['name'],
},
),
migrations.CreateModel(
name='SystemUser',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
('username', models.CharField(max_length=16, verbose_name='Username')),
('_password', models.CharField(blank=True, max_length=256, null=True, verbose_name='Password')),
('_private_key', models.TextField(blank=True, max_length=4096, null=True, validators=[assets.models.utils.private_key_validator], verbose_name='SSH private key')),
('_public_key', models.TextField(blank=True, max_length=4096, verbose_name='SSH public key')),
('comment', models.TextField(blank=True, verbose_name='Comment')),
('date_created', models.DateTimeField(auto_now_add=True)),
('date_updated', models.DateTimeField(auto_now=True)),
('created_by', models.CharField(max_length=32, null=True, verbose_name='Created by')),
('priority', models.IntegerField(default=10, verbose_name='Priority')),
('protocol', models.CharField(choices=[('ssh', 'ssh')], default='ssh', max_length=16, verbose_name='Protocol')),
('auto_push', models.BooleanField(default=True, verbose_name='Auto push')),
('sudo', models.TextField(default='/sbin/ifconfig', verbose_name='Sudo')),
('shell', models.CharField(default='/bin/bash', max_length=64, verbose_name='Shell')),
('cluster', models.ManyToManyField(blank=True, to='assets.Cluster', verbose_name='Cluster')),
],
options={
'ordering': ['name'],
},
),
migrations.AddField(
model_name='asset',
name='cluster',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='assets', to='assets.Cluster', verbose_name='Cluster'),
),
migrations.AddField(
model_name='asset',
name='groups',
field=models.ManyToManyField(blank=True, related_name='assets', to='assets.AssetGroup', verbose_name='Asset groups'),
),
migrations.AlterUniqueTogether(
name='asset',
unique_together=set([('ip', 'port')]),
),
migrations.RunPython(add_default_cluster),
migrations.RunPython(add_default_group),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-12-24 15:21
from __future__ import unicode_literals
from django.db import migrations, models
import django.db.models.deletion
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='AdHoc',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('_tasks', models.TextField(verbose_name='Tasks')),
('pattern', models.CharField(default='{}', max_length=64, verbose_name='Pattern')),
('_options', models.CharField(default='', max_length=1024, verbose_name='Options')),
('_hosts', models.TextField(blank=True, verbose_name='Hosts')),
('run_as_admin', models.BooleanField(default=False, verbose_name='Run as admin')),
('run_as', models.CharField(default='', max_length=128, verbose_name='Run as')),
('_become', models.CharField(default='', max_length=1024, verbose_name='Become')),
('created_by', models.CharField(default='', max_length=64, null=True, verbose_name='Create by')),
('date_created', models.DateTimeField(auto_now_add=True)),
],
options={
'db_table': 'ops_adhoc',
'get_latest_by': 'date_created',
},
),
migrations.CreateModel(
name='AdHocRunHistory',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('date_start', models.DateTimeField(auto_now_add=True, verbose_name='Start time')),
('date_finished', models.DateTimeField(blank=True, null=True, verbose_name='End time')),
('timedelta', models.FloatField(default=0.0, null=True, verbose_name='Time')),
('is_finished', models.BooleanField(default=False, verbose_name='Is finished')),
('is_success', models.BooleanField(default=False, verbose_name='Is success')),
('_result', models.TextField(blank=True, null=True, verbose_name='Adhoc raw result')),
('_summary', models.TextField(blank=True, null=True, verbose_name='Adhoc result summary')),
('adhoc', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='history', to='ops.AdHoc')),
],
options={
'db_table': 'ops_adhoc_history',
'get_latest_by': 'date_start',
},
),
migrations.CreateModel(
name='Task',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
('interval', models.IntegerField(blank=True, help_text='Units: seconds', null=True, verbose_name='Interval')),
('crontab', models.CharField(blank=True, help_text='5 * * * *', max_length=128, null=True, verbose_name='Crontab')),
('is_periodic', models.BooleanField(default=False)),
('callback', models.CharField(blank=True, max_length=128, null=True, verbose_name='Callback')),
('is_deleted', models.BooleanField(default=False)),
('comment', models.TextField(blank=True, verbose_name='Comment')),
('created_by', models.CharField(blank=True, default='', max_length=128, null=True)),
('date_created', models.DateTimeField(auto_now_add=True)),
],
options={
'db_table': 'ops_task',
'get_latest_by': 'date_created',
},
),
migrations.AddField(
model_name='adhocrunhistory',
name='task',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='history', to='ops.Task'),
),
migrations.AddField(
model_name='adhoc',
name='task',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='adhoc', to='ops.Task'),
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-12-24 15:21
from __future__ import unicode_literals
import common.utils
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
('assets', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='AssetPermission',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=128, unique=True, verbose_name='Name')),
('is_active', models.BooleanField(default=True, verbose_name='Active')),
('date_expired', models.DateTimeField(default=common.utils.date_expired_default, verbose_name='Date expired')),
('created_by', models.CharField(blank=True, max_length=128, verbose_name='Created by')),
('date_created', models.DateTimeField(auto_now_add=True, verbose_name='Date created')),
('comment', models.TextField(blank=True, verbose_name='Comment')),
('asset_groups', models.ManyToManyField(blank=True, related_name='granted_by_permissions', to='assets.AssetGroup', verbose_name='Asset group')),
('assets', models.ManyToManyField(blank=True, related_name='granted_by_permissions', to='assets.Asset', verbose_name='Asset')),
('system_users', models.ManyToManyField(related_name='granted_by_permissions', to='assets.SystemUser', verbose_name='System user')),
],
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-12-24 15:21
from __future__ import unicode_literals
from django.db import migrations, models
import uuid
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Command',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('user', models.CharField(max_length=64, verbose_name='User')),
('asset', models.CharField(max_length=128, verbose_name='Asset')),
('system_user', models.CharField(max_length=64, verbose_name='System user')),
('input', models.CharField(db_index=True, max_length=128, verbose_name='Input')),
('output', models.CharField(blank=True, max_length=1024, verbose_name='Output')),
('session', models.CharField(db_index=True, max_length=36, verbose_name='Session')),
('timestamp', models.IntegerField(db_index=True)),
],
options={
'db_table': 'terminal_command',
'ordering': ('-timestamp',),
},
),
migrations.CreateModel(
name='Session',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('user', models.CharField(max_length=128, verbose_name='User')),
('asset', models.CharField(max_length=1024, verbose_name='Asset')),
('system_user', models.CharField(max_length=128, verbose_name='System user')),
('login_from', models.CharField(choices=[('ST', 'SSH Terminal'), ('WT', 'Web Terminal')], default='ST', max_length=2)),
('is_finished', models.BooleanField(default=False)),
('has_replay', models.BooleanField(default=False, verbose_name='Replay')),
('has_command', models.BooleanField(default=False, verbose_name='Command')),
('date_start', models.DateTimeField(verbose_name='Date start')),
('date_end', models.DateTimeField(null=True, verbose_name='Date end')),
],
options={
'db_table': 'terminal_session',
'ordering': ['-date_start'],
},
),
migrations.CreateModel(
name='Status',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('session_online', models.IntegerField(default=0, verbose_name='Session Online')),
('cpu_used', models.FloatField(verbose_name='CPU Usage')),
('memory_used', models.FloatField(verbose_name='Memory Used')),
('connections', models.IntegerField(verbose_name='Connections')),
('threads', models.IntegerField(verbose_name='Threads')),
('boot_time', models.FloatField(verbose_name='Boot Time')),
('date_created', models.DateTimeField(auto_now_add=True)),
],
options={
'db_table': 'terminal_status',
'get_latest_by': 'date_created',
},
),
migrations.CreateModel(
name='Task',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(choices=[('kill_session', 'Kill Session')], max_length=128, verbose_name='Name')),
('args', models.CharField(max_length=1024, verbose_name='Args')),
('is_finished', models.BooleanField(default=False)),
('date_created', models.DateTimeField(auto_now_add=True)),
('date_finished', models.DateTimeField(null=True)),
],
options={
'db_table': 'terminal_task',
},
),
migrations.CreateModel(
name='Terminal',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=32, unique=True, verbose_name='Name')),
('remote_addr', models.CharField(max_length=128, verbose_name='Remote Address')),
('ssh_port', models.IntegerField(default=2222, verbose_name='SSH Port')),
('http_port', models.IntegerField(default=5000, verbose_name='HTTP Port')),
('is_accepted', models.BooleanField(default=False, verbose_name='Is Accepted')),
('is_deleted', models.BooleanField(default=False)),
('date_created', models.DateTimeField(auto_now_add=True)),
('comment', models.TextField(blank=True, verbose_name='Comment')),
],
options={
'db_table': 'terminal',
'ordering': ('is_accepted',),
},
),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-12-21 16:06
from __future__ import unicode_literals
import common.utils
from django.contrib.auth.hashers import make_password
from django.conf import settings
import django.contrib.auth.models
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import uuid
def add_default_group(apps, schema_editor):
group_model = apps.get_model("users", "UserGroup")
db_alias = schema_editor.connection.alias
group_model.objects.using(db_alias).create(
name="Default"
)
def add_default_admin(apps, schema_editor):
user_model = apps.get_model("users", "User")
db_alias = schema_editor.connection.alias
admin = user_model.objects.using(db_alias).create(
username="admin", name="Administrator",
email="admin@mycomany.com", role="Admin",
password=make_password("admin"),
)
group_model = apps.get_model("users", "UserGroup")
default_group = group_model.objects.using(db_alias).get(name="Default")
admin.groups.add(default_group)
class Migration(migrations.Migration):
initial = True
dependencies = [
('auth', '0008_alter_user_username_max_length'),
]
operations = [
migrations.CreateModel(
name='User',
fields=[
('password', models.CharField(max_length=128, verbose_name='password')),
('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')),
('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')),
('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('username', models.CharField(max_length=20, unique=True, verbose_name='Username')),
('name', models.CharField(max_length=20, verbose_name='Name')),
('email', models.EmailField(max_length=30, unique=True, verbose_name='Email')),
('role', models.CharField(blank=True, choices=[('Admin', 'Administrator'), ('User', 'User'), ('App', 'Application')], default='User', max_length=10, verbose_name='Role')),
('avatar', models.ImageField(null=True, upload_to='avatar', verbose_name='Avatar')),
('wechat', models.CharField(blank=True, max_length=30, verbose_name='Wechat')),
('phone', models.CharField(blank=True, max_length=20, null=True, verbose_name='Phone')),
('enable_otp', models.BooleanField(default=False, verbose_name='Enable OTP')),
('secret_key_otp', models.CharField(blank=True, max_length=16)),
('_private_key', models.CharField(blank=True, max_length=5000, verbose_name='Private key')),
('_public_key', models.CharField(blank=True, max_length=5000, verbose_name='Public key')),
('comment', models.TextField(blank=True, max_length=200, verbose_name='Comment')),
('is_first_login', models.BooleanField(default=False)),
('date_expired', models.DateTimeField(blank=True, default=common.utils.date_expired_default, null=True, verbose_name='Date expired')),
('created_by', models.CharField(default='', max_length=30, verbose_name='Created by')),
],
options={
'ordering': ['username'],
},
managers=[
('objects', django.contrib.auth.models.UserManager()),
],
),
migrations.CreateModel(
name='AccessKey',
fields=[
('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name='AccessKeyID')),
('secret', models.UUIDField(default=uuid.uuid4, editable=False, verbose_name='AccessKeySecret')),
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='access_key', to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
),
migrations.CreateModel(
name='LoginLog',
fields=[
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('username', models.CharField(max_length=20, verbose_name='Username')),
('type', models.CharField(choices=[('W', 'Web'), ('T', 'Terminal')], max_length=2, verbose_name='Login type')),
('ip', models.GenericIPAddressField(verbose_name='Login ip')),
('city', models.CharField(blank=True, max_length=254, null=True, verbose_name='Login city')),
('user_agent', models.CharField(blank=True, max_length=254, null=True, verbose_name='User agent')),
('datetime', models.DateTimeField(auto_now_add=True, verbose_name='Date login')),
],
options={
'ordering': ['-datetime', 'username'],
},
),
migrations.CreateModel(
name='PrivateToken',
fields=[
('key', models.CharField(max_length=40, primary_key=True, serialize=False, verbose_name='Key')),
('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')),
('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='auth_token', to=settings.AUTH_USER_MODEL, verbose_name='User')),
],
options={
'verbose_name': 'Private Token',
},
),
migrations.CreateModel(
name='UserGroup',
fields=[
('is_discard', models.BooleanField(default=False, verbose_name='is discard')),
('discard_time', models.DateTimeField(blank=True, null=True, verbose_name='discard time')),
('id', models.UUIDField(default=uuid.uuid4, primary_key=True, serialize=False)),
('name', models.CharField(max_length=128, verbose_name='Name')),
('comment', models.TextField(blank=True, verbose_name='Comment')),
('date_created', models.DateTimeField(auto_now_add=True, null=True, verbose_name='Date created')),
('created_by', models.CharField(max_length=100)),
],
options={
'ordering': ['name'],
},
),
migrations.AddField(
model_name='user',
name='groups',
field=models.ManyToManyField(blank=True, related_name='users', to='users.UserGroup', verbose_name='User group'),
),
migrations.AddField(
model_name='user',
name='user_permissions',
field=models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions'),
),
migrations.RunPython(add_default_group),
migrations.RunPython(add_default_admin),
]
# -*- coding: utf-8 -*-
# Generated by Django 1.11 on 2017-12-25 03:57
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('users', '0001_initial'),
]
operations = [
migrations.AlterField(
model_name='user',
name='email',
field=models.EmailField(max_length=128, unique=True, verbose_name='Email'),
),
migrations.AlterField(
model_name='user',
name='name',
field=models.CharField(max_length=128, verbose_name='Name'),
),
migrations.AlterField(
model_name='user',
name='username',
field=models.CharField(max_length=128, unique=True, verbose_name='Username'),
),
migrations.AlterField(
model_name='user',
name='wechat',
field=models.CharField(blank=True, max_length=128, verbose_name='Wechat'),
),
]
用户管理模块
=============
这里介绍用户管理功能。
.. toctree::
:maxdepth: 1
user
user_group
login_log
\ No newline at end of file
.. jumpserver documentation master file, created by
sphinx-quickstart on Mon Feb 26 23:28:27 2018.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Jumpserver 文档
====================
目录:
.. toctree::
:maxdepth: 2
introduce
installation
admin_guide
user_guide
development
contributor
contact
snapshot
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>资产管理模块 &mdash; Jumpserver 0.5.0 文档</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="index" title="索引"
href="genindex.html"/>
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="Jumpserver 0.5.0 文档" href="index.html"/>
<link rel="up" title="管理文档" href="admin_guide.html"/>
<link rel="next" title="资产列表" href="asset_list.html"/>
<link rel="prev" title="登录日志" href="login_log.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html">
<img src="_static/logo-text.png" class="logo" />
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduce.html">总体介绍</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="admin_guide.html">管理文档</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="admin_user.html">用户管理模块</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">资产管理模块</a><ul>
<li class="toctree-l3"><a class="reference internal" href="asset_list.html">资产列表</a></li>
<li class="toctree-l3"><a class="reference internal" href="asset_admin_user.html">管理用户</a></li>
<li class="toctree-l3"><a class="reference internal" href="asset_system_user.html">系统用户</a></li>
<li class="toctree-l3"><a class="reference internal" href="asset_label.html">标签管理</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Jumpserver</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="admin_guide.html">管理文档</a> &raquo;</li>
<li>资产管理模块</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="id1">
<h1>资产管理模块<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<p>这里介绍资产管理模块功能。</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="asset_list.html">资产列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="asset_admin_user.html">管理用户</a></li>
<li class="toctree-l1"><a class="reference internal" href="asset_system_user.html">系统用户</a></li>
<li class="toctree-l1"><a class="reference internal" href="asset_label.html">标签管理</a></li>
</ul>
</div>
</div>
</div>
<div class="articleComments">
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="asset_list.html" class="btn btn-neutral float-right" title="资产列表" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="login_log.html" class="btn btn-neutral" title="登录日志" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 北京堆栈科技有限公司 © 2014-2018.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'0.5.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/translations.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户管理模块 &mdash; Jumpserver 0.5.0 文档</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="index" title="索引"
href="genindex.html"/>
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="Jumpserver 0.5.0 文档" href="index.html"/>
<link rel="up" title="管理文档" href="admin_guide.html"/>
<link rel="next" title="用户列表" href="user.html"/>
<link rel="prev" title="管理文档" href="admin_guide.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html">
<img src="_static/logo-text.png" class="logo" />
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="introduce.html">总体介绍</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="admin_guide.html">管理文档</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">用户管理模块</a><ul>
<li class="toctree-l3"><a class="reference internal" href="user.html">用户列表</a></li>
<li class="toctree-l3"><a class="reference internal" href="user_group.html">用户组列表</a></li>
<li class="toctree-l3"><a class="reference internal" href="login_log.html">登录日志</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="admin_asset.html">资产管理模块</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">Jumpserver</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> &raquo;</li>
<li><a href="admin_guide.html">管理文档</a> &raquo;</li>
<li>用户管理模块</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="id1">
<h1>用户管理模块<a class="headerlink" href="#id1" title="永久链接至标题"></a></h1>
<p>这里介绍用户管理功能。</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="user.html">用户列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_group.html">用户组列表</a></li>
<li class="toctree-l1"><a class="reference internal" href="login_log.html">登录日志</a></li>
</ul>
</div>
</div>
</div>
<div class="articleComments">
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="user.html" class="btn btn-neutral float-right" title="用户列表" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
<a href="admin_guide.html" class="btn btn-neutral" title="管理文档" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 北京堆栈科技有限公司 © 2014-2018.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'0.5.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/translations.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Jumpserver 文档 &mdash; Jumpserver 0.5.0 文档</title>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="index" title="索引"
href="genindex.html"/>
<link rel="search" title="搜索" href="search.html"/>
<link rel="top" title="Jumpserver 0.5.0 文档" href="#"/>
<link rel="next" title="总体介绍" href="introduce.html"/>
<script src="_static/js/modernizr.min.js"></script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="#">
<img src="_static/logo-text.png" class="logo" />
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul>
<li class="toctree-l1"><a class="reference internal" href="introduce.html">总体介绍</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a></li>
<li class="toctree-l1"><a class="reference internal" href="snapshot.html">Snapshot 截图</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="#">Jumpserver</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="#">Docs</a> &raquo;</li>
<li>Jumpserver 文档</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="jumpserver">
<h1>Jumpserver 文档<a class="headerlink" href="#jumpserver" title="永久链接至标题"></a></h1>
<p>目录:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="introduce.html">总体介绍</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">安装文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="quickstart.html">快速安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="step_by_step.html">一步一步安装</a></li>
<li class="toctree-l2"><a class="reference internal" href="upgrade.html">升级</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="admin_guide.html">管理文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="admin_user.html">用户管理模块</a></li>
<li class="toctree-l2"><a class="reference internal" href="admin_asset.html">资产管理模块</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="user_guide.html">用户使用文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="user_asset.html">个人资产</a></li>
<li class="toctree-l2"><a class="reference internal" href="user_info.html">个人信息</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="development.html">开发文档</a><ul>
<li class="toctree-l2"><a class="reference internal" href="api_style_guide.html">REST API规范约定</a></li>
<li class="toctree-l2"><a class="reference internal" href="python_style_guide.html">Jumpserver 项目规范(Draft)</a></li>
<li class="toctree-l2"><a class="reference internal" href="project_structure.html">项目骨架</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contributor.html">贡献者</a></li>
<li class="toctree-l1"><a class="reference internal" href="contact.html">联系方式</a><ul>
<li class="toctree-l2"><a class="reference internal" href="contact.html#id2">商业支持</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#qq">QQ群</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#github">Github</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#id3">官网</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#demo">Demo</a></li>
<li class="toctree-l2"><a class="reference internal" href="contact.html#id4">邮件</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="snapshot.html">Snapshot 截图</a><ul>
<li class="toctree-l2"><a class="reference internal" href="snapshot.html#id1">仪表盘</a></li>
<li class="toctree-l2"><a class="reference internal" href="snapshot.html#id2">用户管理</a></li>
<li class="toctree-l2"><a class="reference internal" href="snapshot.html#id3">资产管理</a></li>
<li class="toctree-l2"><a class="reference internal" href="snapshot.html#linux">Linux 终端</a></li>
<li class="toctree-l2"><a class="reference internal" href="snapshot.html#windows">Windows 终端</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<div class="articleComments">
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="introduce.html" class="btn btn-neutral float-right" title="总体介绍" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 北京堆栈科技有限公司 © 2014-2018.
</p>
</div>
Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'0.5.0',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/translations.js"></script>
<script type="text/javascript" src="_static/js/theme.js"></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>
\ No newline at end of file
Search.setIndex({docnames:["admin_asset","admin_guide","admin_permission","admin_user","admin_work_center","api_style_guide","asset_admin_user","asset_label","asset_list","asset_system_user","contact","contributor","development","index","installation","introduce","login_log","permission_asset_authorized","project_structure","python_style_guide","quickstart","snapshot","step_by_step","upgrade","user","user_asset","user_group","user_guide","user_info","work_center_list"],envversion:53,filenames:["admin_asset.rst","admin_guide.rst","admin_permission.rst","admin_user.rst","admin_work_center.rst","api_style_guide.rst","asset_admin_user.rst","asset_label.rst","asset_list.rst","asset_system_user.rst","contact.rst","contributor.rst","development.rst","index.rst","installation.rst","introduce.rst","login_log.rst","permission_asset_authorized.rst","project_structure.rst","python_style_guide.rst","quickstart.rst","snapshot.rst","step_by_step.rst","upgrade.rst","user.rst","user_asset.rst","user_group.rst","user_guide.rst","user_info.rst","work_center_list.rst"],objects:{},objnames:{},objtypes:{},terms:{"0\u5f00\u6e90\u534f\u8bae":15,"0\u6846\u67b6":5,"2\u7a7a\u683c\u53ef\u4ee5\u663e\u8457\u964d\u4f4e\u89c6\u89c9\u4e0a\u7684\u8d1f\u62c5":19,"7\u81ea\u5e26\u7684\u662fpython2":22,"8\u7f16\u7801\u58f0\u660e":19,"\u4e00\u4e2a":[19,25],"\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5":[13,14],"\u4e00\u822c\u6027\u7684\u589e\u5220\u67e5\u6539":5,"\u4e00\u822c\u6765\u8bf4":5,"\u4e00\u822c\u7528\u6765\u4f20\u9012\u8be5api\u64cd\u4f5c\u7684\u6838\u5fc3\u5b9e\u4f53\u5bf9\u8c61\u7684\u552f\u4e00id":5,"\u4e00\u9879\u6216\u591a\u9879":5,"\u4e0a\u9762\u4ee3\u7801\u8868\u793a":5,"\u4e0b\u4e00\u884c\u5e94\u8be5\u4e0e\u4e0a\u4e00\u884c\u7684\u6700\u540e":19,"\u4e0b\u8f7d":22,"\u4e0b\u8f7d\u5bf9\u5e94release\u5305":22,"\u4e0b\u8f7d\u6216clone\u9879\u76ee":22,"\u4e0b\u8f7dclone\u9879\u76ee":22,"\u4e0d\u4f7f\u7528\u62fc\u97f3":19,"\u4e0d\u4f7f\u7528\u65e0\u610f\u4e49\u7b80\u5355\u5b57\u6bcd\u547d\u540d":19,"\u4e0d\u5efa\u8bae\u5728\u751f\u4ea7\u4e2d\u4f7f\u7528":20,"\u4e0d\u8981\u4f7f\u7528\u9ed8\u8ba4":19,"\u4e0d\u8981\u5728\u4ee3\u7801\u4e2d\u4f7f\u7528\u592a\u591a\u7684\u7a7a\u884c\u6765\u533a\u5206\u4e0d\u540c\u7684\u903b\u8f91\u6a21\u5757":19,"\u4e0d\u8981\u5728\u53d8\u91cf\u540d\u540e\u6dfb\u52a0\u4e0b\u5212\u7ebf\u8fdb\u884c\u533a\u5206":19,"\u4e0d\u8981\u6307\u5b9a":[22,23],"\u4e0d\u8981\u7528tab":22,"\u4e0d\u8981\u786c\u7f16\u7801":19,"\u4e0d\u8981\u8fd9\u6837\u5199":19,"\u4e0d\u9700\u8981\u7f16\u8bd1":22,"\u4e0e401\u9519\u8bef\u76f8\u5bf9":5,"\u4e0e\u5355\u4f8b":19,"\u4e14\u4e0d\u4f1a\u518d\u5f97\u5230\u7684":5,"\u4e16\u754c\u56e0\u4f60\u4eec\u800c\u4e0d\u540c":11,"\u4e2a\u4eba\u4fe1\u606f":[13,27],"\u4e2a\u4eba\u7b49\u4fe1\u606f":24,"\u4e2a\u4eba\u8d44\u4ea7":[2,13,27],"\u4e2d\u5fc3\u8282\u70b9\u63d0\u4f9b":15,"\u4e3a\u4e86\u4e0d\u6270\u4e71\u539f\u6765\u7684\u73af\u5883\u6211\u4eec\u6765\u4f7f\u7528python\u865a\u62df\u73af\u5883":22,"\u4e3a\u7528\u6237\u6a21\u5757\u8d21\u732e\u4e86\u5f88\u591a\u4ee3\u7801":11,"\u4e3a\u957f\u8bed\u53e5\u6362\u884c":19,"\u4e3e\u4f8b\u6765\u8bf4":5,"\u4e4b\u540e\u9a6c\u4e0a\u6362\u884c":19,"\u4e4b\u6240\u4ee5\u4e0epython\u4e0d\u540c":19,"\u4e5f\u662f\u5404app\u6240\u5728\u76ee\u5f55":18,"\u4e5f\u77e5\u9053\u4e0b\u4e00\u6b65\u5e94\u8be5\u505a\u4ec0\u4e48":5,"\u4e8c\u8005\u5747\u4ee5restructuredtext\u683c\u5f0f\u7f16\u5199":19,"\u4ea4\u4e92\u754c\u9762\u7f8e\u89c2":15,"\u4ece\u4e00\u70b9\u70b9\u5f00\u59cb":15,"\u4ece\u670d\u52a1\u5668\u5220\u9664\u8d44\u6e90":5,"\u4ece\u670d\u52a1\u5668\u53d6\u51fa\u8d44\u6e90":5,"\u4ee3\u7801\u4f18\u96c5\u7b80\u6d01":19,"\u4ee3\u8868\u5b57\u7b26\u4e32\u7ed3\u675f\u7684\u4e09\u4e2a\u5f15\u53f7\u4e0e\u4ee3\u8868\u5b57\u7b26\u4e32\u5f00\u59cb\u7684\u4e09\u4e2a\u5f15\u53f7\u5728\u540c\u4e00\u884c":19,"\u4ee3\u8868\u5b57\u7b26\u4e32\u7ed3\u675f\u7684\u4e09\u4e2a\u5f15\u53f7\u5219\u81ea\u5df1\u72ec\u7acb\u6210\u4e00\u884c":19,"\u4ee4\u724c":5,"\u4ee5\u4e0b\u6240\u6709\u547d\u4ee4\u5747\u5728\u8be5\u865a\u62df\u73af\u5883\u4e2d\u8fd0\u884c":22,"\u4ee5\u53ca\u6392\u5e8f\u987a\u5e8f":5,"\u4ee5\u53ca\u6807\u51c6\u7684\u6587\u6863\u5b57\u7b26\u4e32":19,"\u4ee5\u53ca\u6bcf\u9875\u7684\u8bb0\u5f55\u6570":5,"\u4ee5\u540e\u8fd0\u884cjumpserver\u90fd\u8981\u5148\u8fd0\u884c\u4ee5\u4e0asource\u547d\u4ee4":22,"\u4eea\u8868\u76d8":13,"\u4efb\u4f55python\u4ee3\u7801\u90fd\u90fd\u5fc5\u987b\u9075\u5b88\u6b64\u89c4\u5b9a":19,"\u4efb\u52a1\u5217\u8868":4,"\u4efb\u52a1\u5217\u8868\u9875\u9762\u9ed8\u8ba4\u5c55\u793a\u4e00\u5468\u5185\u6240\u6709\u4efb\u52a1":29,"\u4efb\u610f\u7c7b\u578b\u4e4b\u95f4\u7684\u6bd4\u8f83":19,"\u4f1a\u5f97\u5230\u8fd9\u6837\u4e00\u4e2a\u6587\u6863":5,"\u4f46\u662f\u53ea\u6709xml\u683c\u5f0f":5,"\u4f46\u662f\u6709\u4e9b\u7ec6\u8282\u90e8\u5206\u4f1a\u5c3d\u91cf\u653e\u5f00":19,"\u4f46\u662f\u8bbf\u95ee\u662f\u88ab\u7981\u6b62\u7684":5,"\u4f46\u662fdjango\u7684\u547d\u540d":19,"\u4f5c\u4e3a\u7c7b\u540d\u79f0":19,"\u4f60\u53ef\u4ee5\u9009\u62e9\u53bbgithub\u9879\u76ee\u9875\u9762\u76f4\u63a5\u4e0b\u8f7d":22,"\u4f7f\u5f97\u7528\u6237\u4e0d\u67e5\u6587\u6863":5,"\u4f7f\u7528":19,"\u4f7f\u7528django":19,"\u4f7f\u7528docker\u542f\u52a8":22,"\u4f7f\u7528foo":19,"\u4f7f\u7528gnu":15,"\u4f7f\u7528is\u548ci":19,"\u4f7f\u7528root\u547d\u4ee4\u884c\u8f93\u5165":20,"\u4f8b\u5982":[5,19],"\u4fee\u6539jumpserver\u914d\u7f6e\u6587\u4ef6":22,"\u4fee\u6539jumpserver_server\u7684\u914d\u7f6e":22,"\u5141\u8bb8\u4e0e\u5185\u5efa\u53d8\u91cf\u91cd\u540d":19,"\u5168\u6808\u5de5\u7a0b\u5e08":11,"\u5173\u95ed":22,"\u51fa\u73b0\u4e24\u4e2a\u9009\u9879":25,"\u51fa\u9519\u4fe1\u606f\u4f5c\u4e3a\u952e\u503c\u5373\u53ef":5,"\u5218\u6b63":11,"\u521b\u5efa\u6570\u636e\u5e93":22,"\u521b\u5efa\u7528\u6237\u5b8c\u6210":26,"\u521d\u59cb\u5316\u6570\u636e\u76ee\u5f55":18,"\u521d\u59cb\u5316\u9879\u76ee\u6570\u636e\u5e93":18,"\u5220\u9664":[6,8,17,24,26,29],"\u5220\u9664\u7528\u6237\u5b8c\u6210":24,"\u5220\u9664\u7528\u6237\u7ec4\u5b8c\u6210":26,"\u522b\u5fd8\u4e86":22,"\u524d\u7aef\u4ee3\u7801\u8d21\u732e\u8005":11,"\u52a8\u4f5c":[17,29],"\u533f\u540d\u51fd\u6570\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u53ef\u4ee5\u7528x\u66ff\u4ee3":19,"\u5347\u7ea7":[13,14],"\u5355\u76ee\u8fd0\u7b97\u7b26\u4e0e\u8fd0\u7b97\u5bf9\u8c61\u4e4b\u95f4\u4e0d\u7a7a\u683c":19,"\u5373\u4f7f\u5355\u76ee\u8fd0\u7b97\u7b26\u4f4d\u4e8e\u62ec\u53f7\u5185\u90e8\u4e5f\u4e00\u6837":19,"\u5373\u53ef\u8fdb\u5165\u4efb\u52a1\u8be6\u60c5\u9875\u9762":29,"\u5373\u8fd4\u56de\u7ed3\u679c\u4e2d\u63d0\u4f9b\u94fe\u63a5":5,"\u53c2\u8003":5,"\u53c2\u8003\u56fd\u5185\u7ffb\u8bd1":19,"\u53cc\u4e0b\u5212\u7ebf\u524d\u7f00\u53ea\u6709\u5b9a\u4e49\u6df7\u5165\u7c7b":19,"\u53cc\u76ee\u8fd0\u7b97\u7b26\u4e0e\u8fd0\u7b97\u5bf9\u8c61\u4e4b\u95f4\u8981\u7a7a\u683c":19,"\u53d1\u751f\u4e00\u4e2a\u9a8c\u8bc1\u9519\u8bef":5,"\u53d7\u4fdd\u62a4\u7684\u5143\u7d20\u4ee5\u4e00\u4e2a\u4e0b\u5212\u7ebf\u4e3a\u524d\u7f00":19,"\u53d8\u91cf\u540d":19,"\u53e5\u70b9\u6216":19,"\u53e6\u4e00\u4e2a":25,"\u53ea\u80fd\u6709\u540d\u8bcd":5,"\u53ef\u4ee5\u4f7f\u7528\u5916\u7f6edb\u548credi":20,"\u53ef\u4ee5\u4f7f\u7528\u6362\u884c\u7b26":19,"\u53ef\u4ee5\u5feb\u901f\u542f\u52a8":20,"\u53ef\u4ee5\u8bbe\u7f6e\u914d\u7f6e\u6587\u4ef6\u6c38\u4e45\u5173\u95ed":22,"\u53ef\u6a2a\u5411\u6269\u5c55":15,"\u53f3\u4fa7\u5c55\u793a\u6b64\u8282\u70b9\u4e0b\u7684\u8d44\u4ea7\u6388\u6743\u89c4\u5219":17,"\u5404\u673a\u623f\u90e8\u7f72\u767b\u5f55\u8282\u70b9":15,"\u540c\u6837\u4e0d\u4f7f\u7528tab":19,"\u540c\u7406static\u4e5f\u662f":19,"\u5426\u5219\u8bf7\u4e2d\u6587\u4f18\u96c5\u6ce8\u91ca":19,"\u5468\u5c0f\u4fa0":11,"\u547d\u540d\u7f29\u5199\u8981\u8c28\u614e":19,"\u547d\u540d\u8981\u6709\u5bd3\u610f":19,"\u548c":19,"\u548c\u8be6\u7ec6\u4ecb\u7ecd":19,"\u5546\u4e1a\u652f\u6301":13,"\u55bb\u8302\u5cfb":11,"\u56e0\u4e3a\u955c\u50cf\u4e0a\u53ef\u80fd\u6ca1\u6709\u6700\u65b0\u7684\u5305":22,"\u56e0\u4e3a\u9ed8\u8ba4jumpserver\u662f\u4f7f\u7528\u8be5\u914d\u7f6e":22,"\u56e0\u4e3acento":22,"\u5728\u4e2a\u4eba\u4fe1\u606f\u9875":28,"\u5728\u4e3b\u673a\u767b\u5f55\u9875\u9762":25,"\u5728\u4efb\u52a1\u5217\u8868\u4e2d\u627e\u5230\u8981\u5220\u9664\u7684\u4efb\u52a1":29,"\u5728\u4efb\u52a1\u5217\u8868\u4e2d\u627e\u5230\u8981\u624b\u52a8\u6267\u884c\u7684\u4efb\u52a1":29,"\u5728\u4efb\u52a1\u5217\u8868\u4e2d\u627e\u5230\u8981\u67e5\u770b\u7684\u4efb\u52a1":29,"\u5728\u53f3\u4fa7\u6388\u6743\u89c4\u5219\u5217\u8868\u4e2d\u627e\u5230\u8981\u5220\u9664\u7684\u6388\u6743\u89c4\u5219":17,"\u5728\u53f3\u4fa7\u6388\u6743\u89c4\u5219\u5217\u8868\u4e2d\u627e\u5230\u8981\u66f4\u65b0\u7684\u6388\u6743\u89c4\u5219":17,"\u5728\u5de6\u4fa7\u8d44\u4ea7\u8282\u70b9\u6811\u4e0b\u9009\u62e9\u8981\u521b\u5efa\u6388\u6743\u89c4\u5219\u7684\u8282\u70b9":17,"\u5728\u5de6\u4fa7\u8d44\u4ea7\u8282\u70b9\u6811\u4e0b\u9009\u62e9\u8981\u5220\u9664\u6388\u6743\u89c4\u5219\u7684\u8282\u70b9":17,"\u5728\u5de6\u4fa7\u8d44\u4ea7\u8282\u70b9\u6811\u4e0b\u9009\u62e9\u8981\u66f4\u65b0\u6388\u6743\u89c4\u5219\u7684\u8282\u70b9":17,"\u5728\u670d\u52a1\u5668\u65b0\u5efa\u4e00\u4e2a\u8d44\u6e90":5,"\u5728\u670d\u52a1\u5668\u66f4\u65b0\u8d44\u6e90":5,"\u5728\u7b2c\u4e00\u4e2a":19,"\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b":19,"\u5728restful\u67b6\u6784\u4e2d":5,"\u586b\u4e0ajumpserver\u7684\u5185\u7f51\u5730\u5740":22,"\u586b\u5199\u4e2a\u4eba\u4fe1\u606f":28,"\u586b\u5199\u539f\u6765\u5bc6\u7801":28,"\u586b\u5199\u540d\u79f0":6,"\u586b\u5199\u6388\u6743\u89c4\u5219\u4fe1\u606f":17,"\u586b\u5199\u7528\u6237\u7ec4\u4fe1\u606f":26,"\u586b\u5199\u8d26\u6237":24,"\u586b\u5199\u8d44\u4ea7\u4fe1\u606f":8,"\u586b\u5199ssh\u516c\u94a5":28,"\u591a\u4e00\u5c42\u76ee\u5f55":18,"\u5927\u5199_\u4ee5\u53ca_\u4e0b\u5212\u7ebf":19,"\u5927\u90e8\u5206\u4ee3\u7801":11,"\u5982\u679c\u4e0d\u4f7f\u7528mysql\u53ef\u4ee5\u8df3\u8fc7\u76f8\u5173mysql\u5b89\u88c5\u548c\u914d\u7f6e":22,"\u5982\u679c\u4e3a\u591a\u884c":19,"\u5982\u679c\u4f60\u4f7f\u7528\u62ec\u53f7":19,"\u5982\u679c\u4f7f\u7528\u5173\u952e\u8bcd":19,"\u5982\u679c\u4f7f\u7528\u6ce8\u91ca\u6765\u7f16\u5199\u7c7b\u5c5e\u6027\u7684\u6587\u6863":19,"\u5982\u679c\u51fd\u6570\u9700\u8981\u8bbf\u95ee\u91cd\u540d\u7684\u5185\u5efa\u53d8\u91cf":19,"\u5982\u679c\u53ea\u6709\u4e00\u884c":19,"\u5982\u679c\u5fc5\u8981\u7684\u8bdd":19,"\u5982\u679c\u662f\u7528\u5728windows\u4e0b":22,"\u5982\u679c\u6709\u66f4\u591a\u7684\u53c2\u6570\u9700\u8981\u63d0\u4f9b":5,"\u5982\u679c\u6a21\u5757\u4e2d\u4f7f\u7528\u4e86\u975eascii\u7f16\u7801\u7684\u5b57\u7b26":19,"\u5982\u679c\u6ca1\u6709\u4efb\u4f55\u62a5\u9519\u8bf7\u7ee7\u7eed":22,"\u5982\u679c\u72b6\u6001\u7801\u662f4xx":5,"\u5982\u679c\u80fd\u767b\u9646\u4ee3\u8868\u90e8\u7f72\u6210\u529f":22,"\u5982\u679c\u9700\u8981":18,"\u5b83\u7ee7\u627f\u81eaconfig":22,"\u5b89\u88c5\u4f9d\u8d56":22,"\u5b89\u88c5\u4f9d\u8d56\u5305":22,"\u5b89\u88c5\u4f9d\u8d56rpm\u5305":22,"\u5b89\u88c5\u6587\u6863":13,"\u5b89\u88c5\u89c1":20,"\u5b89\u88c5\u8bf4\u660e":18,"\u5b89\u88c5mysql":22,"\u5b89\u88c5nginx":22,"\u5b89\u88c5python\u5e93\u4f9d\u8d56":22,"\u5b89\u88c5redi":22,"\u5b8c\u5168\u4f7f\u7528http":5,"\u5b8c\u6210\u4e2a\u4eba\u4fe1\u606f\u4fee\u6539":28,"\u5b8c\u6210\u521b\u5efa\u6388\u6743\u89c4\u5219":17,"\u5b8c\u6210\u5220\u9664\u5f53\u524d\u4efb\u52a1":29,"\u5b8c\u6210\u5220\u9664\u6388\u6743\u89c4\u5219":17,"\u5b8c\u6210\u5bc6\u7801\u66f4\u65b0":28,"\u5b8c\u6210\u5bc6\u94a5\u66f4\u65b0":28,"\u5b8c\u6210\u624b\u52a8\u6267\u884c\u5f53\u524d\u4efb\u52a1":29,"\u5b8c\u6210\u6279\u91cf\u64cd\u4f5c":8,"\u5b8c\u6210\u7ba1\u7406\u7528\u6237\u521b\u5efa":6,"\u5b8c\u6210\u7ba1\u7406\u7528\u6237\u66f4\u65b0":6,"\u5b8c\u6210\u8d44\u4ea7\u521b\u5efa":8,"\u5b8c\u6210\u8d44\u4ea7\u5220\u9664":8,"\u5b8c\u6210\u8d44\u4ea7\u66f4\u65b0":8,"\u5b98\u7f51":13,"\u5b9e\u4f8b\u65b9\u6cd5":19,"\u5ba2\u6237\u7aef\u63d0\u4f9b\u6539\u53d8\u540e\u7684\u5b8c\u6574\u8d44\u6e90":5,"\u5ba2\u6237\u7aef\u63d0\u4f9b\u6539\u53d8\u7684\u5c5e\u6027":5,"\u5bc6\u7801":[6,22],"\u5bc6\u7801\u9519\u8bef":5,"\u5bf9\u4e8e\u5143\u7d20\u4f17\u591a\u7684\u5217\u8868\u6216\u5143\u7ec4":19,"\u5bf9\u4e8e\u8d44\u6e90\u7684\u5177\u4f53\u64cd\u4f5c\u7c7b\u578b":5,"\u5bf9\u5916\u66b4\u9732\u7684\u63a5\u53e3":18,"\u5bf9\u9f50":19,"\u5bfc\u5165":24,"\u5bfc\u5165\u7528\u6237\u5b8c\u6210":24,"\u5bfc\u51fa":24,"\u5bfc\u51fa\u7528\u6237\u5b8c\u6210":24,"\u5c01\u88c5\u4e86\u4e00\u4e2aall":20,"\u5c06\u7248\u672c\u53f7\u653e\u5230app\u540e\u9762":5,"\u5c06api\u7684\u7248\u672c\u53f7\u653e\u5165url\u4e2d":5,"\u5c06views\u548capi\u53ef\u590d\u7528\u7684\u4ee3\u7801\u653e\u5728\u8fd9\u91cc":18,"\u5c0f\u5199_\u4ee5\u53ca_\u4e0b\u5212\u7ebf":19,"\u5c0f\u5f67":11,"\u5c31\u5e94\u8be5\u5411\u7528\u6237\u8fd4\u56de\u51fa\u9519\u4fe1\u606f":5,"\u5c3d\u53ef\u80fd\u5229\u7528django\u9020\u597d\u7684\u8f6e\u5b50":19,"\u5c3d\u91cf\u4e00\u884c":19,"\u5c3d\u91cf\u4f7f\u7528class":19,"\u5c3d\u91cf\u662f\u5927\u5bb6\u8ba4\u53ef\u7684\u7f29\u5199":19,"\u5e03\u5c40\u4e5f\u4e0d\u4e00\u6837":19,"\u5e38\u7528\u7684http\u52a8\u8bcd\u6709\u4e0b\u9762\u4e94\u4e2a":5,"\u5e38\u89c1\u53c2\u6570\u7ea6\u5b9a":5,"\u5e38\u89c1\u7684\u6709\u4ee5\u4e0b\u4e00\u4e9b":5,"\u5e38\u91cf":19,"\u5e42\u7b49":5,"\u5e73\u53f0\u5f00\u53d1":11,"\u5e76\u7ed9\u51fa\u8be5collection\u7684\u7f51\u5740":5,"\u5e94\u5728\u540d\u79f0\u540e\u6dfb\u52a0\u540e\u7f6e\u4e0b\u5212\u7ebf":19,"\u5e94\u8be5\u5c3d\u91cf\u4f7f\u7528json":5,"\u5efa\u7acbpython\u865a\u62df\u73af\u5883":22,"\u5efa\u8bae\u8fdb\u884c\u58f0\u660e":19,"\u5f00\u53d1\u6587\u6863":13,"\u5f02\u6b65\u4efb\u52a1":5,"\u5f20\u5cf0\u6bc5":11,"\u5f20\u7acb\u5f3a":11,"\u5f39\u51fa\u5220\u9664\u786e\u8ba4\u6846":[6,8,26],"\u5f39\u51fa\u5bfc\u5165\u5bf9\u8bdd\u6846":24,"\u5f39\u51fa\u662f\u5426\u5220\u9664\u786e\u8ba4\u6846":24,"\u5f39\u51fa\u786e\u8ba4\u5220\u9664\u9875\u9762":17,"\u5f53\u521b\u5efa\u4e00\u4e2a\u5bf9\u8c61\u65f6":5,"\u5f53\u524d\u6700\u65b0":19,"\u5f53\u7528\u6237\u5411api":5,"\u5faa\u73af\u4e2d\u8ba1\u6570\u4f8b\u5916":19,"\u5feb\u901f\u5b89\u88c5":[13,14],"\u603b\u4f53\u4ecb\u7ecd":13,"\u603b\u662f\u4f7f\u7528https\u534f\u8bae":5,"\u611f\u8c22\u4e00\u4e0b\u670b\u53cb\u4e3ajumpserver\u505a\u51fa\u7684\u8d21\u732e":11,"\u6211\u4eec\u8ba1\u5212\u4fee\u6539":22,"\u6211\u4eec\u91c7\u7528pocoo\u7684":19,"\u6211\u7684\u7f51\u901f\u597d":22,"\u6211\u76f4\u63a5clone\u4e86":22,"\u6216":19,"\u6216\u8005\u662f\u7f29\u8fdb4\u4e2a\u7a7a\u683c\u7b26":19,"\u6216\u82b1\u62ec\u53f7":19,"\u622a\u56fe":13,"\u6240\u4ee5\u6211\u4eec\u9650\u5236\u6700\u5927120\u5b57\u7b26":19,"\u6240\u4ee5\u653e\u5728\u4e3b\u57df\u540d\u4e0b":5,"\u6240\u4ee5\u7f51\u5740\u4e2d\u4e0d\u80fd\u6709\u52a8\u8bcd":5,"\u6240\u4ee5\u8bbf\u95eeweb":22,"\u6240\u4ee5api\u4e2d\u7684\u540d\u8bcd\u4e5f\u5e94\u8be5\u4f7f\u7528\u590d\u6570":5,"\u6240\u6709\u6587\u6863\u5b57\u7b26\u4e32\u5747\u4ee5restructuredtext\u683c\u5f0f\u7f16\u5199":19,"\u6240\u6709doc\u6587\u4ef6\u653e\u5230\u8be5\u76ee\u5f55":18,"\u6267\u884c":29,"\u6279\u91cf\u64cd\u4f5c\u5b8c\u6210":24,"\u62ec\u53f7\u91cc\u662f\u5bf9\u5e94\u7684sql\u547d\u4ee4":5,"\u6307\u5b9a\u7b2c\u51e0\u9875":5,"\u6307\u5b9a\u7b5b\u9009\u6761\u4ef6":5,"\u6307\u5b9a\u8fd4\u56de\u7ed3\u679c\u6309\u7167\u54ea\u4e2a\u5c5e\u6027\u6392\u5e8f":5,"\u6307\u5b9a\u8fd4\u56de\u8bb0\u5f55\u7684\u5f00\u59cb\u4f4d\u7f6e":5,"\u6307\u5b9a\u8fd4\u56de\u8bb0\u5f55\u7684\u6570\u91cf":5,"\u6309\u94ae":[6,8,16,17,24,25,26,28,29],"\u6309\u94ae\u8fdb\u5165\u6388\u6743\u89c4\u5219\u66f4\u65b0\u9875\u9762":17,"\u6309pep8\u89c4\u8303":19,"\u6362\u884c":19,"\u6392\u540d\u4e0d\u5206\u5148\u540e":11,"\u63a5\u53d7coco\u7684\u6ce8\u518c":22,"\u63d0\u4ea4":[6,8,24,26,28],"\u6458\u8981\u4e0e\u8be6\u7ec6\u4ecb\u7ecd\u4e4b\u95f4\u7a7a\u4e00\u884c":19,"\u64c5\u957fpython":11,"\u652f\u6301\u591a\u673a\u623f\u8de8\u533a\u57df\u90e8\u7f72":15,"\u6539\u53d8\u4e16\u754c":15,"\u653e\u5230\u8be5\u6587\u4ef6\u4e2d":18,"\u6570\u636e\u5e93\u4e2d\u7684\u8868\u90fd\u662f\u540c\u79cd\u8bb0\u5f55\u7684":5,"\u6570\u636e\u5e93\u8868\u540d\u624b\u52a8\u6307\u5b9a":19,"\u6570\u636e\u6a21\u578b\u76ee\u5f55":18,"\u6570\u7ec4":5,"\u6587\u6863":15,"\u6587\u6863\u4e2d\u6709\u4e00\u4e2alink\u5c5e\u6027":5,"\u6587\u6863\u5b57\u7b26\u4e32\u4e2d\u7684\u6587\u672c\u7d27\u63a5\u7740\u4ee3\u8868\u5b57\u7b26\u4e32\u5f00\u59cb\u7684\u4e09\u4e2a\u5f15\u53f7\u7f16\u5199":19,"\u6587\u6863\u5b57\u7b26\u4e32\u5e94\u5206\u6210\u7b80\u77ed\u6458\u8981":19,"\u6587\u6863\u5b57\u7b26\u4e32\u7684\u884c\u6570\u4e0d\u540c":19,"\u65ad\u5f00\u5f53\u524d\u6240\u6709\u8fde\u63a5\u7684\u4e3b\u673a":25,"\u65ad\u5f00\u5f53\u524d\u8fde\u63a5\u7684\u4e3b\u673a":25,"\u65ad\u5f00\u6240\u6709\u94fe\u63a5":25,"\u65ad\u5f00\u94fe\u63a5":25,"\u65b0\u5bc6\u7801\u7b49\u4fe1\u606f":28,"\u65b0\u5f00\u4e00\u4e2a\u7ec8\u7aef":22,"\u65b0\u7248\u6587\u6863":11,"\u65b0\u7248\u672cdjango":18,"\u65b9\u4fbf\u522b\u7684app\u5f15\u7528":18,"\u65b9\u4fbfsphinx\u5904\u7406":19,"\u65b9\u62ec\u53f7\u4e2d\u662f\u8be5\u72b6\u6001\u7801\u5bf9\u5e94\u7684http\u52a8\u8bcd":5,"\u65b9\u6cd5\u4e0e\u51fd\u6570\u540d":19,"\u65e0\u5e76\u53d1\u8bbf\u95ee\u9650\u5236":15,"\u65e5\u5fd7\u76ee\u5f55":18,"\u65f6":19,"\u65f6\u624d\u4f7f\u7528":19,"\u662f\u56e0\u4e3ajs\u4e2d\u6709\u5927\u91cf\u56de\u8c03\u5f0f\u7684\u5199\u6cd5":19,"\u662f\u7b26\u5408":15,"\u66f4\u5c11\u4ee3\u7801":19,"\u66f4\u65b0":[6,8,17,24,26],"\u66f4\u65b0\u7528\u6237\u5b8c\u6210":24,"\u66f4\u65b0\u7528\u6237\u7ec4\u5b8c\u6210":26,"\u66f4\u65b0\u8d44\u4ea7\u4fe1\u606f":8,"\u66ff\u6362\u4e3a":10,"\u6709\u80fd\u529b\u5c3d\u53ef\u80fd\u7528\u82f1\u6587":19,"\u670d\u52a1\u5668":25,"\u670d\u52a1\u5668\u53d1\u751f\u9519\u8bef":5,"\u670d\u52a1\u5668\u5411\u7528\u6237\u8fd4\u56de\u7684\u72b6\u6001\u7801\u548c\u63d0\u793a\u4fe1\u606f":5,"\u670d\u52a1\u5668\u5411\u7528\u6237\u8fd4\u56de\u7684\u7ed3\u679c\u5e94\u8be5\u7b26\u5408\u4ee5\u4e0b\u89c4\u8303":5,"\u670d\u52a1\u5668\u6210\u529f\u8fd4\u56de\u7528\u6237\u8bf7\u6c42\u7684\u6570\u636e":5,"\u670d\u52a1\u5668\u6ca1\u6709\u8fdb\u884c\u64cd\u4f5c":5,"\u670d\u52a1\u5668\u6ca1\u6709\u8fdb\u884c\u65b0\u5efa\u6216\u4fee\u6539\u6570\u636e\u7684\u64cd\u4f5c":5,"\u670d\u52a1\u5668\u8fd4\u56de\u7684\u6570\u636e\u683c\u5f0f":5,"\u672c\u6559\u7a0b\u4f7f\u7528mysql\u4f5c\u4e3a\u6570\u636e\u5e93":22,"\u674e\u78ca":11,"\u67b6\u6784\u5e08":11,"\u67e5\u770b\u5f53\u524d\u6240\u6709\u7684\u8d44\u4ea7\u5217\u8868":8,"\u67e5\u770b\u7528\u6237\u7684\u4e2a\u4eba\u4fe1\u606f":28,"\u67e5\u770b\u7ba1\u7406\u7528\u6237\u7684\u540d\u79f0":6,"\u67e5\u770b\u8d44\u4ea7\u7684\u8be6\u7ec6\u4fe1\u606f":25,"\u67e5\u770b\u914d\u7f6e\u6587\u4ef6\u5e76\u8fd0\u884c":22,"\u67ef\u8fde\u6625":11,"\u6807\u7b7e\u7ba1\u7406":0,"\u6807\u9898\u4e0b\u7684":[17,29],"\u6838\u5fc3\u5f00\u53d1\u8005\u4e4b\u4e00":11,"\u6839\u636e\u559c\u597d\u9009\u62e9\u5b89\u88c5\u65b9\u5f0f\u548c\u7248\u672c":22,"\u6a21\u5757\u6587\u4ef6\u7684\u5934\u90e8\u5305\u542b\u6709utf":19,"\u6a21\u677f\u6807\u7b7e\u76ee\u5f55":18,"\u6a21\u7cca\u641c\u7d22":5,"\u6b22\u8fce\u6765\u5230":15,"\u6b64\u5916\u90fd\u53ea\u7a7a\u4e00\u884c":19,"\u6bcf\u4e2a\u7f51\u5740\u4ee3\u8868\u4e00\u79cd\u8d44\u6e90":5,"\u6bcf\u4e2aurl\u72ec\u7acb\u547d\u540d":19,"\u6bd4\u5982":5,"\u6bd4\u5982\u4e0a\u9762\u63d0\u5230\u7684":5,"\u6bd4\u5982\u7528\u6237\u8bf7\u6c42json\u683c\u5f0f":5,"\u6c38\u8fdc\u4e0d\u8981\u4e0etrue\u6216false\u8fdb\u884c\u6bd4\u8f83":19,"\u6c88\u6668\u9633":11,"\u6ca1\u6709\u524d\u540e\u7aef\u5206\u79bb":5,"\u6ca1\u6709\u72ec\u7acbapp":5,"\u6ca1\u6709web":22,"\u6ce8\u610f":22,"\u6ce8\u91ca\u660e\u786e\u4f18\u7f8e":19,"\u6ce8\u91ca\u7684\u89c4\u8303\u4e0e\u6587\u6863\u5b57\u7b26\u4e32\u7f16\u5199\u89c4\u8303\u7c7b\u4f3c":19,"\u6d4b\u8bd5\u6848\u4f8b\u5c3d\u53ef\u80fd\u5b8c\u6574":19,"\u6d4b\u8bd5\u7528\u4f8b\u6587\u4ef6":18,"\u6d4b\u8bd5\u8fde\u63a5":22,"\u6d4f\u89c8\u5668\u8bbf\u95ee":20,"\u70b9\u51fb":[6,8,17,24,26,28,29],"\u70b9\u51fb\u4e3b\u673a\u540d":25,"\u70b9\u51fb\u53f3\u4e0a\u89d2\u7684":24,"\u70b9\u51fb\u5de6\u4fa7\u8d44\u4ea7\u8282\u70b9\u6811\u4e0b\u7684\u8282\u70b9":17,"\u70b9\u51fb\u63d0\u4ea4":17,"\u70b9\u51fb\u6807\u9898\u53ef\u6839\u636e\u5f53\u524d\u5b57\u6bb5\u8fdb\u884c\u6392\u5e8f":29,"\u70b9\u51fb\u786e\u8ba4":17,"\u70b9\u51fb\u8981\u67e5\u770b\u7684\u4efb\u52a1\u540d\u79f0":29,"\u70b9\u51fb\u9875\u9762\u53f3\u4e0a\u89d2\u7684":28,"\u70b9\u51fb\u9875\u9762\u53f3\u4fa7\u521b\u5efa\u6388\u6743\u89c4\u5219\u8fdb\u5165\u521b\u5efa\u6388\u6743\u89c4\u5219\u9875\u9762":17,"\u70b9\u51fb\u9875\u9762\u53f3\u8fb9\u52a8\u4f5c\u680f\u7684":6,"\u70b9\u51fb\u9875\u9762\u53f3\u8fb9\u7684":[8,24,26],"\u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2":[24,26],"\u70b9\u51fb\u9875\u9762\u5de6\u4e0a\u89d2\u7684":[6,8,28],"\u70b9\u51fb\u9875\u9762\u5de6\u4fa7":[6,16,24,26],"\u70b9\u51fb\u9875\u9762\u5de6\u4fa7\u7684":[8,28],"\u70b9\u89e3\u9875\u9762\u5de6\u4fa7\u7684":25,"\u7136\u540e\u70b9\u51fb\u9875\u9762\u53f3\u4fa7\u7684\u4e3b\u673aip\u5730\u5740":25,"\u7248\u672c\u6d4b\u8bd5":11,"\u738b\u5889":11,"\u751f\u6210\u5927\u91cf\u6d4b\u8bd5\u6570\u636e":18,"\u751f\u6210\u6570\u636e\u5e93\u8868\u7ed3\u6784\u548c\u521d\u59cb\u5316\u6570\u636e":22,"\u7528\u6237\u4f53\u9a8c\u597d":15,"\u7528\u6237\u4f7f\u7528\u6587\u6863":13,"\u7528\u6237\u5217\u8868":3,"\u7528\u6237\u521b\u5efa\u5b8c\u6210":24,"\u7528\u6237\u5220\u9664\u6570\u636e\u6210\u529f":5,"\u7528\u6237\u53d1\u51fa\u7684\u8bf7\u6c42\u6709\u9519\u8bef":5,"\u7528\u6237\u53d1\u51fa\u7684\u8bf7\u6c42\u9488\u5bf9\u7684\u662f\u4e0d\u5b58\u5728\u7684\u8bb0\u5f55":5,"\u7528\u6237\u540d":[5,6],"\u7528\u6237\u5c06\u65e0\u6cd5\u5224\u65ad\u53d1\u51fa\u7684\u8bf7\u6c42\u662f\u5426\u6210\u529f":5,"\u7528\u6237\u65b0\u5efa\u6216\u4fee\u6539\u6570\u636e\u6210\u529f":5,"\u7528\u6237\u7ba1\u7406":[13,16,26],"\u7528\u6237\u7ba1\u7406\u6a21\u5757":[1,13],"\u7528\u6237\u7ec4":26,"\u7528\u6237\u7ec4\u5217\u8868":3,"\u7528\u6237\u8bf7\u6c42\u7684\u683c\u5f0f\u4e0d\u53ef\u5f97":5,"\u7528\u6237\u8bf7\u6c42\u7684\u8d44\u6e90\u88ab\u6c38\u4e45\u5220\u9664":5,"\u7528\u6237\u8bfb\u53d6\u8fd9\u4e2a\u5c5e\u6027\u5c31\u77e5\u9053\u4e0b\u4e00\u6b65\u8be5\u8c03\u7528\u4ec0\u4e48api\u4e86":5,"\u7531\u4e8e\u4e00\u4e2a\u9879\u76ee\u591a\u4e2aapp\u6240\u4ee5jumpserver\u4f7f\u7528\u4ee5\u4e0b\u98ce\u683c":5,"\u7531http\u52a8\u8bcd\u8868\u793a":5,"\u767b\u5f55\u4e2a\u4eba\u7528\u6237":25,"\u767b\u5f55\u65e5\u5fd7":3,"\u7684\u4e13\u4e1a\u8fd0\u7ef4\u5ba1\u8ba1\u7cfb\u7edf":15,"\u76ee\u5f55":13,"\u76f4\u63a5\u89e3\u538b":22,"\u770b\u5230\u4e0b\u9762\u7684\u63d0\u793a\u7b26\u4ee3\u8868\u6210\u529f":22,"\u786e\u4fdd\u4f7f\u7528\u7684\u662f\u521a\u624d\u8bbe\u7f6e\u7684\u914d\u7f6e\u6587\u4ef6":22,"\u786e\u5b9a":24,"\u786e\u8ba4":[6,8,24,26],"\u7b26\u53f7\u540e\u6dfb\u52a0\u4e00\u4e2a\u5192\u53f7":19,"\u7b49":19,"\u7ba1\u7406\u540e\u53f0\u76ee\u5f55":18,"\u7ba1\u7406\u6587\u6863":13,"\u7ba1\u7406\u7528\u6237":0,"\u7ba1\u7406\u7528\u6237\u5220\u9664\u5b8c\u6210":6,"\u7c7b\u540d\u79f0":19,"\u7c7b\u65b9\u6cd5":19,"\u7cfb\u7edf":22,"\u7cfb\u7edf\u7528\u6237":0,"\u7ec8\u70b9":5,"\u7ec8\u7aef":[13,22],"\u7ed9\u8d44\u4ea7\u6811\u8bbe\u8ba1\u8d21\u732e\u4e86\u5f88\u591a\u5efa\u8bae":11,"\u7f16\u5199\u4e86":11,"\u7f16\u5199\u957f\u8bed\u53e5\u65f6":19,"\u7f16\u8bd1\u5b89\u88c5":22,"\u7f16\u8f91\u7528\u6237\u4fe1\u606f":24,"\u7f16\u8f91\u7528\u6237\u7ec4\u4fe1\u606f":26,"\u7f16\u8f91\u7ba1\u7406\u7528\u6237\u7684\u4fe1\u606f":6,"\u7fa41":10,"\u7fa42":10,"\u7fa43":10,"\u800c\u4e0d\u662fhttpwriter":19,"\u800c\u4e0d\u662fnot":19,"\u800c\u4e1421\u4e16\u7eaa\u90fd\u662f\u5bbd\u5c4f\u4e86":19,"\u800c\u4e14\u6240\u7528\u7684\u540d\u8bcd\u5f80\u5f80\u4e0e\u6570\u636e\u5e93\u7684\u8868\u683c\u540d\u5bf9\u5e94":5,"\u800c\u5e94\u8be5\u8fd9\u6837\u5199":19,"\u800c\u8981\u7528\u7a7a\u683c":22,"\u800cyum\u7b49\u5de5\u5177\u4f9d\u8d56\u539f\u6765\u7684python":22,"\u8054\u7cfb\u65b9\u5f0f":13,"\u82e5\u4e0ejumpserver\u90e8\u7f72\u5728\u540c\u4e00\u4e3b\u673a\u4e0a\u81ea\u5b9a\u4e49\u4e00\u4e0b":22,"\u83ab\u9e4d":11,"\u83dc\u5355\u4e0b\u7684":[6,8,16,24,26],"\u8865\u5145\u8bf4\u660e":19,"\u8868\u793a\u4e00\u4e2a\u8bf7\u6c42\u5df2\u7ecf\u8fdb\u5165\u540e\u53f0\u6392\u961f":5,"\u8868\u793a\u7528\u6237\u5f97\u5230\u6388\u6743":5,"\u8868\u793a\u7528\u6237\u6ca1\u6709\u6743\u9650":5,"\u8868\u793aapi\u7684\u5177\u4f53\u7f51\u5740":5,"\u89c4\u8303":15,"\u89d2\u8272\u5b89\u5168":24,"\u89e3\u51b3\u65b9\u6848":15,"\u89e3\u538bluna":22,"\u8bbe\u7f6e":28,"\u8bbe\u8ba1\u6307\u5357":5,"\u8bbf\u95ee":22,"\u8be5\u64cd\u4f5c\u662f\u5e42\u7b49\u7684":5,"\u8be5\u955c\u50cf\u96c6\u6210\u4e86\u6240\u6709\u9700\u8981\u7684\u7ec4\u4ef6":20,"\u8bf4\u660e\u5982\u4e0b":18,"\u8bf7\u5728":19,"\u8bf7\u5c06\u5185\u5efa\u53d8\u91cf\u91cd\u65b0\u7ed1\u5b9a\u4e3a\u5176\u4ed6\u540d\u79f0":19,"\u8bf7\u6d4f\u89c8\u5668\u8bbf\u95ee":22,"\u8d21\u732e\u4e86":11,"\u8d21\u732e\u4e86\u5f88\u591a":[],"\u8d21\u732e\u8005":13,"\u8d26\u53f7":22,"\u8d44\u4ea7\u5217\u8868":0,"\u8d44\u4ea7\u5f00\u53d1\u8005":11,"\u8d44\u4ea7\u6388\u6743\u9875\u9762\u9ed8\u8ba4\u5c55\u793a\u8d44\u4ea7\u6388\u6743\u5217\u8868":17,"\u8d44\u4ea7\u6570\u7b49\u4fe1\u606f":6,"\u8d44\u4ea7\u7ba1\u7406":[6,8,13],"\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757":[1,13],"\u8d44\u6df1\u524d\u7aef\u5de5\u7a0b\u5e08":11,"\u8d44\u6df1\u5f00\u53d1\u8005":11,"\u8def\u5f84\u53c8\u79f0":5,"\u8fd0\u884c":22,"\u8fd0\u884c\u4e0d\u62a5\u9519":22,"\u8fd0\u884cjumpserv":22,"\u8fd4\u56de\u4e00\u4e2a\u7a7a\u6587\u6863":5,"\u8fd4\u56de\u5355\u4e2a\u8d44\u6e90\u5bf9\u8c61":5,"\u8fd4\u56de\u5b8c\u6574\u7684\u8d44\u6e90\u5bf9\u8c61":5,"\u8fd4\u56de\u65b0\u751f\u6210\u7684\u8d44\u6e90\u5bf9\u8c61":5,"\u8fd4\u56de\u7684\u4fe1\u606f\u4e2d\u5c06error\u4f5c\u4e3a\u952e\u540d":5,"\u8fd4\u56de\u8d44\u6e90\u5bf9\u8c61\u7684\u5217\u8868":5,"\u8fd9\u65f6\u9700\u8981\u53bb":22,"\u8fd9\u7248api\u76f8\u5bf9\u7b80\u5355":5,"\u8fd9\u90e8\u5206\u7ed9\u60a8\u4ecb\u7ecdjumpserver\u7684\u7528\u6237\u4f7f\u7528\u65b9\u6cd5":27,"\u8fd9\u91cc\u4ec5\u8003\u8651rest":5,"\u8fd9\u91cc\u4ecb\u7ecd\u4e2a\u4eba\u4fe1\u606f\u76f8\u5173\u7684\u529f\u80fd":28,"\u8fd9\u91cc\u4ecb\u7ecd\u4efb\u52a1\u5217\u8868\u7684\u76f8\u5173\u7684\u529f\u80fd":29,"\u8fd9\u91cc\u4ecb\u7ecd\u4f5c\u4e1a\u4e2d\u5fc3\u529f\u80fd":4,"\u8fd9\u91cc\u4ecb\u7ecd\u6743\u9650\u7ba1\u7406\u529f\u80fd":2,"\u8fd9\u91cc\u4ecb\u7ecd\u7528\u6237\u4e2a\u4eba\u8d44\u4ea7\u76f8\u5173\u7684\u529f\u80fd":25,"\u8fd9\u91cc\u4ecb\u7ecd\u7528\u6237\u5217\u8868\u7684\u529f\u80fd":24,"\u8fd9\u91cc\u4ecb\u7ecd\u7528\u6237\u7ba1\u7406\u529f\u80fd":3,"\u8fd9\u91cc\u4ecb\u7ecd\u7528\u6237\u7ec4\u5217\u8868\u7684\u529f\u80fd":26,"\u8fd9\u91cc\u4ecb\u7ecd\u767b\u5f55\u65e5\u5fd7\u7684\u529f\u80fd":16,"\u8fd9\u91cc\u4ecb\u7ecd\u7ba1\u7406\u5458\u529f\u80fd":1,"\u8fd9\u91cc\u4ecb\u7ecd\u7ba1\u7406\u7528\u6237\u7684\u529f\u80fd":6,"\u8fd9\u91cc\u4ecb\u7ecd\u7cfb\u7edf\u7528\u6237\u529f\u80fd":9,"\u8fd9\u91cc\u4ecb\u7ecd\u8d44\u4ea7\u5217\u8868\u7684\u529f\u80fd":8,"\u8fd9\u91cc\u4ecb\u7ecd\u8d44\u4ea7\u6388\u6743\u7684\u76f8\u5173\u7684\u529f\u80fd":17,"\u8fd9\u91cc\u4ecb\u7ecd\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757\u529f\u80fd":0,"\u8fd9\u91cc\u53ea\u662fjumpserv":22,"\u8fd9\u91cc\u6240\u9700\u8981\u6ce8\u610f\u7684\u662fguacamole\u66b4\u9732\u51fa\u6765\u7684\u7aef\u53e3\u662f8080":22,"\u8fdb\u5165\u4e2a\u4eba\u4fe1\u606f\u4fee\u6539\u9875\u9762":28,"\u8fdb\u5165\u4e3b\u673a\u767b\u5f55\u9875":25,"\u8fdb\u5165\u521b\u5efa\u7528\u6237\u7ec4\u9875\u9762":26,"\u8fdb\u5165\u521b\u5efa\u7528\u6237\u9875\u9762":24,"\u8fdb\u5165\u521b\u5efa\u7ba1\u7406\u7528\u6237\u754c\u9762":6,"\u8fdb\u5165\u5bc6\u7801\u66f4\u65b0\u9875\u9762":28,"\u8fdb\u5165\u5bc6\u94a5\u66f4\u65b0\u9875\u9762":28,"\u8fdb\u5165\u66f4\u65b0\u7ba1\u7406\u7528\u6237\u9875\u9762":6,"\u8fdb\u5165\u7528\u6237\u5217\u8868\u9875\u9762":24,"\u8fdb\u5165\u7528\u6237\u7ec4\u5217\u8868\u9875\u9762":26,"\u8fdb\u5165\u767b\u5f55\u65e5\u5fd7\u9875\u9762":16,"\u8fdb\u5165\u7ba1\u7406\u7528\u6237\u5217\u8868\u9875\u9762":6,"\u8fdb\u5165\u7f16\u8f91\u7528\u6237\u7ec4\u9875\u9762":26,"\u8fdb\u5165\u7f16\u8f91\u7528\u6237\u9875\u9762":24,"\u8fdb\u5165\u7f16\u8f91\u8d44\u4ea7\u9875\u9762":8,"\u8fdb\u5165\u8d44\u4ea7\u521b\u5efa\u9875\u9762":8,"\u8fdb\u884c\u5f00\u53d1":15,"\u8fdb\u884c\u6bd4\u8f83\u65f6":19,"\u8fdc\u7a0b\u684c\u9762\u767b\u5f55\u4ee3\u7801":[],"\u8fdc\u7a0b\u684c\u9762\u767b\u5f55\u5927\u90e8\u5206\u4ee3\u7801":11,"\u8fde\u5411\u5176\u4ed6api\u65b9\u6cd5":5,"\u8fde\u63a5\u4e3b\u673a":25,"\u8fde\u63a5\u6d4b\u8bd5\u673a":22,"\u9009\u4e2d\u7528\u6237":24,"\u9009\u4e2d\u8d44\u4ea7":8,"\u9009\u62e9\u5de6\u4e0a\u89d2\u7684":25,"\u9009\u62e9\u8981\u5bfc\u5165\u7684csv\u683c\u5f0f\u6587\u4ef6":24,"\u9009\u62e9\u9875\u9762\u5de6\u4e0b\u89d2\u6279\u91cf\u64cd\u4f5c\u9009\u9879":8,"\u9009\u62e9\u9875\u9762\u5de6\u4e0b\u89d2\u7684\u6279\u91cf\u64cd\u4f5c\u9009\u9879":24,"\u901a\u7528\u7684\u51fd\u6570\u65b9\u6cd5":18,"\u901a\u7528templat":18,"\u9075\u5faa":15,"\u90a3\u4e48\u4e0b\u4e00\u884c\u5e94\u4e0e\u62ec\u53f7\u6216\u82b1\u62ec\u53f7\u5bf9\u9f50":19,"\u90ae\u4ef6":13,"\u914d\u5907\u4e86\u4e1a\u754c\u9886\u5148\u7684":15,"\u914d\u7f6e\u6587\u4ef6":22,"\u914d\u7f6e\u6587\u4ef6\u662fpython\u683c\u5f0f":22,"\u914d\u7f6e\u6587\u4ef6\u6837\u4f8b":18,"\u91c7\u7528\u9a86\u9a7c\u62fc\u5199\u6cd5":19,"\u91cd\u65b0\u4e0b\u8f7drelease\u5305":23,"\u91cd\u7f6e\u5bc6\u7801":28,"\u91cd\u7f6essh\u5bc6\u94a5":28,"\u9488\u5bf9\u4e0d\u540c\u64cd\u4f5c":5,"\u9632\u6b62\u8d44\u6e90\u91cd\u540d":18,"\u9648\u5c1a\u59d4":11,"\u96c6\u5408":5,"\u9700\u8981nginx\u6765\u8fd0\u884c\u8bbf\u95ee":22,"\u9875\u9762\u53f3\u4fa7\u4f1a\u5c55\u793a\u5f53\u524d\u8fde\u63a5\u7684\u7ec8\u7aef\u4fe1\u606f":25,"\u9876\u5c42\u51fd\u6570\u4e0e\u7c7b\u4e4b\u95f4\u7a7a\u4e24\u884c":19,"\u9879\u76ee\u5165\u53e3urlconf":18,"\u9879\u76ee\u591a\u8bed\u8a00\u76ee\u5f55":18,"\u9879\u76ee\u63d0\u4ea4\u8f83\u591agit":22,"\u9879\u76ee\u6a21\u677f\u76ee\u5f55":18,"\u9879\u76ee\u89c4\u8303":[12,13],"\u9879\u76ee\u8bbe\u7f6e\u6587\u4ef6":18,"\u9879\u76ee\u8bbe\u7f6e\u76ee\u5f55":18,"\u9879\u76ee\u9759\u6001\u8d44\u6e90\u76ee\u5f55":18,"\u9879\u76ee\u9aa8\u67b6":[12,13],"\u9884\u7f16\u8bd1\u7684\u6b63\u5219\u8868\u8fbe\u5f0f":19,"\u9996\u5b57\u6bcd\u7f29\u7565\u8bcd\u4fdd\u6301\u5927\u5199\u4e0d\u53d8":19,"\u9ed8\u8ba4\u5c55\u793a\u4e2a\u4eba\u8d44\u4ea7\u5217\u8868":25,"api\u4e0e\u7528\u6237\u7684\u901a\u4fe1\u534f\u8bae":5,"api\u548cviews\u53ea\u662f\u8bf7\u6c42\u548c\u8fd4\u56de\u4e0d\u540c":18,"api\u6587\u4ef6":18,"api\u6587\u6863":5,"api\u6700\u597d\u505a\u5230hypermedia":5,"api\u7684\u57fa\u672c\u60c5\u51b5":5,"api\u7684\u8bbe\u8ba1\u88ab\u79f0\u4e3ahateoa":5,"api\u7684\u8eab\u4efd\u8ba4\u8bc1\u5e94\u8be5\u4f7f\u7528oauth":5,"api\u89c4\u8303\u7ea6\u5b9a":[12,13],"app\u4e0b\u6a21\u677f\u76ee\u5f55":18,"app\u4e0b\u9759\u6001\u8d44\u6e90\u76ee\u5f55":18,"app\u76ee\u5f55":18,"app\u8bbe\u7f6e\u6587\u4ef6":18,"case":19,"centos7\u4e0b\u5b89\u88c5\u7684\u662fmariadb":22,"class":[19,22],"clone\u65f6\u8f83\u5927":22,"cls\u4e3a\u7b2c\u4e00\u4e2a\u53c2\u6570":19,"cmdb\u4e2d\u7684assets\u5217\u8868":5,"collection\u5173\u7cfb":5,"com\u7684\u6839\u76ee\u5f55\u53d1\u51fa\u8bf7\u6c42":5,"default":22,"delete\u65b9\u6cd5\u8bf7\u4f7f\u7528\u8bf7\u6c42\u4f53\u4f20\u9012\u53c2\u6570":5,"developmentconfig\u4e2d\u7684\u914d\u7f6e":22,"docker\u5b98\u65b9\u5b89\u88c5\u6587\u6863":20,"fix\u4e86\u5f88\u591abug":11,"get\u65b9\u6cd5\u8bf7\u4f7f\u7528url":5,"github\u7684api\u5c31\u662f\u8fd9\u79cd\u8bbe\u8ba1":5,"go\u4ee5\u53ca":11,"href\u8868\u793aapi\u7684\u8def\u5f84":5,"html\u4ee3\u7801\u4e0d\u53d7\u6b64\u89c4\u8303\u7ea6\u675f":19,"i\u53c2\u6570":[22,23],"idc\u5217\u8868":5,"js\u91c7\u75282\u7a7a\u683c\u7f29\u8fdb":19,"jumpserver\u4f7f\u7528python":15,"jumpserver\u4f7f\u7528redis\u505acache\u548cceleri":22,"jumpserver\u5e76\u6388\u6743":22,"jumpserver\u662f\u5168\u7403\u9996\u6b3e\u5b8c\u5168\u5f00\u6e90\u7684\u5821\u5792\u673a":15,"jumpserver\u6d4b\u8bd5\u8fd0\u8425":11,"jumpserver\u7ba1\u7406\u540e\u53f0":22,"jumpserver\u91c7\u7eb3\u5206\u5e03\u5f0f\u67b6\u6784":15,"luna\u5df2\u6539\u4e3a\u7eaf\u524d\u7aef":22,"method\u52a0\u4e0aurl\u63d0\u4f9b\u7684\u8bed\u4e49":5,"migrations\u7248\u672c\u63a7\u5236\u76ee\u5f55":18,"property\u51fd\u6570\u4e2d\u4f7f\u7528\u533f\u540d\u51fd\u6570":19,"python\u4e00\u822c\u9650\u5236\u6700\u592779\u4e2a\u5b57\u7b26":19,"python\u4e25\u683c\u91c7\u75284\u4e2a\u7a7a\u683c\u7684\u7f29\u8fdb":19,"python\u65b9\u9762\u5927\u81f4\u7684\u98ce\u683c":19,"qq\u7fa4":13,"rel\u8868\u793a\u8fd9\u4e2aapi\u4e0e\u5f53\u524d\u7f51\u5740\u7684\u5173\u7cfb":5,"release\u5305":22,"return":19,"self\u4e3a\u7b2c\u4e00\u4e2a\u53c2\u6570":19,"selinux\u548c\u9632\u706b\u5899":22,"ssh\u5bc6\u94a5":28,"ssh\u79c1\u94a5\u7b49\u4fe1\u606f":6,"ssh\u8bbf\u95ee":20,"static":[18,22],"terminal\u4f1a\u62a5\u9519":22,"terminal\u767b\u5f55\u8bed\u6cd5\u5982\u4e0b":22,"title\u8868\u793aapi\u7684\u6807\u9898":5,"true":22,"type\u8868\u793a\u8fd4\u56de\u7c7b\u578b":5,"url\u4e2d\u7684\u53ef\u53d8\u90e8\u5206":5,"url\u7b49\u901a\u5e38\u6bd4\u8f83\u957f":19,"urlconf\u6587\u4ef6":18,"view\u7f16\u7a0b":19,"views\u6587\u4ef6":18,"web\u7ec8\u7aef":25,"web\u90e8\u5206\u4ee3\u7801":19,"zip\u5305":22,For:22,NOT:5,Not:5,__init__:[18,19],aaron3:11,accept:5,activ:22,add_head:22,admin:[18,22],alia:22,aliyun:10,all:22,api:[15,18],app:[5,18],app_id:5,applic:5,asc:5,asset:[5,18],asset_id:5,asset_list:18,author:19,automak:22,bar:19,base:19,bash:22,beta2:20,bin:22,brief:19,broker:22,camelcas:19,cat:22,cento:22,centos6:22,centos7:22,charset:22,checkout:22,client_id:5,clone:22,close:19,cmgj026011:10,coco:[19,23],code:19,collect:5,column:19,com:[5,10,20,22],come:19,common:18,conf:22,conf_exampl:22,config:[18,22],config_exampl:22,configur:22,connect:22,content:[5,22],control:22,copyright:19,creat:[5,22],crud:5,css:19,data:22,databas:22,db_engin:[20,22],db_host:[20,22],db_name:[20,22],db_password:[20,22],db_port:[20,22],db_user:[20,22],debug:22,def:19,delet:5,demo:13,depth:22,desc:19,descript:19,detail:19,dev:22,devel:22,developmentconfig:22,devop:11,display_nam:19,django:[11,15,19],doc:18,docker:[20,22],dockerfil:20,draft:[12,13],encod:22,endpoint:5,entiti:5,epel:22,error:5,even:19,exampl:[5,18],exp:19,fake:18,fals:19,filter:19,firewalld:22,first:19,fit2cloud:[10,11],fixtur:18,flask:19,foo:19,forbidden:5,form:19,forward:22,found:5,ftp:22,function_cal:19,gcc:22,get:5,get_annoying_nam:19,git:[10,22,23],github:[5,13,20,22],goe:19,gone:5,goodby:19,gpl:15,grant:22,guacamol:22,guidanc:19,gzip:22,halcyon:11,hash:19,hello:19,here:19,host:22,href:5,html:[10,18,19,22],http:[10,20,22],http_upgrad:22,httpwriter:19,i18n:18,ibul:10,idc:5,idempot:5,identifi:22,index:[19,22],inform:19,init:18,inlin:19,instal:[18,22,23],intern:5,invalid:5,iptabl:22,item:19,item_count:19,item_valu:19,its:19,javascript:19,jiaxiangkong:11,json:[5,18],jumpserv:[10,12,15,18,20,22,23],jumpserver_serv:22,kei:[5,19],kelianchun:11,keyword:[5,19],lambda:19,licens:[18,19],license_fil:19,license_nam:19,like:19,limit:[5,19],line:19,link:5,linux:13,liqiang:11,list:5,listen:22,liuz:11,localhost:[5,20,22],locat:22,log:18,longer:19,lowercase_with_underscor:19,luna:[19,23],make:22,make_migr:[22,23],manag:18,mani:19,mariadb:22,market:10,media:22,migrat:18,mixin:19,model:18,modul:19,more:[19,22],much:19,my_dict:19,my_list:19,myclass:19,mymodel:19,mysql:[20,22],mysql_host:20,mysqld:22,name:[5,19],name_r:19,node:19,object:19,offset:[5,19],one:20,openssl:22,opt:22,order:5,order_bi:19,org:[5,10,22],own:19,p2222:22,paa:11,packag:19,page:5,paramet:[5,19],paramiko:19,password:19,patch:5,per_pag:5,pip:[22,23],png:18,post:5,print:19,product:10,properti:19,proxy_add_x_forwarded_for:22,proxy_http_vers:22,proxy_pass:22,proxy_set_head:22,pull:23,put:5,pw_hash:19,pwd:22,py3:22,python3:22,python:[19,22],q4speed:11,queri:19,quit:22,quot:19,readm:18,real:22,real_nam:19,redi:22,redis_host:20,redis_password:20,redis_port:20,rel:5,releas:22,remote_addr:22,request:5,requir:[22,23],resourc:5,rest:[12,13],root:[20,22],rpm_requir:22,run:[20,22],run_serv:22,salt:19,scalar:19,see:[19,22],select:5,self:19,server:5,servic:22,set:[18,19],setenforc:22,sha1:19,simpl:19,singleton:19,snapshot:13,sofia:11,some_imag:18,somepassword:22,sort:5,sourc:22,span:19,sqlite:22,ssh:20,start:22,stop:22,string:19,style:19,systemctl:22,tag:18,tar:22,templat:18,templatetag:18,termin:[11,15],test:18,that_returns_an_object_with_an_attribut:19,thi:19,this_is_a_very_long:19,three:19,tip:20,titl:5,trail:19,tripl:19,try_fil:22,txt:[22,23],type:5,unauthor:5,underscor:19,unicod:19,unproces:5,updat:5,upgrad:22,upper:19,uppercase_with_underscor:19,uri:22,url:18,user:19,usernam:19,utf8:22,utf:19,util:[18,22,23],valu:19,venv:22,version:[5,22],view:18,vnd:5,web:[11,15],wget:22,window:[11,13],wsgi:18,www:[5,10,22],xshell:22,xvf:22,xxx:20,xxxx:20,xxxxx:5,xxxxxx:5,year:19,you:19,yourformat:5,yum:22,yumaojun03:11,zhangfengyi:11,zlib:22,zoo:5},titles:["\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757","\u7ba1\u7406\u6587\u6863","\u6743\u9650\u7ba1\u7406","\u7528\u6237\u7ba1\u7406\u6a21\u5757","\u4f5c\u4e1a\u4e2d\u5fc3","REST API\u89c4\u8303\u7ea6\u5b9a","\u7ba1\u7406\u7528\u6237","\u6807\u7b7e\u7ba1\u7406","\u8d44\u4ea7\u5217\u8868","\u7cfb\u7edf\u7528\u6237","\u8054\u7cfb\u65b9\u5f0f","\u8d21\u732e\u8005","\u5f00\u53d1\u6587\u6863","Jumpserver \u6587\u6863","\u5b89\u88c5\u6587\u6863","\u603b\u4f53\u4ecb\u7ecd","\u767b\u5f55\u65e5\u5fd7","\u4e2a\u4eba\u8d44\u4ea7","\u9879\u76ee\u9aa8\u67b6","Jumpserver \u9879\u76ee\u89c4\u8303\uff08Draft\uff09","\u5feb\u901f\u5b89\u88c5","Snapshot \u622a\u56fe","\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5","\u5347\u7ea7","\u7528\u6237\u5217\u8868","\u4e2a\u4eba\u8d44\u4ea7","\u7528\u6237\u7ec4\u5217\u8868","\u7528\u6237\u4f7f\u7528\u6587\u6863","\u4e2a\u4eba\u4fe1\u606f","\u4efb\u52a1\u5217\u8868"],titleterms:{"\u4e00":22,"\u4e00\u6b65\u4e00\u6b65\u5b89\u88c5":22,"\u4e00\u822c\u7a7a\u683c\u89c4\u5219":19,"\u4e09":22,"\u4e2a\u4eba\u4fe1\u606f":28,"\u4e2a\u4eba\u8d44\u4ea7":[17,25],"\u4e3b\u673a\u767b\u51fa":25,"\u4e3b\u673a\u767b\u5f55":25,"\u4e8c":22,"\u4e94":22,"\u4ed3\u5e93\u5730\u5740":20,"\u4ee3\u7801\u98ce\u683c":19,"\u4eea\u8868\u76d8":21,"\u4efb\u52a1\u5217\u8868":29,"\u4f5c\u4e1a\u4e2d\u5fc3":4,"\u4fee\u6539\u4e2a\u4eba\u4fe1\u606f":28,"\u516d":22,"\u5176\u5b83":5,"\u51c6\u5907python3\u548cpython\u865a\u62df\u73af\u5883":22,"\u51fd\u6570\u548c\u65b9\u6cd5\u7684\u53c2\u6570":19,"\u521b\u5efa\u6388\u6743\u89c4\u5219":17,"\u521b\u5efa\u7528\u6237":24,"\u521b\u5efa\u7528\u6237\u7ec4":26,"\u521b\u5efa\u7ba1\u7406\u7528\u6237":6,"\u521b\u5efa\u8d44\u4ea7":8,"\u5220\u9664\u4efb\u52a1":29,"\u5220\u9664\u6388\u6743\u89c4\u5219":17,"\u5220\u9664\u7528\u6237":24,"\u5220\u9664\u7528\u6237\u7ec4":26,"\u5220\u9664\u7ba1\u7406\u7528\u6237":6,"\u5220\u9664\u8d44\u4ea7":8,"\u524d\u7aef":22,"\u5347\u7ea7":23,"\u534f\u8bae":5,"\u5373\u5404\u65b9\u6cd5":19,"\u5426\u5b9a\u6210\u5458\u5173\u7cfb\u68c0\u67e5":19,"\u547d\u540d\u7ea6\u5b9a":19,"\u5546\u4e1a\u652f\u6301":10,"\u56db":22,"\u57df\u540d":5,"\u57fa\u672c\u7684\u4ee3\u7801\u5e03\u5c40":19,"\u5b89\u88c5":22,"\u5b89\u88c5\u6587\u6863":14,"\u5b89\u88c5jumpserv":22,"\u5b89\u88c5windows\u652f\u6301\u7ec4\u4ef6":22,"\u5b98\u7f51":10,"\u5bc6\u94a5\u66f4\u65b0":28,"\u5bfc\u5165\u7528\u6237":24,"\u5bfc\u51fa\u7528\u6237":24,"\u5f00\u53d1\u6587\u6863":12,"\u5feb\u901f\u542f\u52a8":20,"\u5feb\u901f\u5b89\u88c5":20,"\u603b\u4f53\u4ecb\u7ecd":15,"\u622a\u56fe":21,"\u624b\u52a8\u6267\u884c\u4efb\u52a1":29,"\u6279\u91cf\u64cd\u4f5c":[8,24],"\u6574\u5408\u5404\u7ec4\u4ef6":22,"\u6587\u6863":13,"\u6587\u6863\u6ce8\u91ca":19,"\u66f4\u65b0\u5bc6\u7801":28,"\u66f4\u65b0\u6388\u6743\u89c4\u5219":17,"\u66f4\u65b0\u7528\u6237":24,"\u66f4\u65b0\u7528\u6237\u7ec4":26,"\u66f4\u65b0\u7ba1\u7406\u7528\u6237":6,"\u66f4\u65b0\u8d44\u4ea7":8,"\u6700\u5927\u884c\u957f\u5ea6":19,"\u6743\u9650\u7ba1\u7406":2,"\u67e5\u770b\u4e2a\u4eba\u4fe1\u606f":28,"\u67e5\u770b\u4e2a\u4eba\u8d44\u4ea7":25,"\u67e5\u770b\u4efb\u52a1\u5217\u8868":29,"\u67e5\u770b\u4efb\u52a1\u8be6\u60c5":29,"\u67e5\u770b\u7ba1\u7406\u7528\u6237\u5217\u8868":6,"\u67e5\u770b\u8d44\u4ea7\u5217\u8868":8,"\u67e5\u770b\u8d44\u4ea7\u6388\u6743\u89c4\u5219\u5217\u8868":17,"\u6807\u7b7e\u7ba1\u7406":7,"\u6a21\u5757\u5934\u90e8":19,"\u6bd4\u8f83":19,"\u6ce8\u91ca":19,"\u7248\u672c":5,"\u72b6\u6001\u7801":5,"\u73af\u5883":22,"\u7528\u6237\u4f7f\u7528\u6587\u6863":27,"\u7528\u6237\u5217\u8868":24,"\u7528\u6237\u7ba1\u7406":21,"\u7528\u6237\u7ba1\u7406\u6a21\u5757":3,"\u7528\u6237\u7ec4\u5217\u8868":26,"\u767b\u5f55\u65e5\u5fd7":16,"\u7a7a\u884c":19,"\u7ba1\u7406\u6587\u6863":1,"\u7ba1\u7406\u7528\u6237":6,"\u7c7b\u7684\u8bf4\u660e\u6587\u6863\u6ce8\u91ca":19,"\u7cfb\u7edf\u7528\u6237":9,"\u7ec8\u7aef":21,"\u7f29\u8fdb":19,"\u8054\u7cfb\u65b9\u5f0f":10,"\u8bbf\u95ee":20,"\u8bed\u53e5\u548c\u8868\u8fbe\u5f0f":19,"\u8bed\u8a00\u6846\u67b6":19,"\u8d21\u732e\u8005":11,"\u8d44\u4ea7\u5217\u8868":8,"\u8d44\u4ea7\u7ba1\u7406":21,"\u8d44\u4ea7\u7ba1\u7406\u6a21\u5757":0,"\u8def\u5f84":5,"\u8fc7\u6ee4\u4fe1\u606f":5,"\u8fd4\u56de\u7ed3\u679c":5,"\u90ae\u4ef6":10,"\u914d\u7f6e":22,"\u9519\u8bef\u5904\u7406":5,"\u957f\u8bed\u53e5\u7f29\u8fdb":19,"\u9879\u76ee\u89c4\u8303":19,"\u9879\u76ee\u9aa8\u67b6":18,"\u989d\u5916\u73af\u5883\u53d8\u91cf":20,"api\u89c4\u8303\u7ea6\u5b9a":5,"django\u89c4\u8303":19,"qq\u7fa4":10,"server\u548cweb":22,api:5,coco:22,comment:19,demo:10,docstr:19,draft:19,github:10,http:5,hypermedia:5,jumpserv:[13,19],linux:21,luna:22,method:5,nginx:22,rest:5,server:22,snapshot:21,socket:22,ssh:22,termin:22,topic:[6,8,17,24,25,26,28,29],web:22,window:21}})
\ No newline at end of file
......@@ -2,3 +2,33 @@
===========
这里介绍系统用户功能。
.. contents:: Topics
.. _view_admin_system_user:
查看系统用户
````````````
点击页面左侧“资产管理“菜单下的”系统用户“按钮,进入系统用户列表页面,查看系统用户的名称,资产数和连接数等信息。
.. _create_admin_system_user:
创建系统用户
````````````
点击页面左上角的“创建系统用户“按钮,进入创建系统用户页面,填写系统用户的基本信息、认证信息和其它信息,点击“提交“按钮,完成系统用户创建。
.. _update_admin_system_user:
更新系统用户
`````````````
点击页面动作栏的“更新”按钮,进入更新系统用户页面,编辑系统用户信息,点击“提交”按钮,系统用户更新完成。
.. _delete_admin_system_user:
删除系统用户
`````````````
点击页面动作栏的“删除”按钮,弹出删除确认框,点击“删除”按钮,完成删除系统用户。
\ No newline at end of file
Because ansible connect remote host using key file path except key string, so I create this dir for keep them.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment