Есть часть скрипта bash:
#$USER_PYTHON_BIN $PROJECT_ROOT $SETTINGS_FILE $DJANGO_ADMIN_NAME $DJANGO_ADMIN_PASSWORD
USERNAME=$1
USERS_HOME="/home/wproject"
USER_PYTHON_BIN=$USERS_HOME/$USERNAME/bin/python
USER_PIP_BIN=$USERS_HOME/$USERNAME/bin/pip
USER_HOME_DIR=$USERS_HOME/$USERNAME
USER_UWSGI_BIN=$USERS_HOME/$USERNAME/bin/uwsgi
PROJECT_ROOT=$USERS_HOME/$USERNAME/lib/$PROJECT
SETTINGS_FILE="project_src.settings"
DJANGO_ADMIN_NAME="admin"
DJANGO_ADMIN_PASSWORD=$USERNAME"password"
#$USER_PYTHON_BIN $PROJECT_ROOT $SETTINGS_FILE $DJANGO_ADMIN_NAME
#$DJANGO_ADMIN_PASSWORD
set_django_admin_password(){
if [ ! $# -eq "5" ] ; then
echo "Error![num_args incorrect] function \"set_django_admin_password\" wasn't run"
else
$1 <<EOF
import os
import sys
sys.path.insert(0, '$2/src')
os.environ['DJANGO_SETTINGS_MODULE'] = '$3'
import django
django.setup()
from django.contrib.auth.models import User
u = User.objects.get(username__exact='$4')
u.set_password('$5')
u.save()
EOF
fi
}
Как Вы видите - есть переменные которые гинерируються и передаються скрипту.
Как реализовать аналогично выполнение плейбука ansible?
Начал писать сценарий:
---
- hosts: localhost
vars_files:
- flores.yml
become: yes
become_user: root
tasks:
- name: Create users
user: name={{ item.user }} group: {{ item.user }}
with_items: "{{ flores }}"
- name: Create user_directory
file: path=/home/{{ item.repname }} owner={{ item.user }} droup={{ item.user }} mode=0755
with_items: "{{ flores }}"
- name: Arguments
shell: python /bin/set_admin_django.py
with_items:
- {
Завис на том, как передать переменные скрипту /bin/set_admin_django.py ...
В файле flores.yml указаные пользователи, для которых выполняеться скрипт.
Подскажите, как реализовать в сценарии генерацию переменных? То есть,(как пример) нужно чтобы в переменную USER_PYTHON_BIN подставлялись USERNAME и USERS_HOME
Простите за такое корявое обьяснение...