# operator **Repository Path**: chencheng777/operator ## Basic Information - **Project Name**: operator - **Description**: 操作员仓库,运维的自动化工具集合,包括:ansible、terraform、packer - **Primary Language**: Unknown - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2021-09-09 - **Last Updated**: 2021-09-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## operator #### 介绍 此仓库主要用来存放运营相关的工具、代码等等。当前主要运用如下工具: vagrant、ansible、packer、terraform。 #### 顶层说明 顶层目录,采用vagrant来管理相关的虚拟机,在虚拟机启动之后,可以进入虚拟机在不同的目录来运行相应的工具。 ##### 安装教程 1. 操作系统层面安装vagrant + virtualbox。(可以采用最新版本) 2. 在命令行下,安装vagrant的如下插件:vagrant-env[必须安装],vagrant-vbguest[可选],vagrant-proxyconf[通过代理上网则需要安装] 3. 根据vagrant box的需要,下载相应的vagrant box,并将vagrant box添加到系统,具体命令可以参见vagrant box --help。 4. 生成文件.env, 其中内容参考example.env,具体也可以看Vagrantfile中的变量定义来设置。 5. 调用vagrant up。 6. vagrant的启动中会自动调用install.sh脚本完成环境准备: * ansible的安装),并设置好ssh的代理认证转发。 * ssh的代理认证转发 7. 运行vagrant ssh,或者远程登陆入机器,即可使用相关工具! ##### 根目录说明 1. Vagrantfile: vagrant对应的配置文件。 2. .env: 本文件需要手动生成,repository中不包括。 3. ansible: ansible相关的roles以及playbooks。 4.1 init/insecure_private_key: box缺省的私钥,公钥已经打包到vagrant的box中。 4.2 init/install.sh: 设置系统、安装ansible的script。 5.1 memo/example.env: .env的样例。 5.2 memo/notes.txt: 部分技术资料。 6.1 packer/ubuntu1804: 用来构建ubuntu1804的模板(集成ansible)。 6.2 packer/vmware-iso: packer与vmware-iso的案例。 6.3 packer/vsphere-iso: packer与vsphere-iso的案例。 7.1 env.sh: 设置terraform的运行环境。 7.2 terraform/research: terraform构建设置VMware。 7.3 terraform/sample: terraform基于hashicorp/vsphere构建虚拟机。 8 vmware: 构建ESXi无人值守安装的脚本。 #### ansbile目录 与ansible相关的playbook,playbook根据目的不同分别存放在不同的目录。 ##### playbook调用说明 2. 进入VM后,如果需要重新配置ssh的代理认证转发,可通过如下方法: * eval $(ssh-agent) * ssh-add /vagrant/insecure_private_key 3. 进入playbook, 比如/vagrant/playbook/container 4. 通过如下命令调用:ansible-playbook -i ./home/inventory .home/k8schaos.yml 5. 相关的playbook的配置等相关的信息取决于具体的playbook。 ##### roles清单 此部分的文档结构有待优化,考虑是否放入ansible galaxy? 1. basis:基本的设置,目前主要设置APT源、APT代理、环境代理、缺省CA、本地DNS、时区等 2. bind9: DNS服务器 3. containerd: 高阶容器运行时,部分docker支持的设置转由k8s-kubelet支持。 * https://containerd.io/ * 需要配合kubernetes的docker的配置:https://kubernetes.io/docs/setup/production-environment/container-runtimes/ 4. docker: 完成docker的安装及配置。安装的具体原理参考docker以及kubernetes的官方文档: * https://docs.docker.com/install/linux/docker-ce/ubuntu/ * https://docs.docker.com/install/linux/linux-postinstall/ * 需要配合kubernetes的docker的配置:https://kubernetes.io/docs/setup/production-environment/container-runtimes/ 5. haproxy: 完成haproxy的安装及配置。 针对kubernetes的三个role,其主要采用kubeadm来建立集群,具体参考kubernetes的官方文档:https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ 6. k8schaos: 基于kubeadm完成k8s集群首发结点的配置。 7. k8sclient: 完成kubernetes集群的client端设置,主要包括kubectl以及helm 8. k8snode: 基于kubeadm完成k8s集群结点的配置。 9. kubernetes: 基于kubeadm完成k8s相关软件的安装。 10. mongodb: 安装mongodb。 11. privoxy: privoxy安装,包括greatwall等的设置安装。 12. registry: 基于docker-compoase完成docker registry的设置安装。 13. ssc: 完成shadowsocks-libev的客户端的安装及配置。 14. sss: 完成shadowsocks-libev的服务端的安装及配置。 15. user: 完成用户、组的构建及删除。 16. utilities: 共性工具。 17. utilities.cleaner: 系统清理器,当前支持docker以及kubernetes。 18. utilities.installer: 安装器,安装参数列表中提供的组件。 19. utilities.remover: 卸载器,卸载参数列表中提供的组件。 20. utilities.repairer: 修复器,修复各层级系统的缺陷,提供替代解决方案。 ##### 关于container中各存放playbook的目录说明 1. privte: 对应vagrant中的privte网络,建议采用192.168.56.1/24, 这样应用可以随意切换使用。 2. proxy: 对应vagrant中的public网络,但需要配置代理上网的虚机。 3. public: 对应vagrant中的public网络,但不需要配置代理的虚机。