我们可以将playbook上传到gitlab,然后awx去执行任务的时候,任务的playbook从gitlab去下载
点击左侧访问下拉菜单,然后添加机构
将需要被管理的节点添加进来
变量这个地方可以写内部变量,不知道什么是内部变量可以去看看ansible变量部分
也可以不直接在这里指定变量,那么就需要在凭证里面添加一个机器凭证,里面会让你填入用户名/密码 或者密钥的
依次点击 清单--->Demo Inventory ---> 主机----> 勾选主机---->执行命令
执行一个简单的whoami命令
输出没问题
这里的用户名和密码不能乱填,要填已经在gitlab上注册的用户或者马上要到gitlab上注册的用户,这里是我的gitlab用户截图
在awx上创建新项目
确保gitlab上有一个群组,等会是需要输入url的
这个url的来源这样的
最后的页面应该成这样
来到任意节点,只要能连接上git就行
# 这里的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里面添加凭据的那个用户
[root@master myroles]# git checkout -b dev
Switched to a new branch 'dev'
[root@master myroles]# git push -u origin dev
然后输入用户名和密码
[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
输入用户名和密码开始推送
上传完之后会变成这个样子
如果没有特殊的配置的话可以不做这一步
如果是使用的角色来执行任务的话ansible.cfg里面还要定义role的路径
修改里面的一项
[root@master myroles]# vim ansible.cfg
host_key_checking = False
本身是有这一项的,把注释取消
这里的playbook里面是没有什么东西的,你可以自己把剧本的名字写进去,然后点击保存
这个凭证没有的话你可以创建一个ssh凭证,不创建的话可以在变量里面把用户名和密码都定义进去
然后点击保存
直接点击启动,他就会开始执行剧本了
等他执行