El script bash de datos de usuario EC2 de Ubuntu no se está ejecutando

Resuelto Awodi asked hace 54 años • 0 respuestas

Intenté ejecutar el siguiente script en una máquina Ubuntu22 y también intenté ejecutarlo en una máquina Amazon Linux. Ambas instancias se inician sin problemas indicados, sin embargo, cuando ingreso por SSH a la instancia, todos los programas que esperaría que se instalen no están allí, probé todos los comandos manualmente para ver si funcionan y lo hacen.

El script de bash:

     #!/bin/bash
     sudo apt update -y
     curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
     sudo apt install unzip -y
     unzip awscliv2.zip
     sudo ./aws/install
     wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o 
     /usr/share/keyrings/hashicorp-archive-keyring.gpg 
     echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] 
     https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee 
     /etc/apt/sources.list.d/hashicorp.list 
     sudo apt install terraform -y
     mkdir keys
     ssh-keygen -t rsa -b 4096 -f /home/ubuntu/keys/clientkey -N ""
     ssh-keygen -t rsa -b 4096 -f /home/ubuntu/keys/serverkey -N ""
     clientpubkey=$(cat /home/ubuntu/keys/clientkey.pub)
     serverpubkey=$(cat /home/ubuntu/keys/serverkey.pub)
     aws s3 cp s3://musicappscripts --recursive

La nube-init.log:

