RedHat运维-Ansible自动化运维基础26-管理用户与认证

1. user: 在所有受控主机上,新建一个用户Hello_Kitty,用户shell是/bin/bash,并将这个用户加入组wheel;
2. user: 在所有受控主机上,新建一个用户Kitty_bug,用户shell是/bin/bash,并将这个用户加入组wheel;
3. user: 对于已有的用户Hello_Kitty,为其产生一个SSH密钥对;
4. user: 对于已有的用户Kitty_bug,为其产生一个SSH密钥对;
5. group: 在所有受控主机上,新增一个用户组Hello;
6. group: 在所有受控主机上,新增一个用户组Bug;
7. known_hosts: 在所有受控主机的/home/centos/.ssh/known_hosts文件中,确保有这样子的一行存在"rhel9.example.com,192.168.193.128 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMCPcDAp+tgk0FTgu/4AUIUXDuXOJR+cXpqtl5NpMVoi"
8. known_hosts: 在所有受控主机的/home/centos/.ssh/known_hosts文件中,确保有这样子的一行存在"centos8.example.com,192.168.193.130 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN0IQC5fqaLsxg08ctci7NW1t52iYs/82T35aOcCvDBz"
9. known_hosts: 在控制主机上,有一个文件:
/* /home/rhce/Ansible/pubkeys/centos7.example.com */
centos7.example.com,192.168.193.129 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBmoV3wrl245kB7/zVAL+tY+khUAhimrmdtRTzJilDMf
确保所有受控主机上的文件的/home/centos/.ssh/known_hosts文件中,都有上述文件中的内容;
10. known_hosts: 在控制主机上,有一个文件:
/* /home/rhce/Ansible/pubkeys/centos8.example.com */
centos8.example.com,192.168.193.130 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN0IQC5fqaLsxg08ctci7NW1t52iYs/82T35aOcCvDBz
确保所有受控主机上的文件的/home/centos/.ssh/known_hosts文件中,都有上述文件中的内容;
11. authorized_key: 在控制主机上,确保每台受控主机的/home/centos/.ssh/authorized_keys、/root/.ssh/authorized_keys文件中,都有内容:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO6/GgOzF03xWI4sGhT0OpJmoKDDHgIrRXWGe7+HRJNr 35911@LAPTOP-OUR52V78
12. lineinfile: 写一份playbook,确保受控主机上的/etc/sudoers文件中,有这样一行:%wheel  ALL=(ALL)       NOPASSWD: ALL;

1. /* A20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.user:
        name: Hello_Kitty
        shell: /bin/bash
        groups: wheel
        append: true
...
2. /* B20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.user:
        name: Kitty_bug
        shell: /bin/bash
        groups: wheel
        append: true
...
3. /* C20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.user:
        name: Hello_Kitty
        generate_ssh_key: true
...
4. /* D20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.user:
        name: Kitty_bug
        generate_ssh_key: true
...
5. /* E20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.group:
        name: Hello
        state: present
...
6. /* F20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.group:
        name: Bug
        state: present
...
7. /* G20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.known_hosts:
        name: rhel9.example.com
        path: /home/centos/.ssh/known_hosts
        key: rhel9.example.com,192.168.193.128 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMCPcDAp+tgk0FTgu/4AUIUXDuXOJR+cXpqtl5NpMVoi
...
8. /* H20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.known_hosts:
        name: centos8.example.com
        path: /home/centos/.ssh/known_hosts
        key: centos8.example.com 192.168.193.130 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN0IQC5fqaLsxg08ctci7NW1t52iYs/82T35aOcCvDBz
...
9. /* I20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.known_hosts:
        name: centos7.example.com
        path: /home/centos/.ssh/known_hosts
        key: "{{ lookup('ansible.builtin.file', 'pubkeys/centos7.example.com') }}"
...
10. /* J20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.known_hosts:
        name: centos8.example.com
        path: /home/centos/.ssh/known_hosts
        key: "{{ lookup('ansible.builtin.file', 'pubkeys/centos8.example.com') }}"
...
11. /* K20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.authorized_key:
        user: centos
        state: present
        key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO6/GgOzF03xWI4sGhT0OpJmoKDDHgIrRXWGe7+HRJNr 35911@LAPTOP-OUR52V78
    - name: Task2
      ansible.builtin.authorized_key:
        user: root
        state: present
        key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO6/GgOzF03xWI4sGhT0OpJmoKDDHgIrRXWGe7+HRJNr 35911@LAPTOP-OUR52V78
...
12. /* L20240605.yaml */
---
- name: Play1
  hosts: all
  tasks:
    - name: Task1
      ansible.builtin.lineinfile:
        path: /etc/sudoers
        regexp: '^%wheel'
        line: "%wheel  ALL=(ALL)       NOPASSWD: ALL"
        validate: visudo -csf %s
