Comment passer de mot de passe comme d'un argument à un script shell

Je suis dans le processus d'automatisation de l'installation de sage par ansible-playbook. Dans ce que j'ai besoin de courir deux scripts shell.
Voici comment le premier script shell look:

#!/bin/bash
# Creating Sage notebook

dir="/root/.sage/sage_notebook.sagenb"
screen -S "Sage_Server" sage -c 'notebook(interface="", directory=$dir, port=80, accounts=true)'

C'est le deuxième script shell code:

#!/bin/bash
# Creating Sage inotebook

address=$(hostname --ip-address)
sage -c "inotebook(interface=" "'$address'" ",port=80,accounts=true)"

Et c'est ainsi que le playbook de l'air:

---
- hosts: localhost
  remote_user: root

  tasks:
   - name : update system
     apt : update_cache=yes    

   - name : install m4
     apt : name=m4 state=present

   - name : install build-essential
     apt : name=build-essential state=present 

   - name : install gcc
     apt : name=gcc state=present

   - name : install gfortran
     apt : name=gfortran state=present

   - name : install libssl-dev
     apt : name=libssl-dev state=present

   - name : install python-software-properties
     apt : name=python-software-properties state=present

   - name : add sage ppa repo
     apt_repository: repo='ppa:aims/sagemath'

   - name : update system
     apt : update_cache=yes

   - name : install dvipng
     apt : name=dvipng state=present

   - name : install sage binary
     apt : name=sagemath-upstream-binary state=present

   - name : invoke create_sagenb script
     command: /usr/bin/screen -d -m sudo /root/databases-and-datamining-iiith/python-scripts/create_sagenb -i -y

   - name : invoke start_sage script
     command: /usr/bin/screen -d -m sudo /root/databases-and-datamining-iiith/python-scripts/start_sage -i -y

Maintenant lorsque je lance le premier script, il demande une nouvelle sage mot de passe qui pourrait être n'importe quoi. Mais je ne suis pas en mesure de passer ce mot de passe à partir de la playbook.
Encore, si je ne

ps -ef | grep sh

J'ai pu voir que les scripts sont en cours d'exécution, mais le sage le service n'est pas en cours d'exécution.
Il a besoin du mot de passe pour démarrer le service.

Quelqu'un pourrait-il me dire comment puis-je fournir le mot de passe comme un argument pour les scripts shell avec la commande.

La technique utilisée pour passer d'un mot de passe à un script shell est la même que la technique utilisée pour tirer dans le pied. Vous l'éviter. Il n'y a aucun moyen de le faire sans l'introduction d'un trou de sécurité.

OriginalL'auteur apurv | 2015-08-28