Ansible(自动化运维)环境搭建及ansible-vault加密配置

前言:原先这篇博客是在《Linux系统综合配置:yum源设置、逻辑卷制作》里的,现在想着ansible-vault加密配置是可以单独出一期的,就拆分出来了。

一、安装ansible

复制代码
命令:sudo dnf update
命令:sudo dnf install python3
查看版本:python3 -V


命令:sudo dnf install python3-pip

命令:pip3 install ansible --user

命令:sudo systemctl status sshd

二、配置免密(可选一)

复制代码
主节点24上生成密钥
ssh-keygen -t rsa
一路回车执行
复制代码
向主机分发公钥
ssh-copy-id -i ~/.ssh/id_rsa.pub root@节点1的ip
ssh-copy-id -i ~/.ssh/id_rsa.pub dfuser@节点2的ip
ssh-copy-id -i ~/.ssh/id_rsa.pub dfuser@节点3的ip

三、验证

在安装ansible环境服务器上输入命令:
ansible all -m ping
如果有各节点的返回信息,那就说明环境部署成功

四、配置ansible-vault 加密(可选二)

这个步骤是新的节点,也就是说如果配置免密了就不需要进行这步,但如果生产环境中考虑到安全,需要配置vault加密,那就不需要做免密配置,直接跳转到这步

第一步:配置host文件

vim /etc/ansible/hosts

复制代码
[项目名1]
项目1下所有ip
10.0.0.1
......

[项目名2]
项目2下所有ip
10.0.0.100
......

第二步:编辑secrets.yml,通过ansible-vault加密密码文件

1、创建secrets.yml

当使用以下命令创建一个加密的Ansible Vault文件时,Ansible会提示你输入一个密码。这个密码将用于加密和解密secrets.yml文件,确保文件中的敏感信息(如密码、密钥等)安全
ansible-vault create secrets.yml

2、编辑 secrets.yml

ansible-vault edit secrets.yml
提示: ${passwd}是实际服务器密码,根据实际情况修改

添加以下信息后保存

复制代码
项目名1_password: '${passwd}'
项目名2_password: '${passwd}'
......

第三步:执行python脚本范例

ansible脚本:test.yml

复制代码
---
- name: 项目1
  hosts: 项目1
  user: 普通用户
  # 引用配置文件
  vars_files:
    - "secrets.yml"
  # 设置变量
  vars:
    ansible_ssh_pass: "{{ lookup('vars', '项目1_password') }}"
    ansible_become_pass: "{{ lookup('vars', '项目1_password') }}"
  tasks:
    - name: just test
      become: yes
      become_user: root
      become_method: sudo
      shell: |
        echo "PermitRootLogin no" >> /etc/ssh/sshd_config
        systemctl restart sshd
- name: 项目2
  hosts: 项目2
  user: 普通用户
  vars_files:
    - "secrets.yml"
  vars:
    ansible_ssh_pass: "{{ lookup('vars', '项目2_password') }}"
    ansible_become_pass: "{{ lookup('vars', '项目2_password') }}"
  tasks:
    - name: just test
      become: yes
      become_user: root
      become_method: sudo
      shell: |
        echo "PermitRootLogin no" >> /etc/ssh/sshd_config
        systemctl restart sshd
- name: 更多项目
  hosts: 更多项目
  user: 普通用户
  vars_files:
    - "secrets.yml"
  vars:
    ansible_ssh_pass: "{{ lookup('vars', '更多项目password') }}"
    ansible_become_pass: "{{ lookup('vars', '更多项目_password') }}"
  tasks:
    - name: just test
      become: yes
      become_user: root
      become_method: sudo
      shell: |
        echo "PermitRootLogin no" >> /etc/ssh/sshd_config
        systemctl restart sshd

执行剧本脚本
ansible-playbook -i /etc/ansible/hosts 3.yml --ask-vault-pass -v

-i 指定host文件 --ask-vault-pass 输入secrets.yml的密码,-v 输出执行结果

最后即兴一首诗总结下:

复制代码
《Linux 之景》
Linux世界如画卷,技术之美映眼帘。
Yum源似清泉涌,逻辑卷展新景观。
Ansible境如春日,加密守护意绵绵。
科技风景无限好,探索之路永向前。
相关推荐
liulilittle14 分钟前
麻将结算全链路语义(SETTLE_SEMANTICS)
ai·自动化·llm·mock·lua·测试
jingli91 小时前
恶意退款怎么办、仅退款怎么申诉:六类恶意退款识别特征+取证证据链+反制全流程(商家实操版)
人工智能·自动化·用户运营
阿明61 小时前
Linux进程【Linux】
linux·运维·服务器
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_resampler_update调用流程与实战(三十)
linux·运维·服务器·gstreamer音视频·音视频进阶
苍苍竹林寺1 小时前
Module Builder——Gem200之Alarm模块
自动化·半导体·eap
微信ipad协议开发1 小时前
微信视频号自动化:内容发布与互动的 API 实现
运维·微信
jingli92 小时前
微信自动回复怎么设置?重复问题怎么自动回答——私域FAQ自动应答搭建全流程(关键词匹配+知识库+语义AI,2026实操版)
人工智能·自动化·用户运营
微信ipad协议开发2 小时前
教培机构微信自动化:从招生引流到社群运维的完整链路
微信·机器人·自动化·教育电商
liulilittle2 小时前
麻将服务器崩溃补偿与异常处理语义(CRASH_SEMANTICS)
ai·自动化·llm·mock·lua·测试·tools
NailiConveyor2 小时前
输送线方案设计的工程基础|布局与接口的技术考量|控制系统架构要点
大数据·自动化·制造·业界资讯