Ansible之 AWX 创建管理项目的一些笔记

news2024/10/6 12:24:53

写在前面


  • 分享一些 AWX 创建管理项目的笔记
  • 博文内容涉及:
    • 容器化 AWX 手工创建项目Demo
    • 通过 SCM 创建项目 Demo
    • 项目角色,更新策略介绍,SCM 凭据的创建
  • 食用方式: 需要了解 Ansible
  • 理解不足小伙伴帮忙指正

傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波


为 Ansible Playbook 创建项目

项目

在 AWX Web 界面中,每个 Ansible 项目都由⼀个项目资源来表示。

AWX 中 项目 代表多个剧本及其相关的资源集合,例如,剧本和角色。

常见的项目类型有两种:

  • Manual,从AWX服务器项目基础路径获取项目资料。该目录由/etc/tower/settings.py配置,默认情况下位于/var/lib/awx/projects。这不是推荐的做法。更新此类项目需要在 AWX 界面之外进行手动干预,而且项目管理员具有直接访问权,以在AWX上更改操作系统环境。降低了AWX服务器的安全性。如果是容器环境,比如 K8s 中,不是合适的创建方式,如果pod调度,那么是不可预测的。需要做成有状态应用。

  • SCM(source code management),该项目配置为从版本控制系统(也被 AWX 称为源代码控制管理或 SCM 系统)检索这些资料。 AWX 支持使用 Git、Subversion 或 Mercurial 从 SCM 下载和自动获取项目资料更新的功能。

当前的 AWX 为 k8s 集群中部署,我们来看下对应的处理方式。

┌──[root@vms81.liruilongs.github.io]-[~]
└─$kubectl get pods awx-demo-65d9bf775b-hc58x -o yaml | grep -A 4 '/etc/tower/settings.py'
    - mountPath: /etc/tower/settings.py
      name: awx-demo-settings
      readOnly: true
      subPath: settings.py
    - mountPath: /etc/nginx/nginx.conf
--
    - mountPath: /etc/tower/settings.py
      name: awx-demo-settings
      readOnly: true
      subPath: settings.py
    - mountPath: /var/run/redis
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

这里可以看到,对应配置文件做了 CM 卷挂载上去的。我们找一些具体 的 CM

┌──[root@vms81.liruilongs.github.io]-[~]
└─$kubectl get pods awx-demo-65d9bf775b-hc58x -o yaml |grep -A 10 awx-demo-settings | grep -A 5  configMap  | grep name
      name: awx-demo-awx-configmap
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

查看配置文件的详细信息,确认项目目录

┌──[root@vms81.liruilongs.github.io]-[~]
└─$kubectl get cm awx-demo-awx-configmap -o jsonpath='{.data.settings}'
import os
import socket
# Import all so that extra_settings works properly
from django_auth_ldap.config import *

def get_secret():
    if os.path.exists("/etc/tower/SECRET_KEY"):
        return open('/etc/tower/SECRET_KEY', 'rb').read().strip()

ADMINS = ()
STATIC_ROOT = '/var/lib/awx/public/static'
STATIC_URL = '/static/'
PROJECTS_ROOT = '/var/lib/awx/projects'
JOBOUTPUT_ROOT = '/var/lib/awx/job_status'
.................
┌──[root@vms81.liruilongs.github.io]-[~]
└─$

创建项目

手动创建

在这里插入图片描述

手动的方式,所以我们需要这 pod 容器内部创建,这里我们这了一个创建好的项目上穿上去。

查看当前项目目录

┌──[root@vms81.liruilongs.github.io]-[~]
└─$kubectl exec -it  awx-demo-65d9bf775b-hc58x -c awx-demo-task  -- bash
bash-5.1$ cd  /var/lib/awx/projects
bash-5.1$ ls
bash-5.1$ exit
exit

生成一个角色作为项目,然后 cp 到容器内部目录下

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$ansible-galaxy init liruilong_manual
- Role liruilong_manual was created successfully
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$kubectl cp liruilong_manual awx-demo-65d9bf775b-hc58x:/var/lib/awx/projects/ -c awx-demo-task
┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$kubectl exec -it awx-demo-65d9bf775b-hc58x -c awx-demo-task  -- bash
bash-5.1$ cd /var/lib/awx/projects/
bash-5.1$ ls
liruilong_manual
bash-5.1$

