在 CentOS Minimal 上落地自动化运维的路线图
一 基础准备与选型
sudo yum update -y && sudo yum install -y epel-release vim wget curl sudosudo useradd -m -s /bin/bash ops && sudo usermod -aG wheel opssudo sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config && sudo systemctl restart sshd二 无人值守装机与初始化
text(文本安装)、url --url="..."(安装源)、rootpw --iscrypted ...(加密 root 密码)、network(网络)、timezone(时区)、bootloader(引导)、clearpart / part / volgroup / logvol(分区/LVM)、%packages(软件包组)、%post(安装后脚本)、reboottext
url --url="http://mirror.centos.org/centos/7/os/x86_64/"
lang en_US.UTF-8
keyboard us
timezone Asia/Shanghai --isUtc
rootpw --iscrypted $6$ugoUqIKf$cPAYn16qZPTVYaXsX4hqTYhPHylas0vQYi6vwKdAX/DZRXYLDdQh9J1RsHskNpZXIH.IYvJLpqC9.wWuv1iYn/
network --bootproto=dhcp --device=eth0 --activate
network --hostname=web01
bootloader --location=mbr --boot-drive=sda
clearpart --all --initlabel
part /boot --fstype="xfs" --ondisk=sda --size=1024
part pv.01 --fstype="lvmpv" --ondisk=sda --size=51200
volgroup centos --pesize=4096 pv.01
logvol / --fstype="xfs" --size=45056 --name=root --vgname=centos
logvol swap --fstype="swap" --size=4096 --name=swap --vgname=centos
%packages
@^minimal
%end
%post
echo "Welcome to web01" > /etc/motd
%end
reboot
python -c 'import crypt; print(crypt.crypt("YourPassword", "$6$somesalt$"))'三 配置管理与批量变更
sudo yum install -y epel-release && sudo yum install -y ansible[web]
192.168.1.10
192.168.1.11
[db]
192.168.1.20
---
- hosts: web
become: yes
tasks:
- name: Install Nginx
yum: name=nginx state=present
- name: Enable and start Nginx
service: name=nginx state=started enabled=yes
ansible-playbook -i /etc/ansible/hosts web.yml四 持续交付与监控告警
五 日常自动化与最佳实践
0 2 * * * /usr/local/bin/backup.sh