网站首页 文章专栏 ansible rest api ansible-runner-service 容器部署
ansible rest api ansible-runner-service 容器部署
编辑时间:2023年1月17日 10:01 作者:赵彦昌 浏览量:1241


源码仓库: https://github.com/ansible/ansible-runner-service/

简介:(引入官方github英文翻译)

该项目将ansible_runner接口包装在REST API中,使其能够从其他平台执行和查询ansible_runner脚本。

这样做的动机是双重的;

为非python项目提供Ansible集成

提供一种以编程方式运行剧本的方法,其中可执行引擎在单独的主机上或单独的容器中运行

最近工作需要,远程调用 ansible ,多方搜索,查看文档下。选 中 ansible-runner-service  做为使用对象

网上中文的部署教程,少得可怜。特写此文章分享我的部署步骤。只是步骤哦,至于它的作用,能干什么。可以访问github的源码仓库查看介绍

容器内装 anisble , ansible-runner, ansible-runner-service

如果想内容器属主机和 容器内的ansible 使用一样的配置,一样的主机清单,一样的playbook., 改下指令创建



部署步骤

下载 anisble-ruuner-service 仓库,并cd 到仓库根目录
git clone https://github.com/ansible/ansible-runner-service.git
cd ansible-runner-service
mkdir /etc/ansible-runner-service
mkdir -p /usr/share/ansible-runner-service/{artifacts,env,inventory,project}
mkdir -p /etc/ansible-runner-service/certs/{client,server}
# 如果开启了selinux 执行以下命令
cd /usr/share
chcon -Rt container_file_t ansible-runner-service

cp {logging,config}.yaml /etc/ansible-runner-service/.
cp -r samples/project/* /usr/share/ansible-runner-service/project

# 安装证书(因为访问ansible-runner-service 需要https 双向认证)
cd misc/nginx/
# 生成默认允许所有域名形式访问
./generate_certs.sh
# 也可以指定域名访问
./generate_certs.sh -s myserver.com -c myclient.com

# 启动容器
docker run -d --network host -v /usr/share/ansible-runner-service:/usr/share/ansible-runner-service -v /etc/ansible-runner-service:/etc/ansible-runner-service -v /usr/share/ansible/plugins:/usr/share/ansible/plugins -v /etc/ansible:/etc/ansible -v /root/.ssh:/root/.ssh --name runner-service jolmomar/ansible_runner_service:latest

# 证书自动生成到目录
cd /etc/ansible-runner-service/certs

# 测试访问
curl -i -k --key ./client.key --cert ./client.crt https://localhost:5001/api/v1/playbooks -X GET

主要是把属主机使用到的配置文件 ,root 用户的.ssh 及 /usr/share/ansible 目录映射到容器内

容器使用 network host 模式

默认端口 5001

来说两句吧
最新评论