刷新 AWX ,会看到刚才创建的本地项目

在这里插入图片描述

选择创建
在这里插入图片描述

创建成功
在这里插入图片描述

SCM 的方式创建

SCM的方式,这里我们选择通过 github 获取一个之前写的角色 https://github.com/LIRUILONGS/ansible_role_keepalived

在这里插入图片描述

在源控制中输入项目路径
在这里插入图片描述

创建后查看状态
在这里插入图片描述

这里同步失败 ,因为还没有配置 github 的凭据,需要SCM 凭据,下面会介绍
在这里插入图片描述

在容器项目路径下,可以看到我们同步的项目

┌──[root@vms81.liruilongs.github.io]-[~/ansible]
└─$kubectl exec -it awx-demo-65d9bf775b-hc58x -c awx-demo-task  -- bash
bash-5.1$ cd /var/lib/awx/projects/
bash-5.1$ ls -l
total 0
drwxr-xr-x  2 awx root   6 Oct 21 19:20 _6__demo_project
-rwxr-xr-x  1 awx root   0 Oct 21 19:20 _6__demo_project.lock
drwxr-xr-x  4 awx root  86 Oct 21 18:25 _9__ansible_role_keepalived
-rwxr-xr-x  1 awx root   0 Oct 21 18:25 _9__ansible_role_keepalived.lock
drwxr-xr-x 10 awx root 154 Oct 21 13:45 liruilong_manual
-rwxr-xr-x  1 awx root   0 Oct 21 19:35 liruilong_manual.lock
bash-5.1$

项目角色

创建好项目之后需要分配角色

在这里插入图片描述

项目可用的角色列表:

  • Admin:授予用户对项目完全的访问权限。
  • Use:授予用户在模板资源中使用项目的权限。
  • Update:授予用户从其 SCM 来源手动更新或计划更新项目资料更新的权限。
  • Read:授予用户查看与项目关联的详细信息。

管理项目访问权限

首次创建项目时,用户必须拥有该项目的组织的Admin 或 Auitor角色才能访问它。用户的其它访问权限必须经过特别配置。创建项目时无法分配角色,必须通过编辑项目进行添加。

在这里插入图片描述

创建 SCM 凭据

源代码控制凭据存储身份验证信息,供 AWX 用来访问存储在像 Git 这样的版本控制系统中的项目中的资料。SCM 凭据存储对源代码控制存储库访问权限进行身份验证所需的用户名和密码或私钥。

创建 SCM 凭据

在这里插入图片描述

添加凭据,这里我们使用帐密凭据

在这里插入图片描述

同步项目

在这里插入图片描述

SCM 凭据角色

与计算机凭据一样,专用 SCM 凭据仅供其创建者以及 System Administrator 和 System Auditor 用户使用。分
配给某一组织的 SCM 凭据可以与其它用户共享,方法是为用户或团队分配该凭据的角色。

在这里插入图片描述

可用的角色列表:

  • Admin:授予用户对 SCM 凭据完全的访问权限。
  • Use:授予用户将 SCM 凭据与项目资源关联的权限。
  • Read:授予用户查看 SCM 凭据详细信息的权限。

管理 SCM 凭据访问权限

SCM 凭据 添加角色

在这里插入图片描述

首次创建组织凭据时,只能由特定用户进行访问,其它用户的其它权限必须经过特别配置。

更新项目策略

在这里插入图片描述

可以通过以下方式在 AWX 中更新 SCM 项目资源的策略:

  • 在进行更新前删除任何本地修改。

  • 在进行更新前删除整个本地存储库。根据存储库的大小,这可能会显著增加完成更新所需的时间

  • 子模块将跟踪其 master 分支(或在 .gitmodules 中指定的其他分支)的最新提交。如果没有,子模块将会保留在主项目指定的修订版本中。这等同于在 git submodule update 命令中指定 --remote 标志。

  • 每次使用此项目运行作业时,请在启动该作业前更新项目的修订。

  • 允许在使用此项目的作业模板中更改 Source Control 分支或修订版本。

