当前位置: 首页 > news >正文

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
...

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 体积大的快递怎么寄便宜?如何寄件寄包裹更省钱?
  • 贪心算法-以高校教材管理系统为例
  • Pandas中使用函数作为map函数的参数时为什么不用传入函数的参数的问题解答
  • 【R语言+Gephi】利用R语言和Gephi实现共发生网络的可视化
  • Web3时代的数字身份认证:安全性与隐私保护探讨
  • Python面试题:如何在 Python 中发送 HTTP 请求?
  • 复合机器人:手脚眼脑的完美结合
  • 一文了解java中Optional
  • Quartz 核心
  • 在误装Windows server2019 后如何利用Windows.old恢复?
  • Python面试题:如何在 Python 中进行正则表达式操作?
  • C++笔试真题
  • FFmpeg 初级操作—打印日志,文件目录操作
  • 数学基础 -- 函数的连续性
  • 帕金森患者营养小贴士
  • 《Java编程思想》读书笔记-对象导论
  • Angular4 模板式表单用法以及验证
  • eclipse(luna)创建web工程
  • Facebook AccountKit 接入的坑点
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java IO学习笔记一
  • mysql 5.6 原生Online DDL解析
  • Redis 中的布隆过滤器
  • Ruby 2.x 源代码分析:扩展 概述
  • Theano - 导数
  • Vue2 SSR 的优化之旅
  • Zepto.js源码学习之二
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 大快搜索数据爬虫技术实例安装教学篇
  • 浮动相关
  • 马上搞懂 GeoJSON
  • 前端之Sass/Scss实战笔记
  • 浅谈Golang中select的用法
  • 树莓派 - 使用须知
  • 网络应用优化——时延与带宽
  • 微信支付JSAPI,实测!终极方案
  • 原生Ajax
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • Java数据解析之JSON
  • linux 淘宝开源监控工具tsar
  • Semaphore
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​2021半年盘点,不想你错过的重磅新书
  • ​如何在iOS手机上查看应用日志
  • ​一些不规范的GTID使用场景
  • (04)odoo视图操作
  • (27)4.8 习题课
  • (C++)八皇后问题
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (k8s)Kubernetes本地存储接入
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四