网站首页 文章专栏 ansible rest api ansible-runner-service 容器部署
源码仓库: https://github.com/ansible/ansible-runner-service/
该项目将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 模式