
应多位读者的要求,终于在空闲时间写了 Flask-RESTful 插件实现 API。它其实是对 Flask MethodView 的再次封装,让用户能够更方便快捷地构建出 REST API,比如基于 HTTP 方法的调度、快速定义路由规则、支持对传入的参数值进行检验、可快速定制要返回的数据各字段值、资源方法可分别应用不同的装饰器(比如权限认证),默认返回 JSON 格式的数据(无需调用 jsonify 方法),当然也可以返回 HTML、XML、CSV 等格式的数据
应多位读者的要求,终于在空闲时间写了 Flask-RESTful 插件实现 API。它其实是对 Flask MethodView 的再次封装,让用户能够更方便快捷地构建出 REST API,比如基于 HTTP 方法的调度、快速定义路由规则、支持对传入的参数值进行检验、可快速定制要返回的数据各字段值、资源方法可分别应用不同的装饰器(比如权限认证),默认返回 JSON 格式的数据(无需调用 jsonify 方法),当然也可以返回 HTML、XML、CSV 等格式的数据
如果手动安装 Kubernetes 服务端和客户端的各组件会非常复杂,尤其是初学者尚不清楚 K8s 的架构情况下很容易部署失败,从而打击继续学习的积极性。当然,如果你只是想体验一下 K8s 的特性,可以使用官方入门教程 https://kubernetes.io/docs/tutorials/kubernetes-basics/ 中那样单台虚拟机上运行 Minikube 即可。或者,使用 Ansible role (https://galaxy.ansible.com/geerlingguy/kubernetes) 来自动部署,但是如果你想深入掌握 K8s 各组件的作用,建议使用官方提供的管理工具 kubeadm 来部署 K8s 集群
Ansible 在 1.2 版本以后开始支持 role,它与我们日常使用的 playbook 没有什么区别,只不过对目录结构进行了一些规范。我们可以对一个很复杂的 playbook 进行拆分,比如将任务都放到 tasks/ 目录中、将触发处理程序都放到 handlers/ 目录中等。如果以后需要对 role 进行修改或者调整,只需修改相应的文件即可。如果还想把这个 role 分享给其它人,也只需要分享整个目录即可,从而实现重用的目的。role 只是关于一个功能的集合,我们使用它时,只需要编写一个 playbook 通过 roles 关键字去调用我们写好的 role 即可
playbook 文件包含了多个 play,每个 play 可以应用于一个主机组或单个主机。而每个 play 又包含一系列编排后的 tasks(按顺序执行),每个 task 其实就是执行一次 Ad Hoc 临时命令,从根本上来讲,所谓的 task 无非就是调用了 Ansible 的一个模块。如果你熟悉 Python 中的 Flask 框架,它默认的模板引擎就是 Jinja2,那么你学习本文内容时会感觉非常简单
Ansible 是使用了 Python 作为开发语言,简单易用、功能强大的自动化运维管理工具,可以出色地完成配置管理、应用部署、任务编排等多方面工作。与 Puppet、Saltstack 等其它自动化产品相比较,Ansible 无需在远程服务器上安装 agent 客户端代理,它只依赖 SSH 连接,而且它的学习曲线非常低