目录
AWX+gitlab
我们可以将playbook上传到gitlab,然后awx去执行任务的时候,任务的playbook从gitlab去下载
1. Awx配置
点击左侧访问下拉菜单,然后添加机构
1.1 添加机构
1.2 添加团队
1.3 添加主机
将需要被管理的节点添加进来
变量这个地方可以写内部变量,不知道什么是内部变量可以去看看ansible变量部分
也可以不直接在这里指定变量,那么就需要在凭证里面添加一个机器凭证,里面会让你填入用户名/密码 或者密钥的
1.4 测试主机连通性
依次点击 清单--->Demo Inventory ---> 主机----> 勾选主机---->执行命令
执行一个简单的whoami命令
输出没问题
2. 对接gitlab
2.1 添加凭证
这里的用户名和密码不能乱填,要填已经在gitlab上注册的用户或者马上要到gitlab上注册的用户,这里是我的gitlab用户截图
2.2 添加项目
在awx上创建新项目
确保gitlab上有一个群组,等会是需要输入url的
这个url的来源这样的
- 1.来到gitlab的界面
- 2.找到新建的群组/已存在的群组
最后的页面应该成这样
2.3 上传playbook
来到任意节点,只要能连接上git就行
2.3.1 克隆仓库
# 这里的gitlab.hcie.com需要自己在hosts里面做解析 [root@master gitlab]# git clone http://gitlab.hcie.com/devops/myroles.git Cloning into 'myroles'... Username for 'http://gitlab.hcie.com': test Password for 'http://test@gitlab.hcie.com': remote: Enumerating objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3 (from 1) Receiving objects: 100% (3/3), done.
这里需要输入用户名和密码,用户名就用刚刚在awx里面添加凭据的那个用户
2.3.2 创建分支
[root@master myroles]# git checkout -b dev Switched to a new branch 'dev' [root@master myroles]# git push -u origin dev 然后输入用户名和密码
2.3.3 编写playbook并上传
[root@master myroles]# cat test.yaml - name: test playbook hosts: all tasks: - name: debug debug: msg: "hello world" [root@master myroles]# git add . [root@master myroles]# git commit -m "commit test playbook" [root@master myroles]# git push 输入用户名和密码开始推送
上传完之后会变成这个样子
2.3.4 上传ansible.cfg(可选)
如果没有特殊的配置的话可以不做这一步
如果是使用的角色来执行任务的话ansible.cfg里面还要定义role的路径
修改里面的一项
[root@master myroles]# vim ansible.cfg host_key_checking = False
本身是有这一项的,把注释取消
2.3.5 创建作业模板
这里的playbook里面是没有什么东西的,你可以自己把剧本的名字写进去,然后点击保存
这个凭证没有的话你可以创建一个ssh凭证,不创建的话可以在变量里面把用户名和密码都定义进去
然后点击保存
2.4 测试
直接点击启动,他就会开始执行剧本了
等他执行