也可以手动更新到最新版本:

对 Ansible 角色的支持

项目可以指定外部 Ansible 角色,它们作为依赖项存储在 Ansible Galaxy 或其他源代码管理存储库中。在项目更新结束时,如果项⽬的存储库包括⼀个包含有效 requirements.yml 文件的 roles目录,则红帽 AWX 将自动运行 ansible-galaxy 以安装角色,这个用到了在研究

博文参考


《DO447 Advanced Automation Ansible Best Practices》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/30521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ssm项目改造spring boot项目

快速创建 Spring Boot 项目 添加依赖 如果是普通 Maven 项目&#xff0c;需要手动添加。 <!-- 打包方式 jar 包 --> <packaging>jar</packaging><!-- 指定父工程 --> <parent><groupId>org.springframework.boot</groupId><ar…

操作系统学习笔记(Ⅰ):概述

目录 1 操作系统概念 1.1 定义 1.2 功能 1.系统资源的管理者 2.用户和计算机硬件间接口 3.最接近硬件的层次 2 操作系统的特征 2.1 并发 2.2 共享 2.3 虚拟 2.4 异步 3 发展和分类 3.1 手工操作阶段 3.2 批处理阶段 1.单道批处理阶段 2.多道批处理系统 3.3 分…

启明欣欣STM32开发板闪烁LED实验

最近在咸鱼上买了一块启明欣欣的STM32板子&#xff0c;准备在上面测试open62541和CANopen&#xff0c;到货后如下图&#xff0c; 找商家要了资料&#xff0c;然后运行一个LED灯的实验来简单测试下板子&#xff0c;本文记录一下这个过程。 一 准备 安装Keil 5.35&#xff0c;安…

【selection】 学习光标API并实现编辑区插入表情图片的功能

目录场景介绍selection介绍selection APIrange 介绍range API实现编辑区插入表情图片参考资料场景介绍 在写web版聊天器时&#xff0c;遇到一个需求&#xff1a; 聊天时用户可以在编辑区加入表情图片&#xff0c;并且表情图片要插入在光标位置。// *web版聊天器地址&#xff…

useMemo 使用误区

文章の目录问题背景useMemo 使用前后组件性能对比结论问题背景 在某一个h5项目中&#xff0c;使用了 useMemo 对项目中的组件进行优化&#xff0c;减少组件不必要的re-render, 优化后的结果&#xff1a; 在组件的props和状态未改变时&#xff0c;组件不再进行 re-render 表面上…

生意不好如何逆风翻盘 | 多门店经营必读技巧(1):导购管理 连锁店管理的技巧 连锁店生意经 如何做导购管理

很多连锁店老板反馈&#xff0c;为了优化门店的销售业绩&#xff0c;什么方法都试过了&#xff0c;改店铺陈列、搞优惠活动、做会员管理.......为什么分店的业绩还是看不到明显的提升&#xff1f; 方法试过了&#xff0c;结果没变化&#xff0c;那只能是执行这块出了问题&#…

量子计算(八):观测量和计算基下的测量

文章目录 观测量和计算基下的测量 一、观测量 二、计算基下的测量 三、投影测量 观测量和计算基下的测量 一、观测量 量子比特&#xff08;qubit&#xff09;不同于经典的比特&#xff08;bit&#xff09;&#xff0c;一个量子比特|>可以同时处于|0>和|1>两个状态…

Linux从入门到精通(八)——Linux磁盘管理

文章篇幅较长&#xff0c;建议先收藏&#xff0c;防止迷路 文章跳转Linux从入门到精通&#xff08;八&#xff09;——Linux磁盘管理goLinux从入门到精通&#xff08;九&#xff09;——Linux编程goLinux从入门到精通&#xff08;十&#xff09;——进程管理goLinux从入门到精…

C++ 结合mysql写一个服务端

1 libhv和mysql libhv是一个跨平台的C网络库。 mysql是一个关系型数据库。 2 下载MySQL&#xff0c; 最好不要下载高版本的&#xff0c;容易出错&#xff01;&#xff01;&#xff01; 下载地址MySQL 下载好后目录是这样的&#xff1a; 然后在环境变量里配置&#xff1a;…

