Go 语言项目开发实战
孔令飞
腾讯云专家工程师,前 Red Hat、联想云工程师
41030 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

03 | 项目部署:如何快速部署 IAM 系统?

测试 iamctl 是否成功安装
安装 iamctl
创建 iamctl 证书和私钥
测试 iam-apiserver 是否成功安装
安装并运行 iam-apiserver
创建 iam-apiserver 证书和私钥
配置 hosts
创建 CA 根证书和密钥
创建需要的目录
配置环境文件
初始化 MariaDB 数据库
安装和配置 IAM 服务
配置环境变量和 alias
下载 IAM 项目代码
2. 安装和配置 IAM 服务
安装和配置 MongoDB
安装和配置 Redis
安装和配置 MariaDB
1. 安装和配置数据库
检查是否成功安装 man1 文件
安装生成的 man1 文件
生成各个组件的 man1 文件
测试 iam-pump 是否成功安装
启动 iam-pump 服务
创建并安装 iam-pump systemd unit 文件
生成并安装 iam-pump 的配置文件
安装 iam-pump 可执行程序
测试 iam-authz-server 是否成功安装
安装并运行 iam-authz-server
创建 iam-authz-server 证书和私钥
安装 iamctl
安装和配置 iam-apiserver
准备工作
安装和配置 MongoDB
安装和配置 Redis
安装和配置 MariaDB
导出 Linux 用户密码
配置环境变量和 alias
准备实验环境,提高学习效率
协助排障和故障处理
了解 IAM 系统组件功能之间的联系
部署和使用 IAM 系统
彩蛋:一键安装
课后练习
总结
安装 man 文件
安装和配置 iam-pump
安装和配置 iam-authz-server
安装和配置 IAM 系统
安装和配置数据库
IAM 项目代码下载
部署过程分成 2 大步
了解 IAM 项目
怎么快速部署 IAM 系统

该思维导图由 AI 生成,仅供参考

