which cloud-init >/dev/null 2>&1
echo "cloud-init installed.Please uninstall cloud-init before install volc hardening cloud-init."
if [ -f /root/ecs.linux.cloudinit_1.0.0.7.tar.gz ]; then
rm -rf /root/ecs.linux.cloudinit_1.0.0.7.tar.gz
wget -P /root/ https://cloud-init-cn-beijing.tos-cn-beijing.volces.com/hardening_mode/ecs.linux.cloudinit_1.0.0.7.tar.gz
if [ ! -f /root/ecs.linux.cloudinit_1.0.0.7.tar.gz ]; then
echo "Download volc hardening cloud-init failed."
if [ -f /root/volc_cloudinit_1_0_0_7 ]; then
rm -rf /root/volc_cloudinit_1_0_0_7
mkdir /root/volc_cloudinit_1_0_0_7
tar -zxvf /root/ecs.linux.cloudinit_1.0.0.7.tar.gz -C /root/volc_cloudinit_1_0_0_7/
echo "Uncompress volc hardening cloud-init pacakage failed."
rm -rf /root/volc_cloudinit_1_0_0_7
rm -rf /root/ecs.linux.cloudinit_1.0.0.7.tar.gz
cd /root/volc_cloudinit_1_0_0_7/cloud-init-20.3/
pip3 install -r requirements.txt -i https://mirrors.ivolces.com/pypi/simple/
python3 setup.py install --init-system systemd
if [ ! -f /usr/local/bin/cloud-init ]; then
ln -s /usr/local/bin/cloud-init /usr/bin/cloud-init
systemctl enable cloud-init-local.service
systemctl enable cloud-init.service
systemctl enable cloud-config.service
systemctl enable cloud-final.service
cat > /etc/cloud/cloud.cfg.d/90_dpkg.cfg << EOF
datasource_list: [ConfigDrive, VolcStack]
metadata_urls: ["http://100.96.0.96"]
apply_network_config: True
distro=`lsb_release -a 2> /dev/null | grep "Distributor ID:" | cut -d ":" -f2`
if [[ $distro =~ "CentOS" ]]; then
cat << EOF > /etc/cloud/cloud.cfg
ignore_growroot_disabled: false
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
disable_vmware_customization: false
manage_etc_hosts: localhost
- package-update-upgrade-install
- ssh-authkey-fingerprints
cloud_dir: /var/lib/cloud
templates_dir: /etc/cloud/templates
cat << EOF > /etc/cloud/cloud.cfg
ignore_growroot_disabled: false
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
disable_vmware_customization: false
manage_etc_hosts: localhost
- package-update-upgrade-install
- ssh-authkey-fingerprints
cloud_dir: /var/lib/cloud
templates_dir: /etc/cloud/templates
cat << EOF > /etc/cloud/cloud.cfg.d/90_dpkg.cfg
datasource_list: [ConfigDrive, VolcStack]
metadata_urls: ["http://100.96.0.96"]
apply_network_config: True
rm -rf /root/volc_cloudinit_1_0_0_7
rm -rf /root/ecs.linux.cloudinit_1.0.0.7.tar.gz
echo "Install volc hardening cloud-init success."
echo "Install volc hardening cloud-init failed."