Hive 3.1.3

1.下载安装包 Index of /hive/hive-3.1.3https://dlcdn.apache.org/hive/hive-3.1.3/ 2.安装&修改配置文件 2.1 安装MySQL a. 搜索centos7默认的mariadb & 卸载 [root@node1 ~]# rpm -qa | grep mariadb mariadb-libs-5.5.44-2.el7.centos.x86_64 卸载 [r…

【计算机组成原理Note】5.4.2 控制器-微程序

5.4.2 控制器-微程序 硬布线工作原理&#xff1a;微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序&#xff0c;即时产生微程序工作原理&#xff1a;事先把微操作控制信号存储在一个专门的存储器(控制存储器)中&#xff0c;将每一条机器指令编写成一个微程序&#xf…

差钱吗?周杰伦线上演唱会没关打赏惹争议,看看同时直播的腾格尔

随着世界杯的到来&#xff0c;全球都进入了世界杯时间&#xff0c;音乐领域的明星们&#xff0c;都以各种形式欢迎世界杯的到来。在世界杯开幕的前一晚上&#xff0c;著名音乐人周杰伦&#xff0c;在某手平台开启了线上演唱会&#xff0c;吸引了众多人前来围观。 据不完全统计&…

【正点原子FPGA连载】 第七章 Verilog HDL语法 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第七章 Verilog …

【计组】入门篇 --《深入浅出计算机组成原理》

课程链接&#xff1a;深入浅出计算机组成原理_组成原理_计算机基础-极客时间 目录 一、为什么需要学习计算机组成原理 二、冯诺依曼体系结构&#xff1a;计算机组成的金字塔 1、计算机的基本硬件组成 2、冯诺依曼体系结构 三、通过CPU主频谈性能 1、什么是性能 2、计算…

【微信早安定时推送消息】微信公众号定时推送早安消息 带天气、纪念日、生日、定时推送等(完整代码)

我挥舞着键盘和本子&#xff0c;发誓要把世界写个明明白白。 简介 利用所学知识给他/她一个惊喜&#xff0c;是作为计算机专业的你最大的乐趣。 无计算机基础&#xff0c;5分钟即设置好 &#xff08;定时推送 及 最新版 将在下期带来&#xff09; 获取完整代码&#xff0c;关注…

性能测试怎么做?性能测试重点和各项性能测试流程(超级详细)

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 性能测试基础 1&am…

【设计模式】过滤器模式(Filter Pattern)

过滤器模式属于结构型模式&#xff0c;但它并不属于我们常说的二十三种设计模式。主要是以相对解耦的方式来过滤一组对象。 文章目录过滤器模式的介绍优点应用场景过滤器模式的使用类图实现方法第一步&#xff0c;创建员工类第二步&#xff0c;创建过滤器接口第三步&#xff0c…

如何部署商城项目

如何部署商城项目 1.导入数据库 ​ 注意&#xff1a;先保证数据库开启了远程访问&#xff08;见数据库安装和配置笔记&#xff09;。 1.1设置数据库服务器编码 ​ vi /etc/my.cnf ​ 在[mysqld]下面添加 character_set_serverutf8 init_connectSET NAMES utf81.2打开本地…

RK3399平台开发系列讲解(中断篇)中断控制器(Generic Interrupt Controller)

🚀返回专栏总目录 文章目录 一、GIC硬件的实现形态二、主要的功能块三、中断类型四、中断状态沉淀、分享、成长,让自己和他人都能有所收获!😄 📢外围设备不是把中断请求直接发给处理器,而是发给中断控制器,由中断控制器转发给处理器。ARM公司提供了一种标准的中断控制…

NR CSI(二) the workflow of CSI report

微信同步更新欢迎关注同名modem协议笔记 本篇内容是对CSI report相关流程的整理&#xff0c;其描述主要集中在R16 38.331 38.321 38.214中&#xff0c;以实网中的一个配置开始&#xff0c;看下相关定义。 如上图实网中的配置&#xff0c;CSI-ReportConfig 对应的就是Reporting…