Most likely, you're not actually running ./backup.sh when running it manually but rather bash ./backup.sh.
The only POSIX compliant way to compute a value through the shell is with $(( expr )).
In general, unless you have very good reason, scripts should use bash since most people don't know the difference between sh and bash and will just write broken ...
First of all, there are Openstack Forums, like LaunchPad or Storyboard to post this Openstack "bugs". I recommend you to use them as there are many more Openstack devs.
Then, this is the Cloudkitty Policy file example, from the Openstack Official Docs: https://docs.openstack.org/cloudkitty/latest/admin/configuration/samples/policy-yaml.html
Use openssl to find if there is an expired certificate:
openssl s_client -showcerts -connect <falingwebsite.com>:443 | grep "certificate has expired"
Get the new, unexpired certificate and attach it to the AWS package ca_bundle:
cat <newcert>.pem >> /path/to/your/python/env/lib/python3.9/site-packages/cfnbootstrap/...
Found that the issue was with php.ini file, removed disable_functions="" directive and the Python script worked.
As Gerald mentioned in the comments, I did not need to add anything to the sudoers file or change file permissions/users other than the standard +x permission attribute (or 0755)
You cannot use an access token to sign a URL because access tokens are time limited (about an hour). An alternative to using the private key file to sign a url, is to use IAM's SignBlob functionality.
You can use it with “gsutil” by the command ”gsutil signurl -u --” as mentioned in documentation. Note that with this method, the signed url is only valid ...
Probably you have pip3 linked to another version of python(3.6,3.8, etc) than python3 which you are using
Make sure you are using the same versions and it is in venv actually
# python3 -V
# which python3
# ls -laht /tmp/APIenv/bin/python3
lrwxrwxrwx 1 root root 8 Sep 30 13:59 /tmp/APIenv/bin/python3 -> ...
Here is ready to go simple shell deploy commands for your case, you can change directories, name, description of service or script and so on, description is below:
Make directory and script itself
mkdir /usr/src/python-socket -p
cat > /usr/src/python-socket/python-socket.py << 'EOL'
host = '127.0.0.1'
port = 9999
BUFFER_SIZE = 1024