...

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

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

相关文章

【Python】已解决:ModuleNotFoundError: No module named ‘nltk’

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:ModuleNotFoundError: No module named ‘nltk’ 一、分析问题背景 在使用Python进行自然语言处理或文本分析时,我们经常会用到各种库来辅助我们的工…

【转】-java多线程读写锁ReadWriteLock

Java多线程中读写锁ReadWriteLock的使用 该博客转载自​**lavimer​的​Java多线程中读写锁ReadWriteLock的使用** 1. 概念 读写锁分为读锁和写锁,多个读锁之间是不需要互斥的(读操作不会改变数据,如果上了锁,反而会影响效率),…

【OpenCV】BGR三色通道的提取与合并--超详细解读

在OpenCV中,处理图像时经常需要提取或合并图像的RGB(红、绿、蓝)三色通道。OpenCV默认使用BGR(蓝、绿、红)顺序来存储图像的颜色通道,这一点与很多图像处理库(如PIL/Pillow)不同&…

Android Constant expression required (case R.id.xxx)

gradle更新到8.0后,遇到了这个报错 有两种解决方式: 1、在gradle.properties中添加下面代码 android.nonFinalResIdsfalse 2、使用if-else来判断 int id view.getId(); if (id R.id.setting_iv_back) {} else if (id R.id.setting_tv_clear) {}

大数据面试题之GreenPlum(1)

目录 介绍一下GreenPlum GreenPlum属于哪家公司的产品,简单说下发展历史 GreenPlum如何处理大数据 GreenPlum有哪些优势 GreenPlum的缺点有哪些 如何优化GreenPlum的性能 如何监控和分析GreenPlum的性能指标 Greenplum整体架构信息 说下Master主机与Segment…

Web知识库应用程序LibreKB

什么是 LibreKB ? LibreKB 是一款知识库 Web 应用程序。免费、开源、自托管,基于 PHP/MySQL。 官方并没有 Docker 镜像,老苏这次图省事,并没有像往常一样构建一个镜像,而是基于 Docker 搭建了一个 LAMP 环境&#xff0…

判断一个字符串中出现次数最多的字符,统计这个次数?

