请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

安全运维工具

安全运维工具

人已关注

请添加对本版块的简短描述

Harbor api 操作

[复制链接]
1400 abc 发表于 2020-5-14 18:54:50
  1. harbor 的版本为 1.5.2

  2. 为 Harbor 配置 swagger
  3. 官网参考: https://github.com/goharbor/harbor/blob/v1.5.2/docs/configure_swagger.md

  4. cd /iba/software/harbor

  5. wget https://raw.githubusercontent.com/goharbor/harbor/master/docs/prepare-swagger.sh https://raw.githubusercontent.com/goharbor/harbor/master/docs/swagger.yaml

  6. vi prepare-swagger.sh
  7. #修改 SERVER_IP
  8. SERVER_IP=192.168.0.241

  9. chmod +x prepare-swagger.sh
  10. ./prepare-swagger.sh


  11. vi docker-compose.yml
  12. # 在 - /data/ca_download/:/etc/ui/ca/:z 后添加下面两行
  13.       - ../src/ui/static/vendors/swagger-ui-2.1.4/dist:/harbor/static/vendors/swagger
  14.       - ../src/ui/static/resources/yaml/swagger.yaml:/harbor/static/resources/yaml/swagger.yaml

  15. docker-compose down -v && docker-compose up -d
  16. 通过浏览器访问 http://192.168.0.241/static/vendors/swagger/index.html

  17. # 获取镜像
  18. curl -X GET --header 'Accept: application/json' 'http://192.168.0.241/api/search?q=library'


  19. #获取镜像仓库的 tags,红色框框处就是 tags
  20. curl -X GET --header 'Accept: application/json' 'http://192.168.0.241/api/repositories/library%2Ftomcat/tags'


  21. # 删除镜像仓库的 tags
  22. curl -X DELETE -H 'Accept: text/plain' -u admin:Harbor12345  "http://192.168.0.241/api/repositories/library/redis/tags/2018-10-29_17-39"

  23. # 删除镜像的 tags 时,可以通过 curl 获取返回值来判断成功与否
  24. curl -X DELETE -H 'Accept: text/plain' -u admin:Harbor12345  -o /dev/null -s -w %{http_code}  "http://192.168.0.241/api/repositories/library/redis/tags/2018-10-29_17-39"

  25. # HTTP Status Code 返回码说明
  26. 200        Delete tag successfully.
  27. 400        Invalid repo_name.
  28. 401        Unauthorized.
  29. 403        Forbidden.
  30. 404        Repository or tag not found.
  31. 附上自动清理 harbor tags 的脚本,这里删除多余的 tags,保留9个,可在下面脚本配置,打 tag 的时候可以按照日期命名,例如:2018-10-29_17-39 这可以方便用下面的脚本进行删除操作
  32. #!/bin/bash
  33. URL="http://192.168.0.241"
  34. USER="admin"
  35. PASS="Harbor12345"
  36. PRO="library"
  37. HARBOR_PAHT="/iba/harbor"

  38. # 软删除 harbor tags
  39. del_tags()
  40. {
  41.     echo "软删除 ${rp}/${t}"
  42.     curl -X DELETE -H 'Accept: text/plain' -u ${USER}:${PASS} "${URL}/api/repositories/${rp}/tags/${t}"

  43. }

  44. # 硬删除 harbor tags
  45. har_del_tags()
  46. {
  47.    cd ${HARBOR_PAHT}
  48.    docker-compose -f docker-compose.yml -f docker-compose.clair.yml stop
  49.    docker run -it --name gc --rm --volumes-from registry vmware/registry:2.6.2-photon garbage-collect /etc/registry/config.yml
  50.    docker-compose -f docker-compose.yml -f docker-compose.clair.yml start
  51. }


  52. # 获取 project id
  53. PID=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/projects"|grep -w -B 2 "${PRO}" |grep "project_id"|awk -F '[:, ]' '{print $7}')
  54. #echo ${PID}

  55. # 拿获取到的 projects_id 获取 repositories
  56. REPOS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories?project_id=${PID}"|grep "name"|awk -F '"' '{print $4}')
  57. for rp in ${REPOS}
  58. do
  59.     echo ${rp}

  60.     TAGS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories/${rp}/tags"|grep "name"|awk -F '"' '{print $4}'|sort -r |awk 'NR > 9 {print $1}')

  61.     for t in ${TAGS}
  62.     do
  63.         echo ${t}
  64.         del_tags
  65.     done

  66.     echo "===================="
  67. done

  68. har_del_tags
复制代码


https://www.cnblogs.com/klvchen/p/9815073.html

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表