ConsulManager/docs/如何把主机自动同步到JumpServer.md

108 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 🏷目录
- [云主机自动同步JumpServer能做什么](#云主机自动同步jumpserver能做什么)
- [同步JumpServer功能如何开启](#同步jumpserver功能如何开启)
- [如何获取JumpServer永久token](#如何获取jumpserver永久token)
- [什么是JumpServer的管理用户v3版叫账号模版或特权用户](#什么是JumpServer的管理用户v3版叫账号模版或特权用户)
- [接入JumpServer时全局通用主机【管理用户】信息该如何填写](#接入jumpserver时全局通用主机管理用户信息该如何填写)
- [接入JumpServer时全局特殊主机【管理用户】信息该如何填写](#接入jumpserver时全局特殊主机管理用户信息该如何填写)
- [接入JumpServer操作完成之后我该做什么](#接入jumpserver操作完成之后我该做什么)
- [高级设置不同云账号有不同的jumpserver管理账户的场景能否支持](#高级设置不同云账号有不同的jumpserver管理账户的场景能否支持)
## 云主机自动同步JumpServer能做什么
- 当您在云上购买了新的ECS时需要手动在JumpServer中创建新资产来纳管该ECS。
- `JumpServer同步`功能可以把阿里、腾讯、华为云的ECS资源自动同步到JumpServer中免去手动创建资产的操作。
- 当您在云厂商界面新增、删除、修改ECS后都会及时的自动同步到JumpServer中。
## 同步JumpServer功能如何开启
<img width="584" alt="72b7ccbc370982566fece2325191d0d" src="https://user-images.githubusercontent.com/3349611/180848168-a2bafcfa-faa1-457d-8f5f-dcb07ad12d60.png">
## 如何获取JumpServer永久token
- 登录JumpServer所在的主机执行以下命令
```
docker exec -it jms_core /bin/bash #非容器化部署的JumpServer不执行该行。
cd /opt/jumpserver/apps
python manage.py shell
from users.models import User
u = User.objects.get(username='admin') #admin换成你的JumpServer管理员用户名。
```
- 该账号没有创建过token的执行以下命令`u.create_private_token()`
- 该账号已经创建过token的执行以下命令`u.private_token`
- 记录`PrivateToken: `后面的部分。(最后的`>`不要)
## 什么是JumpServer的管理用户v3版叫账号模版或特权用户
- 管理用户(v3版叫账号模版 或 特权用户)是资产(被控服务器)上的 root或拥有 NOPASSWD: ALL sudo 权限的用户, JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等。
- 为了方便您也可以只使用管理用户(v3版叫账号模版 或 特权用户)不创建推送账户但要注意在使用JumpServer登陆该资源后即是管理账号权限是sudo root。
- 手动创建资产的时候需要给每台ECS选择一个管理用户(v3版叫账号模版 或 特权用户)**注意必须先在ECS上创建好这个账户JumpServer才能管理这台ECS。**
<img width="584" alt="72b7ccbc370982566fece2325191d0d" src="https://user-images.githubusercontent.com/3349611/180855383-ec4a76b3-9354-4485-b0f6-17b5b9c2a8d7.png">
## 注意:JumpServer3.x不再用`管理账号`,请在`管理用户ID`填写`账号模版`的ID即可。
>JumpServer3.x请使用账号模板的ID登录JumpServer-账号管理-账号模板-选择账号-基本信息-ID
<img width="584" alt="72b7ccbc370982566fece2325191d0d" src="https://github.com/starsliao/ConsulManager/assets/3349611/895e08f1-8a0d-4f8e-b8f5-81ee2ee6b11b">
## 接入JumpServer时`全局通用主机【管理用户】信息`该如何填写?
<img width="584" alt="72b7ccbc370982566fece2325191d0d" src="https://user-images.githubusercontent.com/3349611/180858510-b2b4ac0f-bc01-4c8e-a948-f3f26338037e.png">
- 全局通用是指全局是指所有的云账号一般情况下所有的ECS会使用一个统一的管理用户(v3版叫账号模版 或 特权用户)来方便管理ECS。
- **Linux**需要创建一个有root权限的管理用户(v3版叫账号模版 或 特权用户)。
- **Windows**:需要创建一个有管理员权限的管理用户(v3版叫账号模版 或 特权用户)。(v2版本可以随意选择一个管理用户当登录失败时会提示你输入用户名密码)
- **端口**即为sshlinux或者远程桌面windows的端口。
- **管理用户ID**即管理用户的ID不是用户名点击刚创建的管理用户(v3版叫账号模版 或 特权用户)即可看到ID。
<img width="584" alt="72b7ccbc370982566fece2325191d0d" src="https://user-images.githubusercontent.com/3349611/180858937-856a7f9a-afa9-46d5-a15d-514f13063af5.png">
- 配置完成之后所有的ECS信息同步到JumpServer时都会使用相应的端口和管理用户(v3版叫账号模版 或 特权用户)。
## 接入JumpServer时`全局特殊主机【管理用户】信息`该如何填写?
<img width="584" alt="72b7ccbc370982566fece2325191d0d" src="https://user-images.githubusercontent.com/3349611/180859728-6c1e7c41-ea75-4efa-98ca-6b26266d71e7.png">
- 对于部分主机可能会使用特殊的端口以及管理用户(v3版叫账号模版 或 特权用户)的情况,所以我们支持了根据主机名称关键字来匹配不同的登录端口和管理用户(v3版叫账号模版 或 特权用户)的功能。
- 实例如下:
```
{
"xxxaaa": {
"linux": [
["ssh/22"],
"b510418c-ea15-44d8-836a-5eb6138a6c56"
]
},
"xxxbbb": {
"linux": [
["ssh/2626"],
"b510418c-ea15-44d8-836a-5eb6138a6c56"
],
"windows": [
["rdp/3389"],
"21a7d079-319b-483f-b31c-bf92254f1ac7"
]
}
}
```
说明:
- 填写的内容必须是一个Json格式。
- 最外层的key`xxxaaa`、`xxxbbb`表示主机名的关键字,包含该关键字的主机均有效。
- 每个最外层key的value为固定格式有windows或者linux系统的端口和管理用户(v3版叫账号模版 或 特权用户)ID您只需要更换掉对应的端口号及管理用户(v3版叫账号模版 或 特权用户)ID即可。
## 接入JumpServer操作完成之后我该做什么
- 完成接入后,您将看到已经接入过数据源的云厂商账号的信息,包括整体的系统、资源、状态信息,如图:
![图片](https://user-images.githubusercontent.com/3349611/180862967-4575fbdf-3bb4-47ae-a491-df00eaba9a26.png)
- 点击各云账号右侧的同步开关,填写节点信息和同步间隔后,即可进行首次同步(耗时依主机数而定,可在日志中查看进度)。
- `新节点ID`节点即为JumpServer中存放资产的目录。对于每个云账号**必须新建一个节点**来存放该账号的ECS防止同步操作对已有节点的主机造成影响。
- 在JumpServer-资产管理-资产列表-资产树中右键点击根节点Default即可`创建节点`,对创建的节点点右键选择最后的`显示节点详情`即可查看节点ID。
![图片](https://user-images.githubusercontent.com/3349611/180865099-f95c1a9c-851c-489d-9e88-403661ef469b.png)
- 同步完成后即可在界面上看到资源数和同步的ECS数量**注意JumpServer中已有的同名主机不会同步**,如数量不一致,可在日志从查看同名主机信息。
- 最后可以登录JumpServer找到对应到节点查看同步后的主机信息会根据云资源的分组信息把所有的ECS存放到对应的分组目录。
**注意云主机自动同步JumpServer功能仅是自动化了创建资产的操作每台云主机的管理用户(v3版叫账号模版 或 特权用户)还需要用户自行在ECS中创建好有使用账户推送(系统用户)的需要根据JumpServer的配置来自动或手动推送。**
---
## 高级设置不同云账号有不同的jumpserver管理账户的场景能否支持
### 目前web界面上不支持这样的场景不过后端是已经支持的所以可以直接修改consul KV的方式来实现。
- 访问consul的webUI `http://x.x.x.x:8500/ui/dc1/kv/ConsulManager/jms/`
- 该目录下可以看到2个键全局管理用户(v3版叫账号模版 或 特权用户)信息:`ecs_info`,全局特殊管理用户(v3版叫账号模版 或 特权用户)信息:`custom_ecs_info`
- 进入改目录下对应的云厂商以及云账户的目录
- 把上面提到了两个键复制到云账户的目录下即可,并修改为需要的内容即可,注意内容的格式保持不变。
- 下次同步时候会优先读取云账户目录下的管理用户(v3版叫账号模版 或 特权用户)信息。需要登录jumpserver删掉已同步的主机。
- 我会尽快把这个功能做到web界面上。