Anonymous
Александр
Лениво тестировать честно говоря(
Anonymous
Понимаю, я уже весь день тестирую
Anonymous
Уже нервов нехватает
🇷🇺 Роман
там вроде бы with password должно быть
🇷🇺 Роман
psql -c "CREATE USER admin WITH PASSWORD 'test101';"
Anonymous
там вроде бы with password должно быть
Сама команда правильна, проблема исключительно в кавычках. Ибо если команду выполнять прямо в консроли подставив в переменную реальное значение, всё выполняется как надо
Александр
через EOL?
Anonymous
🇷🇺 Роман
ок, значит with не обязательна 🙂 всего не упомнишь
🇷🇺 Роман
sudo -u postgres bash -c "psql -c \"CREATE USER vagrant WITH PASSWORD 'vagrant';\""
Tadeusz
createuser --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --no-superuser --no-createdb --no-createrole --encrypted $DB_USER
Tadeusz
psql --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --dbname=postgres --command="ALTER USER \"$DB_USER\" WITH ENCRYPTED PASSWORD '$DB_PASSWORD'"
🇷🇺 Роман
Anonymous
Tadeusz
это 100% рабочий вариант.
🇷🇺 Роман
Anonymous
Tadeusz
Tadeusz
ты просто базу пытаешься создать?
Anonymous
Вот команда в скрипте:
sudo psql -d postgres --command="ALTER USER "visyond" WITH ENCRYPTED PASSWORD '$PASS'"
А вот что в итоге получается:
+ sudo psql -d postgres '--command=ALTER USER visyond WITH ENCRYPTED PASSWORD '\''S5D7GXXV'\'''
ALTER ROLE
Anonymous
🇷🇺 Роман
https://postgrespro.ru/docs/postgrespro/9.5/app-createuser
🇷🇺 Роман
вот так не пойдет?
Tadeusz
createdb-pgsql.sh:
#!/bin/sh
POSTGRESQL_USERNAME="postgres"
POSTGRESQL_PORT="5432"
DB_NAME="blahblah"
DB_USER="blahblah"
DB_PASSWORD="tvoi_mega_mass"
dropdb --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT $DB_NAME
dropuser --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT $DB_USER
createuser --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --no-superuser --no-createdb --no-createrole --encrypted $DB_USER
createdb --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --encoding=utf-8 --template=template0 --owner=$DB_USER $DB_NAME
psql --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --dbname=postgres --command="ALTER USER \"$DB_USER\" WITH ENCRYPTED PASSWORD '$DB_PASSWORD'"
Tadeusz
этим скриптом лет 10 базы создаю
Tadeusz
drop* можешь выпилить.
Anonymous
Какая-то чёртова магия, Щас поробую твой скрипт, если сработает, то это точно будет магия
Tadeusz
кстати, а что пишет тебе?
Tadeusz
syntax?
🇷🇺 Роман
зачем городить через psql, если есть шелл-обёртка
Tadeusz
>Грёбанеая туча кавычек ломает всё и в итоге хрен знает какой пароль устанавливается
понял
Tadeusz
Anonymous
КААААААААК????? Как это работает?
Tadeusz
лол
Tadeusz
мб у тебя ковычки наебнуло?
Anonymous
Так визуально каманда очень похожа, кавычки вокруг пароля одинарные, как у тебя
Александр
Александр
он хуйню вместо одинарной кавычки ставит
Александр
Там автозамиена ебаная
Anonymous
у тебя макбук?
Нет, да и скрипт я выполняю на виртуалке с дебианом
Tadeusz
Александр
Александр
Там 3 вида одинарных кавычек
Tadeusz
Александр
Заебало меня в свое время)
Tadeusz
то что ты можешь выбрать нормальные ковычки и забыть про страдания
Александр
Дадада
Tadeusz
самые нижние.
Александр
Но какое-то время я старадал)
Anonymous
Ааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа, да что за срань то?
Вот так выглядит команда у Артёма
psql --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --dbname=postgres --command="ALTER USER \"$DB_USER\" WITH ENCRYPTED PASSWORD '$DB_PASSWORD'"
И вот какой она становится во время работы скрипта:
+ psql --username=root --port=5432 --dbname=postgres --command=ALTER USER "blahblah" WITH ENCRYPTED PASSWORD 'S5D7GXXV'
Но моя команда после адапатций выглядит точно так же:
psql --username=root --port=5432 --dbname=postgres --command="ALTER USER \"$DB_USER\" WITH ENCRYPTED PASSWORD '$DB_PASSWORD'"
А во врем выполнения скрипта она превращается в такую срань:
+ psql --username=root --port=5432 --dbname=postgres '--command=ALTER USER "visyond" WITH ENCRYPTED PASSWORD '\''S5D7GXXV'\'''
Что происходит?
Anonymous
В очередной раз приходит мысль, что либо я не ту профессию выбрал, либо у меня просто такая карма и судьба огребать неведомые грабли =(
Tadeusz
ковычки кривые какие-то
Anonymous
ковычки кривые какие-то
Я тоже заметил. Но в скрипте команда прям вот как у тебя
psql --username=$POSTGRESQL_USERNAME --port=$POSTGRESQL_PORT --dbname=postgres --command="ALTER USER \"$DB_USER\" WITH ENCRYPTED PASSWORD '$DB_PASSWORD'"
psql --username=root --port=5432 --dbname=postgres --command="ALTER USER \"$DB_USER\" WITH ENCRYPTED PASSWORD '$DB_PASSWORD'"
Tadeusz
head -n 1 ?)
Anonymous
#!/bin/bash
Tadeusz
¯\_(ツ)_/¯
Tadeusz
/me не пишет баши
Anonymous
Это уже спортивный интерес, понять что же идёт не так.
Tadeusz
у меня были грабли в лезбиане, там sh -> dash
Anonymous
Поэтому я давным давно явно указываю баш во всех скриптах
Tadeusz
достаточно перелинковать на bash )
Anonymous
Хочешь сказать, что всё-таки шелл не тот? Но ведь у меня и у тебя одинаковая первая строка и оба скрипта на одном хосте выполняются.
Anonymous
Аа, у тебя вообще .bin/sh
Anonymous
су ка!!! АААаааааа!!! Рили, дело в шелле!
Anonymous
Первый раз такая дикая херня мне встретилась
Anonymous
Артём, ты мой спаситель. Большое спасибо. Наконец-то два дня скриптосекса дали результат.
Dmitry
когда я устал бороться с эскейпами кавычек, я начал юзать base64
Tadeusz
Tadeusz
welcome
Старый
а почему с кубернетисом почти во всех плейбуках по его установке тащат гластер?
Alexey
Gleb
Gleb
Ну ты понел
Gleb
Денег нет
Dmitry