AWX+gitlab

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 测试

直接点击启动,他就会开始执行剧本了

等他执行

posted @ 2024-06-21 21:00  FuShudi  阅读(92)  评论(0编辑  收藏  举报