diff --git a/.gitignore b/.gitignore index abf165e2e..dc51315af 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,4 @@ celerybeat.pid django.db celerybeat-schedule.db data/static -_build/ +docs/_build/ diff --git a/apps/assets/migrations/0001_initial.py b/apps/assets/migrations/0001_initial.py deleted file mode 100644 index 7c0a9e95a..000000000 --- a/apps/assets/migrations/0001_initial.py +++ /dev/null @@ -1,168 +0,0 @@ -# -*- 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), - ] diff --git a/apps/assets/migrations/__init__.py b/apps/assets/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/common/migrations/__init__.py b/apps/common/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/ops/migrations/0001_initial.py b/apps/ops/migrations/0001_initial.py deleted file mode 100644 index 13adf43a8..000000000 --- a/apps/ops/migrations/0001_initial.py +++ /dev/null @@ -1,84 +0,0 @@ -# -*- 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'), - ), - ] diff --git a/apps/ops/migrations/__init__.py b/apps/ops/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/perms/migrations/0001_initial.py b/apps/perms/migrations/0001_initial.py deleted file mode 100644 index 63605a247..000000000 --- a/apps/perms/migrations/0001_initial.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- 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')), - ], - ), - ] diff --git a/apps/perms/migrations/__init__.py b/apps/perms/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/terminal/migrations/0001_initial.py b/apps/terminal/migrations/0001_initial.py deleted file mode 100644 index fe604fc01..000000000 --- a/apps/terminal/migrations/0001_initial.py +++ /dev/null @@ -1,102 +0,0 @@ -# -*- 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',), - }, - ), - ] diff --git a/apps/terminal/migrations/__init__.py b/apps/terminal/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/apps/users/migrations/0001_initial.py b/apps/users/migrations/0001_initial.py deleted file mode 100644 index 01edf24b6..000000000 --- a/apps/users/migrations/0001_initial.py +++ /dev/null @@ -1,139 +0,0 @@ -# -*- 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), - ] diff --git a/apps/users/migrations/0002_auto_20171225_1157.py b/apps/users/migrations/0002_auto_20171225_1157.py deleted file mode 100644 index 6b5bae73c..000000000 --- a/apps/users/migrations/0002_auto_20171225_1157.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- 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'), - ), - ] diff --git a/apps/users/migrations/__init__.py b/apps/users/migrations/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/data/media/.gitkeep b/data/media/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/_build/html/_sources/admin_user.rst.txt b/docs/_build/html/_sources/admin_user.rst.txt deleted file mode 100644 index 0d74b38b3..000000000 --- a/docs/_build/html/_sources/admin_user.rst.txt +++ /dev/null @@ -1,11 +0,0 @@ -用户管理模块 -============= - -这里介绍用户管理功能。 - -.. toctree:: - :maxdepth: 1 - - user - user_group - login_log \ No newline at end of file diff --git a/docs/_build/html/_sources/index.rst.txt b/docs/_build/html/_sources/index.rst.txt deleted file mode 100644 index 6110d099b..000000000 --- a/docs/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,21 +0,0 @@ -.. 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 diff --git a/docs/_build/html/admin_asset.html b/docs/_build/html/admin_asset.html deleted file mode 100644 index 6d5b3c6a6..000000000 --- a/docs/_build/html/admin_asset.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - - - - 资产管理模块 — Jumpserver 0.5.0 文档 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
- - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- -
-

资产管理模块

-

这里介绍资产管理模块功能。

- -
- - -
-
- -
-
- - -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/admin_user.html b/docs/_build/html/admin_user.html deleted file mode 100644 index 5a1a77460..000000000 --- a/docs/_build/html/admin_user.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - - - - - 用户管理模块 — Jumpserver 0.5.0 文档 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
- - - - - - - - - - - - - - - - -
- - - - -
-
-
-
- -
-

用户管理模块

-

这里介绍用户管理功能。

- -
- - -
-
- -
-
- - -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html deleted file mode 100644 index 9f9b51d3f..000000000 --- a/docs/_build/html/index.html +++ /dev/null @@ -1,282 +0,0 @@ - - - - - - - - - - - Jumpserver 文档 — Jumpserver 0.5.0 文档 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - -
- - - - - - -
-
- - - - - - - - - - - - - - - - -
- -
    - -
  • Docs »
  • - -
  • Jumpserver 文档
  • - - -
  • - - - -
  • - -
- - -
-
- - - -
-
- -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv deleted file mode 100644 index b1bc394ea..000000000 Binary files a/docs/_build/html/objects.inv and /dev/null differ diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js deleted file mode 100644 index 643a6d50c..000000000 --- a/docs/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -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 diff --git a/docs/asset_system_user.rst b/docs/asset_system_user.rst index ff50705e6..de695eeb8 100644 --- a/docs/asset_system_user.rst +++ b/docs/asset_system_user.rst @@ -1,4 +1,34 @@ 系统用户 =========== -这里介绍系统用户功能。 \ No newline at end of file +这里介绍系统用户功能。 + +.. contents:: Topics + +.. _view_admin_system_user: + +查看系统用户 +```````````` + +点击页面左侧“资产管理“菜单下的”系统用户“按钮,进入系统用户列表页面,查看系统用户的名称,资产数和连接数等信息。 + +.. _create_admin_system_user: + +创建系统用户 +```````````` + +点击页面左上角的“创建系统用户“按钮,进入创建系统用户页面,填写系统用户的基本信息、认证信息和其它信息,点击“提交“按钮,完成系统用户创建。 + +.. _update_admin_system_user: + +更新系统用户 +````````````` + +点击页面动作栏的“更新”按钮,进入更新系统用户页面,编辑系统用户信息,点击“提交”按钮,系统用户更新完成。 + +.. _delete_admin_system_user: + +删除系统用户 +````````````` + +点击页面动作栏的“删除”按钮,弹出删除确认框,点击“删除”按钮,完成删除系统用户。 \ No newline at end of file diff --git a/tmp/.gitkeep b/tmp/.gitkeep deleted file mode 100644 index a43b1b292..000000000 --- a/tmp/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -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