Hosts
Scheme: hosts.
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
where (Optional) |
url parameters |
JSON object |
Фильтр элементов. Используется синтаксис mongo запросов. |
sort (Optional) |
url parameters |
string |
Сортировка элементов. |
projection (Optional) |
url parameters |
JSON object |
Скрытие полей. |
embedded (Optional) |
url parameters |
JSON object |
Встраивание элементов в поля. |
page (Optional) |
url parameters |
integer |
Номер страницы элементов. |
max_results (Optional) |
url parameters |
integer |
Максимальное число элементов на одной странице. |
show_soft_deleted (Optional) |
url parameters |
bool |
Показать soft deleted. |
Пример запроса:
curl -X GET http://tkcontrol/api/hosts?where={"key":"accepted","status":"up"}&projection={"grain":0}
Ответ
Пример ответа:
{
"_items": [
{
"_id": "medpc-271e56.localdomain",
"version": "28",
"ip": "10.10.19.248",
"nodegroups": [
"medpc-img",
"linux"
],
"last_distupgrade": "Thu, 26 Mar 2020 15:22:16 GMT",
"last_stateapply": "Wed, 11 Nov 2020 10:09:22 GMT",
"_soft_deleted": false,
"status": "up",
"_updated": "Wed, 16 Dec 2020 09:23:26 GMT",
"_created": "Fri, 25 Sep 2020 12:26:25 GMT",
"heartbeat": "Wed, 11 Nov 2020 12:08:15 GMT",
"key": "accepted",
"last_action": "20201111130724122307medpc-271e56.localdomain",
"groups": [
"5f8da6501eb86343459e26ce"
],
"nat": false,
"fingerprint": "66:52:5d:4f:8d:d0:a3:4a:e0:25:50:a3:d3:f1:b7:49:de:d2:fe:5d:36:16:50:cd:5b:29:bd:a2:91:bd:5f:0a",
"fingerprint_history": [
{
"added": "Tue, 03 Nov 2020 07:40:58 GMT",
"fingerprint": "66:52:5d:4f:8d:d0:a3:4a:e0:25:50:a3:d3:f1:b7:49:de:d2:fe:5d:36:16:50:cd:5b:29:bd:a2:91:bd:5f:0a"
}
],
"pritunl_representation": {
"auth_type": "local",
"yubico_id": null,
"client_to_client": false,
"otp_secret": "Q6SQ6Q72XKLD7GMI",
"name": "medpc-271e56.localdomain",
"pin": false,
"dns_suffix": null,
"disabled": false,
"mac_addresses": null,
"email": "",
"organization_name": "rsa-org-test",
"bypass_secondary": false,
"groups": [],
"organization": "5fa001d043e2108e8ffb7a6d",
"port_forwarding": [],
"dns_servers": null,
"type": "client",
"id": "5fa001d143e2108e8ffb7a74"
},
"vpn_organization": "5fa10a25ccb8d1bdb79feeeb",
"identification_number": "fdf",
"_links": {
"self": {
"title": "Host",
"href": "hosts/medpc-271e56.localdomain"
},
"related": {
"last_action": {
"title": "Action",
"href": "actions/20201111130724122307medpc-271e56.localdomain"
},
"groups": [
{
"title": "Group",
"href": "groups/5f8da6501eb86343459e26ce"
}
],
"nodegroups": [
{
"title": "Nodegroup",
"href": "nodegroups/medpc-img"
},
{
"title": "Nodegroup",
"href": "nodegroups/linux"
}
],
"vpn_organization": {
"title": "Vpn_organization",
"href": "vpn_organizations/5fa10a25ccb8d1bdb79feeeb"
}
}
}
}
],
"_links": {
"parent": {
"title": "home",
"href": "/"
},
"self": {
"title": "hosts",
"href": "hosts?where={\"key\":\"accepted\",\"status\":\"up\"}"
}
},
"_meta": {
"page": 1,
"max_results": 25,
"total": 1
}
}
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
projection (Optional) |
url parameters |
JSON object |
Скрытие полей. |
embedded (Optional) |
url parameters |
JSON object |
Встраивание элементов в поля. |
show_soft_deleted (Optional) |
url parameters |
bool |
Показать soft deleted. |
Пример запроса:
curl -X GET http://tkcontrol/api/hosts/medpc-271e56.localdomain
Ответ
Пример ответа:
{
"_id": "medpc-271e56.localdomain",
"version": "28",
"ip": "10.10.19.248",
"nodegroups": [
"medpc-img",
"linux"
],
"grain": {
"cpu_model": "Intel Xeon E312xx (Sandy Bridge)",
"cpuarch": "x86_64",
"mem_total": 1987,
"num_cpus": 2,
"num_gpus": 1,
"virtual": "kvm",
"gpus": [
{
"model": "Device 1111",
"vendor": "unknown"
}
],
"serialnumber": null,
"biosversion": null,
"saltversion": "2017.7.0",
"tk-version": 28,
"tkcontrol": {
"last_distupgrade": "2020-03-26 15:22:16+00:00",
"last_stateapply": "2020-11-10 09:47:01+00:00"
},
"kernel": "Linux",
"kernelrelease": "4.19.59-un-def-alt0.M80C.1",
"lsb_distrib_id": "ALT",
"osfullname": "ALT",
"lsb_distrib_description": null,
"host": "localhost",
"domain": "localdomain",
"localhost": "medpc-271e56.localdomain",
"ip_interfaces": {
"lo": [
"127.0.0.1",
"::1"
],
"ens3": [
"10.10.19.29",
"fe80::dd9d:6e76:e4a9:48c2"
],
"ens18": [
"10.10.19.248",
"fe80::ba9d:5fb:9f5f:86fa"
]
},
"ip": "10.10.19.248",
},
"last_distupgrade": "Thu, 26 Mar 2020 15:22:16 GMT",
"last_stateapply": "Wed, 11 Nov 2020 10:09:22 GMT",
"_soft_deleted": false,
"status": "up",
"_updated": "Wed, 16 Dec 2020 09:23:26 GMT",
"_created": "Fri, 25 Sep 2020 12:26:25 GMT",
"heartbeat": "Wed, 11 Nov 2020 12:08:15 GMT",
"key": "accepted",
"last_action": "20201111130724122307medpc-271e56.localdomain",
"groups": [
"5f8da6501eb86343459e26ce"
],
"nat": false,
"fingerprint": "66:52:5d:4f:8d:d0:a3:4a:e0:25:50:a3:d3:f1:b7:49:de:d2:fe:5d:36:16:50:cd:5b:29:bd:a2:91:bd:5f:0a",
"fingerprint_history": [
{
"added": "Tue, 03 Nov 2020 07:40:58 GMT",
"fingerprint": "66:52:5d:4f:8d:d0:a3:4a:e0:25:50:a3:d3:f1:b7:49:de:d2:fe:5d:36:16:50:cd:5b:29:bd:a2:91:bd:5f:0a"
}
],
"pritunl_representation": {
"auth_type": "local",
"yubico_id": null,
"client_to_client": false,
"otp_secret": "Q6SQ6Q72XKLD7GMI",
"name": "medpc-271e56.localdomain",
"pin": false,
"dns_suffix": null,
"disabled": false,
"mac_addresses": null,
"email": "",
"organization_name": "rsa-org-test",
"bypass_secondary": false,
"groups": [],
"organization": "5fa001d043e2108e8ffb7a6d",
"port_forwarding": [],
"dns_servers": null,
"type": "client",
"id": "5fa001d143e2108e8ffb7a74"
},
"vpn_organization": "5fa10a25ccb8d1bdb79feeeb",
"identification_number": "fdf",
"_links": {
"self": {
"title": "Host",
"href": "hosts/medpc-271e56.localdomain"
},
"related": {
"last_action": {
"title": "Action",
"href": "actions/20201111130724122307medpc-271e56.localdomain"
},
"groups": [
{
"title": "Group",
"href": "groups/5f8da6501eb86343459e26ce"
}
],
"nodegroups": [
{
"title": "Nodegroup",
"href": "nodegroups/medpc-img"
},
{
"title": "Nodegroup",
"href": "nodegroups/linux"
}
],
"vpn_organization": {
"title": "Vpn_organization",
"href": "vpn_organizations/5fa10a25ccb8d1bdb79feeeb"
}
},
"parent": {
"title": "home",
"href": "/"
},
"collection": {
"title": "hosts",
"href": "hosts"
}
}
}
Запрос
Параметры запроса:
Этот endpoint является прокси POST запроса к http://salt-api/. Но параметр "salt_client" заменяется на "client", а "tgt" устанавливается именем хоста. Ознакомиться со всеми возможными функциями можно на Salt Module Reference.
Пример запроса:
curl -X POST http://tkcontrol/api/hosts/skupov-staging-tkcontrol-non-root-client1 -H "Content-Type: application/json" -d '{ \
{ \
"salt_client": "local", \
"fun": "cmd.run", \
"kwarg": { \
"cmd": "ip a" \
} \
}'
Ответ
Пример ответа:
{
"task_id":"603e3a423f97526801fd3175",
"status":"success",
"return":{
"return":[
{
"skupov-staging-tkcontrol-non-root-client1":"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n inet 127.0.0.1/8 scope host lo\n valid_lft forever preferred_lft forever\n inet6 ::1/128 scope host \n valid_lft forever preferred_lft forever\n2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000\n link/ether fa:16:3e:b1:9d:9a brd ff:ff:ff:ff:ff:ff\n inet 10.40.129.70/24 brd 10.40.129.255 scope global dynamic ens3\n valid_lft 82940sec preferred_lft 82940sec\n inet6 fe80::f816:3eff:feb1:9d9a/64 scope link \n valid_lft forever preferred_lft forever"
}
]
}
}
Запрос
Параметры запроса:
Name |
In |
Type |
Description |
|---|---|---|---|
action (Optional) |
body |
string |
Действие, которое необходимо выполнить над мониторинговыми данными. Возможные действия: 'start', 'stop', 'stop_all'. |
Пример запроса:
curl -X POST http://tkcontrol/api/hosts/skupov-salt-minion-dev5/all_status -H "Content-Type: application/json" -d '{ \
{ \
"action":"start" \
}'
Запрос
Пример запроса:
curl -X PATCH http://tkcontrol/api/hosts/skupov-salt-minion-dev5 -H "Content-Type: application/json" -d '{ \
{ \
"identification_number":"123456789abc" \
}'
Запрос
Пример запроса:
curl -X DELETE http://tkcontrol/api/hosts/win7-lexa.center.cg