# mongodb-ansible **Repository Path**: starview/mongodb-ansible ## Basic Information - **Project Name**: mongodb-ansible - **Description**: No description available - **Primary Language**: YAML - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-01 - **Last Updated**: 2022-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用 Ansible 部署 mongodb 分片 集群 ## 准备机器 ### 1. 部署目标机器若干 + 目标机器需开放ssh,(端口号可以不用默认的22端口),操作系统`CentOS7.8`。 ### 2. 部署中控机一台 + 中控机可以是部署目标机器中的某一台。 + 推荐安装`CentOS7.6`及以上版本Linux操作系统(默认包含Python2.7)。 + 该机器需开方外网访问,用于下载相关软件安装包。 ## 第1步:在中控机上安装系统依赖包 以`root`或有`sudo`权限的用户登录中控机,然后根据操作系统类型执行相应的安装命令。 + `CentOS 7`系统: ``` sudo yum install -y epel-release && sudo sed -e 's!^metalink=!#metalink=!g' \ -e 's!^#baseurl=!baseurl=!g' \ -e 's!//download\.fedoraproject\.org/pub!//mirrors.tuna.tsinghua.edu.cn!g' \ -e 's!http://mirrors\.tuna!https://mirrors.tuna!g' \ -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo sudo yum makecache sudo yum -y install git curl sshpass && sudo yum -y install python2-pip ``` + `Ubuntu`系统: ``` sudo apt-get -y install git curl sshpass python-pip ``` ## 第2步:在中控机上创建kube用户,并生成`SSH key` 以`root`或有`sudo`权限的用户登录中控机,执行以下步骤: 1. 创建`kube`用户。 ``` sudo useradd -m -d /home/kube kube ``` 2. 设置`kube`用户密码。 ``` sudo passwd kube ``` 3. 配置`kube`用户`sudo`免密码,将`kube ALL=(ALL) NOPASSWD: ALL`添加到文件末尾即可。 ``` sudo tee -a /etc/sudoers <<-'EOF' kube ALL=(ALL) NOPASSWD: ALL EOF ``` 4. 生成`SSH key`。 执行`su`命令,从`root`用户切换到`kube`用户下。 ``` su - kube ``` 创建`kube`用户SSH key,提示`Enter passphrase`时直接回车即可。执行成功后,SSH私钥文件为`/home/kube/.ssh/id_rsa`,SSH公钥文件为`/home/kube/.ssh/id_rsa.pub`. ``` ssh-keygen -t rsa ``` ## 第3步:在中控机上下载 Mongodb Ansible (如果已经克隆过mongodb-ansible项目,跳过此步) 从`git`上克隆`mongodb-ansible.git`项目。 ``` git clone https://gitee.com/starview/mongodb-ansible.git ``` ## 第4步:在中控机上安装 Mongodb Ansible 及其依赖 以`kube`用户登录中控机,按照如下步骤安装依赖。 1. 若未配置过pip国内源,可参考如下步骤配置源以提高安装速度。 ``` sudo mkdir ~/.pip/ && sudo tee ~/.pip/pip.conf <<-'EOF' [global] index-url=http://pypi.douban.com/simple/ [install] trusted-host=pypi.douban.com EOF ``` 2. 在中控机上安装 K8S Ansible 及其依赖。 ``` sudo pip install -r ./requirements.txt ``` ## 第5步:在中控机上配置部署机器 SSH 互信及 sudo 规则 以 `kube` 用户登录中控机,然后执行以下步骤: 1. 将部署目标机器IP添加到 `inventory.ini` 文件的 `[masters]` `[nodes]` 区块下。 2. 修改`inventory.ini`文件`[all:vars]`区块下的`username`值为`kube`,以及相关代理地址。 3. 执行以下命令,按提示输入部署目标机器的`root`用户密码。 ``` ansible-playbook create_users.yml -u root -k ``` 该步骤将在部署目标机上创建`kube`用户,并配置`sudo`规则,配置中控机与部署目标机之间的 SSH 互信。 ## 第6步:上传安装包 ``` ansible-playbook upload.yml ``` ## 第7步:部署 ``` ansible-playbook deploy_standard.yml ```