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

Ansible 核心运维场景落地:YUM 仓库、SSH 公钥、固定 IP 配置技巧

1:如何一次性验证所有主机能否被 Ansible 访问? 

答:使用临时命令:ansible all -m ansible.builtin.ping

或验证 sudo 是否正常:ansible all -m ansible.builtin.ping --become -K

2:如何用 Ansible 统一配置 YUM/DNF 仓库并导入 GPG key? 

答:

  • 写仓库文件:

yaml

- name: 配置 EPEL

  ansible.builtin.yum_repository:

    name: epel

    description: EPEL

    baseurl: https://download.fedoraproject.org/pub/epel/$releasever/$basearch/

    gpgcheck: 1

    gpgkey: https://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}

  • 导入公钥:

yaml

- name: 导入 EPEL GPG key

  ansible.builtin.rpm_key:

    key: https://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-{{ ansible_distribution_major_version }}

    state: present

  • 装包:

yaml

- name: 安装 htop

  ansible.builtin.dnf:

    name: htop

    state: present

3:如何在 100 台服务器上批量创建运维用户并下发 SSH 公钥? 

答:用 user + authorized_key 模块:

yaml

- name: 创建 ops 用户

  ansible.builtin.user:

    name: ops

    groups: wheel

    shell: /bin/bash

    generate_ssh_key: yes

- name: 下发公钥到 ops 用户

  ansible.posix.authorized_key:

    user: ops

    key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"

4:如何确保只有 wheel 组可免密 sudo? 

答:用 lineinfile 修改 sudoers:

yaml

- name: 配置 sudoers

  ansible.builtin.lineinfile:

    path: /etc/sudoers

    regexp: '^%wheel'

    line: '%wheel ALL=(ALL) NOPASSWD:ALL'

    validate: 'visudo -cf %s'

5:如何每天晚上 2 点跑备份脚本? 

答:cron 模块:

yaml

- name: 添加备份计划任务

  ansible.builtin.cron:

    name: nightly-backup

    minute: "0"

    hour: "2"

    job: /usr/local/bin/backup.sh

    user: root

6:如何用系统角色一键创建 20 GB 的逻辑卷并挂载到 /data? 

答:调用 redhat.rhel_system_roles.storage:

yaml

- hosts: db_servers

  vars:

    storage_pools:

      - name: vg_data

        disks: [sdb]

        volumes:

          - name: lv_data

            size: 20g

            mount_point: /data

            fs_type: xfs

  roles:

    - redhat.rhel_system_roles.storage

7:如何给一批主机同时配置固定 IP、网关和 DNS? 

答:使用redhat.rhel_system_roles.network:

yaml

- hosts: web_servers

  vars:

    network_connections:

      - name: ens192

        type: ethernet

        autoconnect: yes

        ip:

          address:

            - 192.168.10.50/24

          gateway: 192.168.10.1

          dns:

            - 8.8.8.8

            - 8.8.4.4

        state: up

  roles:

    - redhat.rhel_system_roles.network

8:如何立即重启机器并等待其重新上线? 

答:reboot 模块:

yaml

- name: 重启并等待

  ansible.builtin.reboot:

    reboot_timeout: 600

http://www.xdnf.cn/news/1398817.html

相关文章:

  • [Windows] 剪映国际版CapCut 6.7.0 视频编辑处理,免费使用素材和滤镜
  • 拼团小程序源码分享拼团余额提现小程序定制教程开发源码二开
  • LeetCode 136. 只出现一次的数字
  • [论文阅读] 人工智能 + 软件工程 | 从“法律条文”到“Gherkin脚本”:Claude与Llama谁更懂合规开发?
  • 普蓝自研AutoTrack-4X导航套件平台适配高校机器人实操应用
  • k8s(自写)
  • docker安装Prometheus和Grafana 监控界面
  • 为多种业态注入智能化发展新活力的智慧地产开源了
  • 从Java全栈开发视角看企业级应用架构设计与实践
  • C++转置正方形矩阵
  • 掌握表单:React中的受控组件与表单处理
  • 【物联网】BLE 系统架构全景图
  • 关于PXIe工控机XH-PXIe7312双路25G网卡
  • Docker核心概念与镜像仓库操作指南
  • FlowUs AI-FlowUs息流推出的AI创作助手
  • uniapp监听物理返回按钮事件
  • Ansible主机模式与文件导入技巧
  • C++世界的大门——基础知识总结
  • 医疗AI时代的生物医学Go编程:高性能计算与精准医疗的案例分析(六)
  • 工业产品营销:概念、原理、流程与实践指南
  • 【浅尝Java】运算符全介绍(含除法取模运算各情况分析、位运算与移位运算分析、逻辑与条件运算符)
  • Raycast 使用指南:解锁 macOS 生产力新高度
  • Kotlin Android 水印功能实现指南:使用 Watermark 库
  • Netty 心跳与链路保活机制详解:保证高并发环境下的稳定连接
  • 互联网大厂大模型应用开发岗位面试:技术点详解与业务场景演练
  • Spark mapGroups 函数详解与多种用法示例
  • Java面试-MyBatis篇
  • 执行一条Select语句流程
  • python pyqt5开发DoIP上位机【诊断回复的函数都是怎么调用的?】
  • Jedis、Lettuce、Redisson 技术选型对比