LoginSignup
0
0

【conda環境】コマンド一つでユーザ追加から環境構築までやりたい

Posted at

はじめに

新しく研究室に加わる人に対して、作業環境をセットアップするのは、これまで私の役割でした。研究室という環境上、この作業を繰り返していました。

しかし、このプロセスはいくつかの問題を抱えています。例えば、管理者権限を設定する必要があったり、環境変数の設定方法を忘れてしまい、毎回調べ直さなければならなかったりと、煩雑です。そこで、このセットアッププロセスを自動化することにしました。これにより、私が卒業した後も、このノウハウが残り、後輩たちの負担が軽減されると思います。特に新しいメンバーが加わるタイミングでは、この自動化ツールが大きな役割を果たすと確信しています。

コード

以下に示すスクリプトは、Ubuntu環境下で新規ユーザーに対してMinicondaをインストールし、Jupyter Notebookを利用可能にするものです。スクリプトの詳細な説明はコード内コメントをご参照ください。なお、Minicondaで管理されるパッケージのインストールは、個々のニーズに応じて行ってください。

あと使用時はリダイレクトに管理者権限が必要なため、sudoで実行するようにしてください。

setup_env.sh
# Usage: bash setup_env.sh 新規ユーザ名 パスワード
# Description: 新規ユーザのホームディレクトリにMinicondaをインストールし、Jupyter Notebookを使えるようにする
# 注意: このスクリプトは、Ubuntu でのみ動作確認しています

#!/bin/bash

# 新規ユーザ名を引数として受け取る
new_user=$1
password=$2

# ホストIPアドレスの設定
# 自動で先頭のIPアドレスを取得しているので、jupyterlabなどのコマンドがうまく使えないときは、
# .bashrcなどを確認すること
host_ip=$(hostname -I | cut -d ' ' -f 1)

# ユーザを作成
sudo useradd -m -s /bin/bash $new_user

# パスワードの設定
echo "$new_user:$password" | sudo chpasswd

# ユーザのホームディレクトリ変数
user_home="/home/$new_user"

# パッケージ類のインストール
sudo apt update && sudo apt upgrade -y
sudo apt install -y git vim wget

# Minicondaインストーラーのダウンロード
sudo wget https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-Linux-x86_64.sh -O $user_home/miniconda.sh

# Minicondaのインストール (ユーザー権限で実行)
sudo -u $new_user bash $user_home/miniconda.sh -b -p $user_home/miniconda

# 環境変数PATHの設定をユーザーの.bashrcに追加
echo "export PATH=\"$user_home/miniconda/bin:\$PATH\"" >> $user_home/.bashrc

# Miniconda環境内でJupyter Notebookをインストール
sudo -u $new_user bash -c "source $user_home/miniconda/bin/activate && conda install -y jupyter"

# よく使うパッケージはインストールしておく
sudo -u $new_user bash -c "$user_home/miniconda/bin/pip install numpy matplotlib pandas lightgbm scikit-learn"

# 新規ユーザーの.bashrcにaliasを追加
# 空白なしのコマンドでipアドレス付きでjupyterを起動できるようにする
# つまり、リモートデスクトップなどを使う必要がなく、自分のPCのブラウザからアクセスできるようにする
echo "alias jupyterlab='jupyter lab --ip=$host_ip'" >> $user_home/.bashrc
echo "alias jupyternotebook='jupyter notebook --ip=$host_ip'" >> $user_home/.bashrc

# Miniconda環境を有効化するためのコマンドを.bashrcに追加
echo "source $user_home/miniconda/bin/activate" >> $user_home/.bashrc

echo "$new_userの開発環境のセットアップが完了しました。"

Gist

一応、Gistの方でも公開しました。

https://gist.github.com/sugimochi97/657906ad7244360fe316d7d638cb9c34

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0