如何自动化新的 Linux 服务器的初始设置?

如何自动化新的 Linux 服务器的初始设置?

每次我设置新服务器时,我都会在每个服务器上执行一系列步骤以获取更新、设置密码、通过 root 用户删除登录、定制熟悉的环境(bashrc)并保护服务器安全。

是否可以使用脚本完成所有这些操作?设置可能包括:

  1. 发行版升级和更新

    apt-get 更新

    apt-get 升级

  2. 添加用户

    添加用户部署器

    添加用户部署 sudo

    mkdir /home/deployer/.ssh

    chmod 700 /home/deployer/.ssh

    触摸/home/deployer/.ssh/authorization_keys

    部署者密码

    su 部署程序

    到 /home/deployer/.ssh/

    sudo chown deployer.ssh/

  3. 在本地机器上执行命令:

    ssh-复制-id[电子邮件保护]

    ssh-复制-id[电子邮件保护]

  4. 重新登录服务器:

    chmod 400 /home/deployer/.ssh/authorized_keys

    chown deployer:部署者/home/部署者-R

5..6...7.. 自定义 bashrc,编辑 sshd_config,安装 ufw 和 logwatch

答案1

使用 Kickstart 或同等流程来管理构建。使用 Puppet 等配置管理产品来部署您的设置。

您还可以使用一些脚本魔法在构建结束时启动配置管理,使其成为无缝体验。

我的脚本设置了一个静态 IP,配置了 OSSEC 并执行了几次 puppet 运行来理清所有依赖关系,然后运行 ​​yum 更新(我主要是 CentOS 用户)。

可以拼凑其他方法来获得相同的结果,但我发现这是我用过的最灵活的方法。

答案2

快速启动/快速启动,厨师(包括 chef-solo),木偶、shell脚本以及更高级的脚本语言都可以用来解决这个问题。

老实说,看起来你已经有了一个不错的 shell 脚本入门。从那里开始,如果复杂性增加,要么迭代,要么研究更强大的产品。就我个人而言,我对 Chef 的体验很好。

实现所有事物自动化的关键是从小事做起;您不必全力投入自动化。选择一个痛点,然后改善它。选择另一个,重复。

相关内容