1、核心算法:利用 charAt() 遍历这个字符串 2、把每个字符都存储给对象,如果对象没有该属性就为1,如果存了就1 3、遍历对象,得到最大值及出现次数和该字符 let str "aozisodsdkksdsd" let obj {} for (let i 0; i &l…

ConditionalOnJndi注解使用介绍、应用场景以及示例代码

概述 ConditionalOnJndi 是 Spring Framework 中的一个条件注解,用于在特定的 JNDI (Java Naming and Directory Interface) 环境条件下决定是否创建一个 bean 或配置一个 bean。JNDI 是 Java EE 规范中定义的一种用于访问命名和目录服务的 API,它允许 …

蹭一个围棋亚军!不要和低维的人说话——早读(逆天打工人爬取热门微信文章解读)

熬夜后需要补什么呢? 引言Python 代码第一篇 洞见 不要和低维的人说话(深度好文)第二篇 冲冲冲结尾 引言 昨晚真的是熬夜又想不出东西 真的头大 最近下围棋 这个棋感很好呀 我是K级选手 目前是8级 套几个buff 纯自学 为什么决定学围棋呢? 是…

谷粒商城配置中心错误记录

文章目录 一,com.alibaba.nacos.api.exception.NacosException: endpoint is blank1,分析定位2,关于配置文件application和bootstrap的区别与练习加载顺序使用说明 参考文献 一,com.alibaba.nacos.api.exception.NacosException: …

AI工具:软件开发者的革命性助手还是潜在威胁?

近年来,生成式人工智能(AIGC)在软件开发领域掀起了一场革命。从代码生成、错误检测到自动化测试,AI工具正在快速改变开发者的工作方式。这些工具不仅提高了开发效率,还引发了关于开发者职业前景和技能需求变化的广泛讨…

Navicat Premium 15 for Mac/Win 中文安装包下载

Navicat Premium 15 是一款数据库管理工具,它支持多种类型的数据库,包括 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite。该软件提供了一个用户友好的图形界面,使得数据库的管理变得更加简单和高效。Navicat Premium 1…

chrony与ntp两种时钟同步方式对比

chrony 是一个用于网络时间同步的守护进程,设计用来替代传统的 ntpd(Network Time Protocol Daemon)。虽然两者都基于 NTP(网络时间协议)来同步系统时钟,但 chrony 在某些方面提供了改进和增强的功能&#…

Python数据分析实战,铁路站点客流量预测,案例教程编程实例课程详解

引言 铁路站点客流量预测是铁路运输管理和优化中的关键任务。准确的客流量预测可以帮助铁路部门提前调配资源,合理安排运力,提高运输效率,减少运营成本,同时提升乘客的出行体验。本文将介绍如何使用Python进行铁路站点客流量的预测,包括数据收集、预处理、模型构建、评估与…

网页视频提取在线工具

在互联网的海洋中,我们时常会遇到一些令人心动的视频,想要将其下载到本地,以便随时观看。然而,网页视频下载对于很多人来说,似乎是个复杂的过程。别担心,今天我就为大家带来一份详尽的网页视频下载教程&…

24小时悬停系留照明无人机技术详解

24小时悬停系留照明无人机是一款专门设计用于提供长时间、高效能照明服务的无人机系统。该系统结合了无人机技术与先进的照明设备,通过系留技术实现无人机的稳定悬停,从而提供连续不断的照明服务。该无人机能够在各种环境条件下进行24小时不间断工作&…

Zkeys三方登录模块支持QQ、支付宝登录

1,覆盖到根目录,并导入update.sql数据库文件到Zkeys数据库里 2. 后台系统权限管理,配置管理员权限-系统类别-找到云外科技,全部打勾 3,后台系统设置找到云外快捷登录模块填写相应的插件授权配置和登录权限配置&#x…

docker 安装教程

机缘 最近在开发用用到了docker,主要是将开发的项目发版到平台上,运用到docker发版,所以才会写这篇文章。 教程 1、安装Hype-v。 在安装之前,首先要检查下电脑系统是否安装Hyper-v功能。 注意:一定要检查电脑系统,…

【React】如何自定义 Hooks

在React中,自定义Hooks允许你将组件逻辑提取到可重用的函数中。自定义Hooks本质上就是普通的JavaScript函数,但是它们必须遵循两个规则: 命名约定:自定义Hook的名称应该以use开头。这个约定有助于你和其他开发者更容易地识别出哪些函数是Hooks。在函数组件内部调用:只能在…

SRC实战:无中生有的接口和参数?

今天分享的这个漏洞怎么说呢,虽然也是个高危,但是其实挺简单的,一个很eazy的越权,但是我觉得多多少少还是有点意思吧。 0x00 这是一个移动端的应用程序,前面比较常规,模拟器 BP,跑了一下所有…