Почему запуск сценария cloud-init в EC2 меняет мою оболочку?

Вызов всех облачных инициаторов и гуру EC2...

Я не могу понять это. Я использую скрипт cloud-init для начальной загрузки экземпляра EC2 aws-ami (через AWS CloudFormation) и когда я включаю write_files Это свойство изменяет командную строку в экземпляре на -bash-4.2$, Если я не включаю write_files, я получаю обычную оболочку EC2.

Вот мой сценарий до сих пор:

#cloud-config

repo_update: true
repo_upgrade: all

packages:
  - gcc
  - git
  - ruby24
  - ruby24-devel

runcmd:
  - update-alternatives --set ruby /usr/bin/ruby2.4

write_files:
  - path: /home/ec2-user/some-file.yml
    owner: root:root
    permissions: '0644'
    content: |
      <<--SOME-CONTENT-->

final_message: 'The Build Server is ready!'

Кто-нибудь знает, почему это происходит или что я могу делать неправильно, заставляя cloud-init менять оболочку? Или, может быть, это ошибка / известная проблема с cloud-init? Это сводит меня с ума.

Я уже проверил логи /var/log/cloud-init.log а также /var/log/cloud-init-output.log и нет никаких ошибок или чего-либо, что могло бы предположить, что что-то пошло не так.

1 ответ

Я понял это, что-то в cloud-init не устанавливало переменную $PS1поэтому встроенный по умолчанию \s-\v\$ используется.

Я исправил это, загрузив измененный ~/.bashrc файл.

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi
parse_git_branch() {
  if ! git rev-parse --git-dir > /dev/null 2>&1; then
    return 0
  fi
  git_branch=$(git branch 2>/dev/null| sed -n '/^\*/s/^\* //p')
    echo "[$git_branch]"
}
PS1="${debian_chroot:+($debian_chroot)}\[\033[38;5;39m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\[\033[38;5;118m\]\$(parse_git_branch)\[\033[00m\]$ "
Другие вопросы по тегам