ansible使用说明

将安装包拷贝到主控端主机

在主控端主机安装ansible,sh setup.sh

确认安装成功后,编辑hosts文件(按步骤逐个添加主机组,不要一开始全部配置好)

[site-init]下的主机列表为被控制的主机(按照当前ai建模方案,即为mongo集群和服务以及中间件模块所在的主机)

在roles目录下,执行

ansible-playbook site.yml  -i /opt/offline_install/ai_model_ansible/host

可完成秘钥分发

安装基础组件docker,先定义一个主机组如[python-docker-server],然后编辑docker-ce下的vars变量

如图为设置docker安装路径和docker数据路径以及创建docker net和网段

创建一个yml文件,例如install_docker.yml

其中hosts即为hosts文件中的主机组,role为tasks所在的文件夹名

执行ansible-playbook  install_docker_ce.yml  -i /opt/offline_install/ai_model_ansible/host

等待执行完毕后,主机组中所有主机均以安装docker

同理可安装完python3和对应python docker模块(必须安装)

开始部署中间件,以nginx为例

在nginx的vars中,设置镜像版本,容器名,要映射端口的变量名和端口值

在hosts文件中定义如下主机组,要加上python路径(路径为安装python时定义的,一般不用改)

安装步骤如下

从files文件中复制nginx镜像到各个主机,然后倒入镜像,然后从templates中拷贝配置模板文件到指定位置,最后创建容器

其中templates可使用变量和jinjia2语法来动态生成配置文件

  1. 部署应用服务的步骤

由于当前镜像无法支持导入整个配置文件作为启动参数,所以在获取镜像前需要提前知道部署环境的服务器信息,生成一个专属的配置文件(改过程可以由开发负责人完成),将生成的镜像拷贝到files目录下即可

  1. 其他说明

groups中的变量,创建一个和主机组同名的文件,改文件里的变量可以被使用改主机组的task引用

Groups中的all文件中的变量,可以被所有主机引用

Vars中定义的变量优先级高于groups,以此类推,离使用变量名越近的定义优先级越高

当前spark集群的安装不包含在改脚本内

### Ansible 使用教程 Ansible 是一种简单而强大的自动化工具,可以用于配置管理、应用部署和任务编排。以下是关于 Ansible使用方法及其核心功能的详细说明。 #### 1. 配置文件设置 Ansible 的配置文件通常位于 `/etc/ansible/ansible.cfg`。可以通过修改该文件来定义主机清单文件的位置以及其他全局设置。例如,以下是一个典型的配置文件内容[^2]: ```ini [defaults] inventory = /etc/ansible/hosts host_key_checking = False ``` - `inventory` 指定了主机清单文件的位置。 - `host_key_checking = False` 禁用了 SSH 主机密钥检查,适用于需要快速测试的环境。 #### 2. 主机清单文件 主机清单文件通常位于 `/etc/ansible/hosts`,用于定义目标主机及其分组。例如,以下是一个示例主机清单文件的内容[^2]: ```ini [web] web1 web2 [db] db[1:2] [other] cache ``` - `[web]` 和 `[db]` 是分组名称,分别包含 `web1`, `web2` 和 `db1`, `db2`。 - `db[1:2]` 表示范围扩展,等同于 `db1` 和 `db2`。 - `[other]` 分组中包含一个主机 `cache`。 #### 3. 基本命令 Ansible 提供了多种命令行工具来执行任务。以下是一些常用命令: - **ping 测试**:验证目标主机是否可以被 Ansible 正常访问。 ```bash ansible all -m ping ``` - **创建用户**:通过 `user` 模块创建用户并设置密码。 ```bash ansible all -i /etc/ansible/hosts -m user -a "name=foo password=${pass}" ``` 其中 `${pass}` 是加密后的密码字符串[^3]。 - **设置密码**:如果需要更改用户的密码,可以结合变量传递的方式实现。 ```bash ansible all -i /etc/ansible/hosts -m user -a "name=Dragon password=${pass} ssh_key_type=ecdsa" ``` #### 4. Playbook 的使用 Playbook 是 Ansible 的核心功能之一,用于定义复杂的任务序列。以下是一个简单的 Playbook 示例[^1]: ```yaml --- - name: Example playbook to manage variables hosts: all tasks: - name: Include vars from var.yml include_vars: var.yml - name: Run playbook with extra-vars command: ansible-playbook var2.yml -e "username=user2 groupname=group2" ``` - `include_vars` 模块用于加载外部变量文件。 - `-e` 参数允许在运行时传递额外的变量。 #### 5. 变量的使用 Ansible 支持多种变量类型,包括主机变量、组变量和外部变量。例如,可以通过主机清单文件定义变量: ```ini [web] web1 ansible_user=root web2 ansible_user=admin ``` 或者在 Playbook 中直接定义变量: ```yaml vars: username: foo groupname: bar ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值