你好,我是孔令飞。
上一讲,我们一起安装和配置了一个基本的 Go 开发环境。这一讲,我就来教你怎么在它的基础上,快速部署好 IAM 系统。
因为我们要通过一个 IAM 项目来讲解怎么开发企业级 Go 项目,所以你要对 IAM 项目有比较好的了解,了解 IAM 项目一个最直接有效的方式就是去部署和使用它。
这不仅能让你了解到 IAM 系统中各个组件功能之间的联系,加深你对 IAM 系统的理解,还可以协助你排障,尤其是跟部署相关的故障。此外,部署好 IAM 系统也能给你后面的学习准备好实验环境,边学、边练,从而提高你的学习效率。
所以,今天我们专门花一讲的时间来说说怎么部署和使用 IAM 系统。同时,因为 IAM 系统是一个企业级的项目,有一定的复杂度,我建议你严格按照我说的步骤去操作,否则可能会安装失败。
总的来说,我把部署过程分成 2 大步。
安装和配置数据库:我们需要安装和配置 MariaDB、Redis 和 MongoDB。
安装和配置 IAM 服务:我们需要安装和配置 iam-apiserver、iam-authz-server、iam-pump、iamctl 和 man 文件。
当然啦,如果你实在不想这么麻烦地去安装,我也在这一讲的最后给出了一键部署 IAM 系统的方法,但我还是希望你能按照我今天讲的详细步骤来操作。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文详细介绍了如何快速部署 IAM 系统,包括安装和配置 MariaDB、Redis 和 MongoDB 数据库的步骤,以及一键部署 IAM 系统的方法。作者强调了通过部署和使用 IAM 系统来加深对其理解,并提高学习效率的重要性。在准备工作中,包括初始化数据库、配置环境变量文件、创建目录、创建 CA 根证书和密钥、配置 hosts。整个部署过程涵盖了 IAM 系统的安装、配置和准备工作,为想要快速了解和部署 IAM 系统的读者提供了有价值的指南。文章内容详实,适合技术人员快速上手部署 IAM 系统。文章还介绍了安装和配置 iam-apiserver 的具体步骤,包括创建证书和私钥、安装并运行 iam-apiserver、以及测试 iam-apiserver 是否成功安装。通过详细的步骤和示例代码,读者可以快速了解 IAM 系统的部署和运行过程,为实际操作提供了有力的指导。文章还介绍了密钥和授权策略的管理方法,包括创建、列出、获取详细信息、修改和删除密钥和策略的具体请求方法。这些内容为读者提供了全面的 IAM 系统管理知识,帮助他们更好地理解和应用 IAM 系统。文章还提供了一键安装脚本,方便读者快速完成 IAM 系统的安装。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(335)

  • 最新
  • 精选
  • Q
    置顶
    ---用户名和密码有错--- $ curl -s -XPOST -H'Content-Type: application/json' -d '{"username":"admin","password":"Admin@2021"}' http://127.0.0.1:8080/login {"message":"incorrect Username or Password"} ---- 2021-05-27 15:36:32.340 INFO gorm@v1.21.4/callbacks.go:124 mysql/user.go:69 ReadMapCB: expect { or n, but found , error found in #0 byte of ...||..., bigger context ...||...[1.701ms] [rows:1] SELECT * FROM `user` WHERE name = 'admin' ORDER BY `user`.`id` LIMIT 1 2021-05-27 15:36:32.340 ERROR apiserver/auth.go:146 get user information failed: ReadMapCB: expect { or n, but found , error found in #0 byte of ...||..., bigger context ...||... 2021-05-27 15:36:32.341 INFO middleware/logger.go:135 401 - [127.0.0.1] "2.055136ms POST /login" {"requestID": "c4bdae71-6fb4-4a74-9730-06102f5e4e0e", "username": ""}

    作者回复: 感谢Q哥的反馈。 这个报错最新的master分支和v1.0.0版本已经修复了。 已经安装的同学可以通过以下操作来修复下: $ git clone --depth=1 https://github.com/marmotedu/iam $ mysql -h127.0.0.1 -uiam -p 登陆mysql之后执行: > drop database iam; > source iam/config/iam.sql 通过以上步骤就可以。 这里失败的原因是,user, secret, policy表中少了一个字段:instanceID。

    2021-05-27
    5
    5
  • 越努力丨越幸运
    老师讲的真的很细致,按照老师的教程基本没什么问题,我自己是在 docker 容器中部署的,我把项目部署好的容器打包上传了,有需要的同学可以直接拉下来用(docker pull mjcjm/centos-go-project),启动参数一定要用:docker run -tid --name 容器名称 -v /sys/fs/cgroup:/sys/fs/cgroup --privileged=true 镜像id /usr/sbin/init。 最后继续加油💪🏻,冲冲冲!

    作者回复: 加油!!

    2021-12-01
    6
    21
  • 真想
    配置环境劝退 折腾了很久 最终放弃了 希望能简化配置流程 把重心放在开发实战 而不是环境实战

    作者回复: 用的哪个系统?简单的课程网上太多了,这个课程还是希望引入一些复杂度,来让读者学习到更多的内容。 可以加老师微信nightskong,帮你定位解决下,可能你用的不是centos8.x

    2022-06-27归属地:广东
    2
    17
  • 哇哈哈
    在执行“make build BINS=iam-apiserver” 的时候报错了,麻烦老师看一下 ===========> Building binary iam-apiserver 132d18e for linux amd64 no required module provides package github.com/marmotedu/iam/cmd/iam-apiserver: go.mod file not found in current directory or any parent directory; see 'go help modules' make[1]: *** [scripts/make-rules/golang.mk:60: go.build.linux_amd64.iam-apiserver] Error 1 make: *** [Makefile:62: build] Error 2

    作者回复: 有没有上下文呢?看着像是没有执行go work use iam;如果还有问题,可以加老师微信nightskong,现场帮你定位

    2022-07-17归属地:广东
    5
    8
  • pedro
    不容易啊,经过了三天,期间换了一次操作系统(从centos7 到 centos8),换了一次电脑(从低配云主机到本地虚拟机),踩了无数次坑,遇到了 n 多问题,终于按照本节步骤实打实的跑出来了,期间还为了 ReadMapCB 的问题翻了半天的源代码,虽然没有找到问题所在,但是也大致读懂了项目结构和作用,一把辛酸泪,终究得到了如下收获: ``` iamctl version -o yaml clientVersion: buildDate: "2021-05-28T11:57:56Z" compiler: gc gitCommit: fb0a7b4ee5d497e7b1707fb5251d844d8538c5d8 gitTreeState: dirty gitVersion: fb0a7b4 goVersion: go1.16.2 platform: linux/amd64 serverVersion: buildDate: "2021-05-28T11:12:56Z" compiler: gc gitCommit: fb0a7b4ee5d497e7b1707fb5251d844d8538c5d8 gitTreeState: dirty gitVersion: fb0a7b4 goVersion: go1.16.2 platform: linux/amd64 ```

    作者回复: 学习最高效的方式是,发现问题,解决问题。老哥一定收货了很多,另外文档中的坑,今后我也会努力避免!

    2021-05-28
    2
    8
  • Aliliin
    经过一上午的奋战总算是搭建完了,我在想就这样子的项目,入职一家新公司,如果没有文档,大佬级别的人物能在本地运行起来进行开发吗? iamctl version -o yaml clientVersion: buildDate: "2021-06-02T03:23:02Z" compiler: gc gitCommit: c01dd7bc7ee8aa2c06b9b70e565dff9f5e13e5ce gitTreeState: dirty gitVersion: c01dd7b goVersion: go1.16.2 platform: linux/amd64 serverVersion: buildDate: "2021-06-02T03:13:04Z" compiler: gc gitCommit: c01dd7bc7ee8aa2c06b9b70e565dff9f5e13e5ce gitTreeState: dirty gitVersion: c01dd7b goVersion: go1.16.2 platform: linux/amd64

    作者回复: 可以的,学习项目最好得方式是看源码

    2021-06-02
    7
  • 单推dd
    在启动iam-authz-server服务的时候一直启动不起来,然后我通过日志发现他用的端口是9090,正好和我阿里云服务器的web界面管理工具cockpit用的一样,所以用了sudo systemctl stop cockpit.socket命令,让9090端口空出来,成功启动iam-authz-server服务。

    作者回复: 机智的boy

    2021-06-12
    4
    6
  • Ransang
    好家伙,就这个项目安装就够我喝几壶里

    作者回复: 老哥,加油

    2021-06-07
    6
  • chinandy
    安装 iamctl。第二步生成并安装 iamctl 的配置文件(config):$ ./scripts/genconfig.sh scripts/install/environment.sh configs/config > config 在configs下面没有config文件,这个文件是怎么来的,我自己touch了一个显然不对的,我打开看.iam目录下看他是空的。

    作者回复: 你用的是最新的master分支吧,master分支中把config改成了iamctl.yaml了。 你可以使用v1.0.8版本。

    2021-08-18
    5
    5
  • 小可爱(`へ´*)ノ
    老师,你mariadb安装脚本中的出现类似iam::mariadb::uninstall的命名,使用::有什么目的吗

    作者回复: 分域,通过分域可以知道是哪个项目哪个功能模块的函数,便于理解

    2021-06-17
    5
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部