ansible 入门 & vps 初始化简单示例

  • ansible 入门 & vps 初始化简单示例
  • 资料来源:

https://ansible.leops.cn/
https://linux.cn/article-13142-1.html

  • 更新

    1
    2024.11.10 初始

导语

Ansible 是一个开源的自动化工具, 各类手动执行的: 配置系统; 修改配置; 部署软件; 查找 log; … 简而言之任何需要手动敲代码执行的动作都行;

要求: 1.客户端能通过 SSH 连接 2. 客户端有 python 环境;

ansible 有大量的内置模块足以处理大量场景的自动化;

1
2
3
4
5
6
# 很简单的 安装 dphys-swapfile, 乘以服务器数量 + 每次手敲 😢
# 这样一个个小的 task 组成了一组组任务, 谈笑间客户端的一切都按照剧本在一步步上演;
- name: Install dphys-swapfile
apt:
name: dphys-swapfile
state: present

这一篇是 ansible 简单入门 和 一个 vps 初始化的示例;

  • 强大的工具上手, 只需要理解基本概念, 借助 AI 入门 so easy(看清楚, 我说的是入门不是 red hat 的考证啊…)

资料:

  • https://linux.cn/article-13142-1.html
  • https://ansible.leops.cn/

概念

借助 Ansible 自动化工具安装、配置和快速入门指南 的一张图

124822meej9lngyylly290.png

Control node: 输入 ansible 命令的主机

Managed node: 执行各自命令的客户端

Inventory: 将 managed node 汇聚分组, 你肯定希望测速是对 proxy 组 而不是 一堆跑脚本的树莓派吧.

ad-hoc: 一次对一组 managed node 执行一个命令; 一次性的命令就不需要写啥剧本了吧;

Task: 需要写剧本的任务, 例如初始化个前端环境 😶‍🌫️, 不得先从换源开始直到网站打开为止吗; 中间每一步都可以是一个 task, 每个 task 都能复用;

Playbook: Task 多了, 就有了戏剧🎭编排; 复用每个 task; 组织一组 task; 排布 task 组; 编剧需要写个剧本;

例子

DevOps/ansible 这是个人常用的 vps 初始化的部分, 配置基本的 shell 防火墙 swap 等; 非常简单的示例;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
❯ tree ./
./
├── ansible
│ ├── inventory
│ │ ├── group_vars
│ │ │ └── vars.yml
│ │ └── hosts.ini
│ ├── playbooks
│ │ └── init.yaml
│ ├── README.md
│ ├── roles
│ └── script
│ ├── acc.sh
│ ├── csf_init.sh
│ └── zsh_init.sh
├── LICENSE
├── README.md
└── script
└── setup_ssh.py

ansible 汇总, 以初始化为主;

需要先在 host 中配完毕 ssh key 登录;

1
2
3
4
5
6
# 详细输出模式
ansible-playbook -i inventory/hosts.ini playbooks/init.yaml -v
# 测试运行(不实际执行)
ansible-playbook -i inventory/hosts.ini playbooks/init.yaml --check
# 实际执行
ansible-playbook -i inventory/hosts.ini playbooks/init.yaml

init.yaml

初始化 zsh 环境

配置 swap

配置 bbr 等加速

安装配置 fail2ban

安装配置 CSF

尾巴

又水了一篇

多宏大的目标, 去 TM 的宏大, 只有眼前的一个小任务, 只有明天一天, 快速试错,快速反馈,迅速迭代;