每次我安装一个新的服务器,我都会在每台服务器上执行一系列的步骤来获取更新,设置passwd,通过root用户删除login,定制一个熟悉的环境(bashrc)并保护服务器。
是否有可能使用脚本来做所有的事情? 该设置可能包括:
发行版升级和更新
apt-get更新
apt-get升级
添加用户
adduser部署者
adduser部署者sudo
mkdir /home/deployer/.ssh
chmod 700 /home/deployer/.ssh
触摸/home/deployer/.ssh/authorization_keys
部署者passwd
su部署者
cd到/home/deployer/.ssh/
sudo chown部署者.ssh /
在本地机器上执行命令
ssh-copy-id [email protected]
ssh-copy-id [email protected]
重新login到服务器上:
chmod 400 /home/deployer/.ssh/authorized_keys
chown部署者:部署者/家庭/部署者-R
5..6 … 7 ..自定义bashrc,编辑sshd_config,安装ufw&logwatch
使用Kickstart或同等的stream程来pipe理构build。 使用像Puppet这样的configurationpipe理产品来部署您的设置。
您还可以使用一点脚本魔法在构build结束时启动configurationpipe理,使其成为无缝的体验。
我的脚本设置一个静态的IP,configurationOSSEC,并执行一些puppet运行来清理所有依赖,然后运行yum更新(我主要是一个CentOS用户)。
有可能拼凑其他方法来获得相同的结果,但我发现这是我工作过的最灵活的方法。
Kickstart / Jumpstart, Chef (包括厨师独奏), Puppet , Salt ,shell脚本和更高级别的脚本语言都可以用来解决这个问题。
老实说,看起来你有一个体面的shell脚本的开端。 从那里开始,如果复杂性增加,要么迭代,要么查看更强大的产品。 就我个人而言,我和厨师有过很好的经验。
使所有事情自动化的关键是从小事做起。 您不必全身心投入自动化。 select一个痛点,做得更好。 选另一个,重复。