>   2024-02-17 09:39:05,379 - util.py[DEBUG]: Cloud-init v. 23.3.3- 
    0ubuntu0~22.04.1 running 'init-local' at Sat, 17 Feb 2024 09:39:05 
    +0000. Up 7.85 seconds.
    2024-02-17 09:39:05,379 - main.py[DEBUG]: No kernel command line 
    url found.
    2024-02-17 09:39:05,379 - main.py[DEBUG]: Closing stdin.
    2024-02-17 09:39:05,390 - util.py[DEBUG]: Writing to 
    /var/log/cloud-init.log - ab: [640] 0 bytes
    2024-02-17 09:39:05,391 - util.py[DEBUG]: Changing the ownership 
    of /var/log/cloud-init.log to 104:4
    2024-02-17 09:39:05,391 - util.py[DEBUG]: Writing to 
    /var/lib/cloud/data/python-version - wb: [644] 4 bytes
    2024-02-17 09:39:05,392 - util.py[DEBUG]: Attempting to remove 
    /var/lib/cloud/instance/boot-finished
    2024-02-17 09:39:05,392 - handlers.py[DEBUG]: start: init- 
    local/check-cache: attempting to read from cache [check]
    2024-02-17 09:39:05,392 - util.py[DEBUG]: Reading from 
    /var/lib/cloud/instance/obj.pkl (quiet=False)
    2024-02-17 09:39:05,392 - stages.py[DEBUG]: no cache found
    2024-02-17 09:39:05,392 - handlers.py[DEBUG]: finish: init- 
    local/check-cache: SUCCESS: no cache found
    2024-02-17 09:39:05,392 - util.py[DEBUG]: Attempting to remove 
    /var/lib/cloud/instance
    2024-02-17 09:39:05,396 - stages.py[DEBUG]: Using distro class 
    <class 'cloudinit.distros.ubuntu.Distro'>
    2024-02-17 09:39:05,396 - __init__.py[DEBUG]: Looking for data 
    source in: ['Ec2', 'None'], via packages ['', 'cloudinit.sources'] 
    that matches dependencies ['FILESYSTEM']
    2024-02-17 09:39:05,423 - __init__.py[DEBUG]: Searching for local 
    data source in: ['DataSourceEc2Local']
    2024-02-17 09:39:05,423 - handlers.py[DEBUG]: start: init- 
    local/search-Ec2Local: searching for local data from 
    DataSourceEc2Local 
    2024-02-17 09:39:05,424 - __init__.py[DEBUG]: Seeing if we can get 
    any data from 
    <class'cloudinit.sources.DataSourceEc2.DataSourceEc2Local'>
    2024-02-17 09:39:05,424 - __init__.py[DEBUG]: Update datasource 
    metadata and network config due to events: boot-new-instance
    2024-02-17 09:39:05,424 - util.py[DEBUG]: Reading from 
    /sys/hypervisor/uuid (quiet=False)
    2024-02-17 09:39:05,424 - util.py[DEBUG]: Read 37 bytes from 
    /sys/hypervisor/uuid
    2024-02-17 09:39:05,424 - dmi.py[DEBUG]: querying dmi data 
    /sys/class/dmi/id/product_serial
    2024-02-17 09:39:05,424 - dmi.py[DEBUG]: querying dmi data 
    /sys/class/dmi/id/chassis_asset_tag
    2024-02-17 09:39:05,424 - dmi.py[DEBUG]: querying dmi data 
    /sys/class/dmi/id/sys_vendor
    2024-02-17 09:39:05,424 - dmi.py[DEBUG]: querying dmi data 
    /sys/class/dmi/id/product_name
    2024-02-17 09:39:05,425 - __init__.py[DEBUG]: Machine is 
    configured to run on single datasource DataSourceEc2Local.
    2024-02-17 09:39:05,425 - DataSourceEc2.py[DEBUG]: strict_mode: 
    warn, cloud_name=aws cloud_platform=ec2
    2024-02-17 09:39:05,425 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/name_assign_type (quiet=False)
    2024-02-17 09:39:05,425 - util.py[DEBUG]: Read 2 bytes from 
    /sys/class/net/eth0/name_assign_type
    2024-02-17 09:39:05,425 - __init__.py[DEBUG]: Found unstable nic 
    names: ['eth0']; calling udevadm settle
    2024-02-17 09:39:05,425 - subp.py[DEBUG]: Running command 
    ['udevadm', 'settle'] with allowed return codes [0] 
    (shell=False,capture=True)
    2024-02-17 09:39:05,445 - util.py[DEBUG]: Waiting for udev events 
    to settle took 0.020 seconds
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/address (quiet=False)
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Read 18 bytes from 
    /sys/class/net/eth0/address
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/device/device (quiet=False)
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/lo/address (quiet=False)
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Read 18 bytes from 
    /sys/class/net/lo/address
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/lo/device/device (quiet=False)
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/carrier (quiet=False)
    2024-02-17 09:39:05,446 - __init__.py[DEBUG]: Interface has no 
    carrier: eth0
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/dormant (quiet=False)
    2024-02-17 09:39:05,446 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/operstate (quiet=False)
    2024-02-17 09:39:05,447 - util.py[DEBUG]: Read 5 bytes from 
    /sys/class/net/eth0/operstate
    2024-02-17 09:39:05,447 - dhcp.py[DEBUG]: DHCP client selected: 
    dhclient
    2024-02-17 09:39:05,447 - dhcp.py[DEBUG]: Performing a dhcp 
    discovery on eth0
    2024-02-17 09:39:05,447 - subp.py[DEBUG]: Running command ['ip', 
    'link', 'set', 'dev', 'eth0', 'up'] with allowed return codes [0] 
    (shell=False, capture=True)
    2024-02-17 09:39:05,504 - util.py[DEBUG]: Reading from 
    /sys/class/net/eth0/type (quiet=False)
    2024-02-17 09:39:05,504 - util.py[DEBUG]: Read 2 bytes from 
    /sys/class/net/eth0/type
    2024-02-17 09:39:05,504 - subp.py[DEBUG]: Running command 
    ['/usr/sbin/dhclient', '-1', '-v', '-lf', '/run/dhclient.lease',  
    '-pf', '/run/dhclient.pid', '-sf', '/bin/true', 'eth0'] with 
    allowed return codes [0] (shell=False, capture=True)
    2024-02-17 09:39:05,616 - util.py[DEBUG]: All files appeared after 
    0 seconds: ['/run/dhclient.pid', '/run/dhclient.lease']
    2024-02-17 09:39:05,616 - util.py[DEBUG]: Reading from 
    /run/dhclient.pid (quiet=False)
    2024-02-17 09:39:05,617 - util.py[DEBUG]: Read 4 bytes from 
    /run/dhclient.pid
    2024-02-17 09:39:05,617 - util.py[DEBUG]: Reading from 
    /proc/331/stat (quiet=True)
    2024-02-17 09:39:05,617 - util.py[DEBUG]: Read 303 bytes from 
    /proc/331/stat
    2024-02-17 09:39:05,617 - dhcp.py[DEBUG]: killing dhclient with 
    pid=331
    2024-02-17 09:39:05,617 - util.py[DEBUG]: Reading from 
    /run/dhclient.lease (quiet=False)
    2024-02-17 09:39:05,618 - util.py[DEBUG]: Read 516 bytes from 
    /run/dhclient.lease
    2024-02-17 09:39:05,618 - ephemeral.py[DEBUG]: Received dhcp lease 
    on eth0 for 172.31.21.174/255.255.240.0
    2024-02-17 09:39:05,618 - ephemeral.py[DEBUG]: Attempting setup of 
    ephemeral network on eth0 with 172.31.21.174/20 brd 172.31.31.255
    2024-02-17 09:39:05,618 - subp.py[DEBUG]: Running command ['ip', 
    '-family', 'inet', 'addr', 'add', '172.31.21.174/20', 'broadcast', 
    '172.31.31.255', 'dev', 'eth0'] with allowed return codes [0] 
    (shell=False, capture=True)
    2024-02-17 09:39:05,620 - subp.py[DEBUG]: Running command ['ip', 
    '-family', 'inet', 'link', 'set', 'dev', 'eth0', 'up'] with 
    allowed return codes [0] (shell=False, capture=True)
    2024-02-17 09:39:05,622 - subp.py[DEBUG]: Running command ['ip', 
   'route', 'show', '0.0.0.0/0'] with allowed return codes [0] 
   (shell=False, capture=True)
   2024-02-17 09:39:05,624 - subp.py[DEBUG]: Running command ['ip', 
   '-4', 'route', 'add', '172.31.16.1', 'dev', 'eth0', 'src', 
   '172.31.21.174'] with allowed return codes [0] (shell=False, 
   capture=True)
   2024-02-17 09:39:05,626 - subp.py[DEBUG]: Running command ['ip', 
   '-4', 'route', 'add', 'default', 'via', '172.31.16.1', 'dev', 
   'eth0'] with allowed return codes [0] (shell=False, capture=True)
   2024-02-17 09:39:05,627 - util.py[DEBUG]: Reading from 
   /sys/class/net/eth0/operstate (quiet=False)
   2024-02-17 09:39:05,627 - util.py[DEBUG]: Read 3 bytes from 
   /sys/class/net/eth0/operstate
   2024-02-17 09:39:05,629 - util.py[DEBUG]: Resolving URL: 
   http://169.254.169.254 took 0.001 seconds
   2024-02-17 09:39:05,629 - util.py[DEBUG]: Resolving URL: 
   http://[fd00:ec2::254] took 0.000 seconds
   2024-02-17 09:39:05,629 - util.py[DEBUG]: Resolving URL: 
   http://instance-data.:8773 took 0.000 seconds
   2024-02-17 09:39:05,629 - DataSourceEc2.py[DEBUG]: Removed the 
   following from metadata urls: ['http://instance-data.:8773']
   2024-02-17 09:39:05,629 - DataSourceEc2.py[DEBUG]: Fetching Ec2 
   IMDSv2 API Token
   @@@
Awodi avatar Jan 01 '70 08:01 Awodi
Aceptado

Los scripts de datos de usuario se ejecutan como usuario raíz y, por lo tanto, no deben usarse sudo. Lo más probable es que el tuyo falle aquí.

Esto fallará en Amazon Linux incluso sin sudoque distribuciones como CentOS y otras no utilicen aptsino el yumadministrador de paquetes. Asegúrese de probarlo como lo hizo inicialmente en Ubuntu u otras distribuciones que usan aptcomo Debian.

Espero que esto ayude.

PeskyPotato avatar Feb 16 '2024 12:02 PeskyPotato