首页 > 其他分享 >Ansible(自动化运维)环境搭建及ansible-vault加密配置

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

时间:2024-12-24 08:57:18浏览次数:6  
标签:vars 运维 secrets ansible Ansible ssh become yml

前言:原先这篇博客是在《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境如春日,加密守护意绵绵。
科技风景无限好,探索之路永向前。

标签:vars,运维,secrets,ansible,Ansible,ssh,become,yml
From: https://blog.csdn.net/weixin_66855479/article/details/144682550

相关文章

  • 实践项目-Ansible+Playbook自动化部署服务器上线
    (241223)环境系统ip主机名域名debian12.8192.168.100.6ansible-mainansible-main.example.comdebian12.8192.168.100.12ansible-node1ansible-node1.example.comdebian12.8192.168.100.15ansible-node2ansible-node2.example.comdebian12.8192.168.......
  • 小迪安全->基础入门-Web应用&蜜罐系统&堡垒机运维&API内外接口&第三方拓展架构&部署影
    知识点:1、基础入门-Web应用-蜜罐系统2、基础入门-Web应用-堡垒机运维3、基础入门-Web应用-内外API接口4、基础入门-Web应用-第三方拓展架构一、演示案例-Web-拓展应用-蜜罐-钓鱼诱使蜜罐:https://hfish.net/测试系统:Ubuntu20.04一键安装:bash<(curl-sS-Lhttps://hfish.......
  • 【Python运维】Python运维工具:用`psutil`监控系统性能
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在现代的IT运维中,实时监控系统性能是确保服务器、网络和应用健康运行的基础。Python作为一种灵活的编程语言,在运维管理中得到了广泛应用。psut......
  • 【安全运维】监控告警要点总结
    前言监控告警是业务稳定性建设非常重要的一环,告警项的配置、告警阈值的设置、告警信息的发送和响应,都影响着业务稳定性。随着系统版本迭代,监控告警工具的变更,人员的变动等诸多因素的变化,我们需要定期对监控告警的方方面面做复盘,不断优化提升监控告警,以最大程度保障业务稳定。202......
  • 运维系列&前端系列:echarts超出容器宽度问题的解决办法
    echarts超出容器宽度问题的解决办法echarts超出容器宽度问题的解决办法问题:解决方法:echarts超出容器宽度问题的解决办法问题:在使用vue+iview+echarts时,出现了echarts图标刷新页面会超出容器宽度的问题,效果如下:DOM结构:JS代码:解决方法:在网上查找了很多方......
  • 【资料分享】常见运维监控软件资料汇总
    一、运维监控软件1、Nightingale:https://flashcat.cloud/product/nightingale/2、DeepFlow:https://www.deepflow.io/zh/3:SkyWalking:https://skywalking.apache.org/downloads/4:Zabbix:https://www.zabbix.com/download5、zbxtable:https://www.zbxtable.com/6、prometheus:http......
  • 运维工程师
    工作职责:1)负责监控主机的运行状态,主动及时处理项目运行中出现的故障,保障主机系统长期稳定运行;2)熟练使用云平台(Aoogle云、华为云、阿里云、Amazon)的网络架构、存储架构、监控架构及自定义方案实施;3)与业务保持紧密的合作,及时发现业务痛点或提升业务效率的机会点,并协......
  • python毕设基于架构的信息发布系统管理和运维的实现ahh5z程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着信息技术的迅猛发展,信息传播已成为企业运营中不可或缺的一部分。无论是大型企业还是初创公司,都需要一个高效、稳定的信息发布系统来宣......
  • 基于Grafana自动化运维巡检API集成方案
    场景      某应用平台已经有Grafana面板,我们编写实现监控Grafana的API指标,实现自动化监控与巡检数据流图解决方案概述要实现通过SpringBoot程序与Grafana告警HTTPAPI进行交互,自动化运维告警,可以按照以下步骤进行:Grafana配置:配置Grafana的数据源(如Prometheus、InfluxDB......
  • 运维常识
    以下是一些常见的运维常识:日志分析:快速定位应用崩溃原因生产场景:一个Web应用崩溃,重启后仍然无法恢复。通过查看日志文件,发现 OutOfMemoryError,并且日志中显示JVM堆内存不足。解决方案:使用 grep 过滤关键字:grep"OutOfMemoryError"/var/log/application.log确......