- 投稿日:2021-01-20T23:24:30+09:00
Python環境構築
OS Windows10 Pro
Vagrant 2.2.14
Ubuntu 16.04.4 LTSDockerで今後管理したいため、Pythonをインストールし、pipをインストール、numpyをインストールしようとしたらエラーが発生。
````python3 -m pip install numpy Collecting numpy Using cached https://files.pythonhosted.org/packages/51/60/3f0fe5b7675a461d96b9d6729beecd3532565743278a9c3fe6dd09697fa7/numpy-1.19.5.zip Complete output from command python setup.py egg_info: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/pip-build-ayy5xg9l/numpy/setup.py", line 68 f"NumPy {VERSION} may not yet support Python " ^ SyntaxError: invalid syntax ---------------------------------------- Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-ayy5xg9l/numpy/ You are using pip version 8.1.1, however version 20.3.3 is available. You should consider upgrading via the 'pip install --upgrade pip' command. 調べて pipをアップグレードした。sudo pip install --upgrade pip The directory '/home/vagrant/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. The directory '/home/vagrant/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag. Collecting pip Downloading https://files.pythonhosted.org/packages/54/eb/4a3642e971f404d69d4f6fa3885559d67562801b99d7592487f1ecc4e017/pip-20.3.3-py2.py3-none-any.whl (1.5MB) 100% |████████████████████████████████| 1.5MB 110kB/s Installing collected packages: pip Found existing installation: pip 8.1.1 Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr Successfully installed pip-20.3.3再度、numpyをインストール
````agrant@vagrant-ubuntu-trusty-64:~$ pip install numpy WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip. Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue. To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality. Defaulting to user installation because normal site-packages is not writeable Collecting numpy Downloading numpy-1.16.6-cp27-cp27mu-manylinux1_x86_64.whl (17.0 MB) |████████████████████████████████| 17.0 MB 116 kB/s Installing collected packages: numpy WARNING: The scripts f2py, f2py2 and f2py2.7 are installed in '/home/vagrant/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.無事インストールできました。
- 投稿日:2021-01-20T20:14:16+09:00
Linux (CentOS) をUSBメモリを使ってPCにインストールする
概要
Linuxを勉強するために使っていないPCにCentOSをインストールしようと思いました。しかし、PCに光学式ドライブが付属していなかったため、USBを使用してインストールしました。
※細かい説明などはしていません
CentOSのISOファイルをダウンロード
こちらのサイトからCentOSのバージョンを選択してISOファイルをダウンロードします。
USBメモリにISOファイルを移動する
ダウンロードしたISOファイルをUSBメモリに移動します。
USBメモリをブートUSBにする
BIOSから起動できるようにするためにブートUSBにする必要があります。
そのためにRefusというソフトを使用します。Refusをダウンロード&起動します。
以下のように設定してスタートし終わるまで待ちます。起動順を変更
BIOSのブート設定でブートUSBを一番最初に起動するように設定します。
完了
起動するとCentOSのインストール画面が開くはずです。
- 投稿日:2021-01-20T14:15:03+09:00
Error: File contains no section headers. file: file://///etc/yum.repos.d/CentOS-Base.repo, line: 1の解決法
エラー
「仮想マシンに接続してみよう」
https://dotinstall.com/lessons/basic_vagrant/24106ドットインストールにて、上記レッスンを学習中に
$ sudo yum -y install httpdのコマンドを[vagrant@localhost ~]で入力したら
Error: File contains no section headers. file: file://///etc/yum.repos.d/CentOS-Base.repo, line: 1このようなエラーが出てきました。
解決法
https://centossrv.com/bbshtml/webpatio/1350.shtml
上記記事を参考にしたところ、「etc/yum.repos.d/CentOS-Base.repoの1行目がおかしいよ」というエラーだということがわかったので、
$ sudo vi /etc/yum.repos.d/CentOS-Base.repoを実行し、中のデータをみてみたところ1行目が
entOS-Base.repo
のようになっていました。
正しくは# CentOS-Base.repo
なので(#のあとのスペースも忘れずに!)そちらに変更して、再度$ sudo yum -y install httpdを実行したら、無事にComplete!とすることができました。
まとめ
エラー解決をしていると、全然できないことがたくさんあるのですが、ほとんどがタイポだったりするので、注意深く確認していくようにします。
- 投稿日:2021-01-20T13:21:52+09:00
Ceph(Octopus)の構築(設定編 ブートストラップ)
はじめに
この記事では、タイトルのとおり現時点(2021.01)で最新であるceph(octopus)の構築を目的としています。
また、自分で構築した手順の備忘録を兼ねているので、細かいところで間違いなどあるかもしれません。基本的には公式のDOCUMENTATIONが必要なことを全て網羅しているので一読しておくことをお勧めします。
Linuxの知識もある程度必要になるので他サイトや書籍などで事前に基本は押さえておくとよいでしょう。関連記事
Ceph(Octopus)の構築(準備編 ハードウェア)
Ceph(Octopus)の構築(準備編 ソフトウェア)
Ceph(Octopus)の構築(設定編 共通)
Ceph(Octopus)の構築(設定編 ブートストラップ) この記事
Ceph(Octopus)の構築(設定編 mon/mgr/osd)SSH
monノードから各ノードを設定するため、sshキーを生成しておきます。
ssh-keygen -t rsashellscriptを使って各作業を自動化したいのでsshpassも入れておきます。
yum -y install epel-release yum -y install sshpass※ epel-releaseはceph-commonのインストールにも必要
ceph
cephリポジトリの確認(ceph-mon01のみ)
リポジトリ
今回はOSがCentos7でハードウェアはx86_64なので
https://download.ceph.com/rpm-octopus/el7/x86_64/ceph-15.2.7-0.el7.x86_64.rpm
を選びました。
よくわからない場合はよく調べるか、とりあえずnoarchを選べば何とかなるかもしれません。リポジトリの登録(ceph-mon01のみ)
URLを間違えないように気を付けましょう。ファイルを新規に作成します。
vi /etc/yum.repos.d/ceph.repo[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-octopus/el7/x86_64
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asccephadm(ceph-mon01のみ)
yum -y install cephadmcephディレクトリ作成(ceph-mon01のみ)
mkdir -p /etc/cephブートストラップ(ceph-mon01のみ)
ブートストラップを実行するとcephクラスタを開始するために必要な、以下1~5の設定がまとめて行われます。
1.cephクラスタ用キーの作成
2.docker imageのpull
3.実行ノードにmon/mgrのdaemonを作成
4.cephの構成ファイルの作成
5.dashboardの開始docker imageを自動的にpullしてくるため、一番最初はインターネットに繋がっている必要があります。
ただ、事前に必要なdocker imageを格納できる場合はその必要はないかもしれません。私はやり方が分からなかったので、おとなしくインターネットに繋ぎました。ノードをmon兼mgrとして動かす場合と、mdsもしくはosdとして動かす場合ではpullしてくるdocker imageが異なるようです。mon兼mgrとしてノードを設定したときのdocker image
mdsもしくはosdとしてノードを設定したときのdocker image
また、今回は閉域環境でcephクラスタを動かしたかったので以下のような回りくどい方法をとりました。もっとスマートにやる方法があるような気がしますが・・・。
1. ブートストラップでインターネットからdocker imageをpullしてくる
2. 作成されたクラスタをdocker imageだけ残して削除
3. 閉域のIPアドレスに変更し、再度ブートストラップを実行する(--skip-pull)イメージをpullする場合cephadm bootstrap --mon-ip 192.168.1.101ブートストラップを実行すると、最後にdashboardのURLと初期パスワードが表示されるので、動作チェックも兼ねて一度アクセスしておきましょう。
イメージをpullしない場合cephadm bootstrap --mon-ip 192.168.1.101 --skip-pullmon及びmgrの自動展開を無効にする(ceph-mon01のみ)
この後、作成されたクラスタに各ノードを追加していくのですが自動展開を無効にしておかないとノードに意図した役割を持たせることができません。(勝手にmonが展開されます。)
自動でやってくれるのはありがたいのですが、今回はノード毎に役割を決めているので無効化しておきます。cephadm shell ceph orch apply mon --unmanaged ceph orch apply mgr --unmanagedsamba
cephFSをファイルサーバのように使うためには以下段階を踏む必要があります。閉域環境へ持っていってからではできないのでこのタイミングでパッケージの追加をしておきます。
1.cephFSをマウントする
2.マウントしたcephFSを共有するcephFSをマウントするために必要になるパッケージです。
epel-releaseを入れてないと依存関係のエラーでうまく入りませんでした。
上記sshpassのところで入れてない場合はここで入れる必要があります。yum -y install ceph-commonマウントしたcephFSを共有フォルダとして公開するためのパッケージです。
yum -y install sambaおわりに
monノードに必要な作業は以上です。ブートストラップを実行する最初の1台のみの作業の方が多いですね。
2台目以降のmonノードはブートストラップではなく、ceph orchコマンドで追加していくことになります。
cephFSマウントの方法やsambaの設定は別の記事に投稿します。
- 投稿日:2021-01-20T13:21:52+09:00
Ceph(Octopus)の構築(設定編 monノード)
はじめに
この記事では、タイトルのとおり現時点(2021.01)で最新であるceph(octopus)の構築を目的としています。
また、自分で構築した手順の備忘録を兼ねているので、細かいところで間違いなどあるかもしれません。基本的には公式のDOCUMENTATIONが必要なことを全て網羅しているので一読しておくことをお勧めします。
Linuxの知識もある程度必要になるので他サイトや書籍などで事前に基本は押さえておくとよいでしょう。準備編等は関連記事を参照してください。
関連記事
Ceph(Octopus)の構築(準備編 ハードウェア)
Ceph(Octopus)の構築(準備編 ソフトウェア)
Ceph(Octopus)の構築(設定編 共通)
Ceph(Octopus)の構築(設定編 monノード) この記事SSH
monノードから各ノードを設定するため、sshキーを生成しておきます。
ssh-keygen -t rsashellscriptを使って各作業を自動化したいのでsshpassも入れておきます。
yum -y install epel-release yum -y install sshpass※ epel-releaseはceph-commonのインストールにも必要
ceph
cephリポジトリの確認(ceph-mon01のみ)
リポジトリ
今回はOSがCentos7でハードウェアはx86_64なので
https://download.ceph.com/rpm-octopus/el7/x86_64/ceph-15.2.7-0.el7.x86_64.rpm
を選びました。
よくわからない場合はよく調べるか、とりあえずnoarchを選べば何とかなるかもしれません。リポジトリの登録(ceph-mon01のみ)
URLを間違えないように気を付けましょう。ファイルを新規に作成します。
vi /etc/yum.repos.d/ceph.repo[ceph-noarch]
name=Ceph noarch packages
baseurl=https://download.ceph.com/rpm-octopus/el7/x86_64
enabled=1
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asccephadm(ceph-mon01のみ)
yum -y install cephadmcephディレクトリ作成(ceph-mon01のみ)
mkdir -p /etc/cephブートストラップ(ceph-mon01のみ)
ブートストラップを実行するとcephクラスタを開始するために必要なあらゆる設定がまとめて行われます。
1.cephクラスタ用キーの作成
2.docker imageのpull
3.実行ノードにmon/mgrのdaemonを作成
4.cephの構成ファイルの作成
5.dashboardの開始docker imageを自動的にpullしてくるため、一番最初はインターネットに繋がっている必要があります。
ただ、事前に必要なdocker imageを格納できる場合はその必要はないかもしれません。私はやり方が分からなかったので、おとなしくインターネットに繋ぎました。ノードをmon兼mgrとして動かす場合と、mdsもしくはosdとして動かす場合ではpullしてくるdocker imageが異なるようです。mon兼mgrとしてノードを設定したときのdocker image
mdsもしくはosdとしてノードを設定したときのdocker image
また、今回は閉域環境でcephクラスタを動かしたかったので以下のような回りくどい方法をとりました。もっとスマートにやる方法があるような気がしますが・・・。
1. ブートストラップでインターネットからdocker imageをpullしてくる
2. 作成されたクラスタをdocker imageだけ残して削除
3. 閉域のIPアドレスに変更し、再度ブートストラップを実行する(--skip-pull)イメージをpullする場合cephadm bootstrap --mon-ip 192.168.1.101イメージをpullしない場合cephadm bootstrap --mon-ip 192.168.1.101 --skip-pullmon及びmgrの自動展開を無効にする(ceph-mon01のみ)
この後、作成されたクラスタに各ノードを追加していくのですが自動展開を無効にしておかないとノードに意図した役割を持たせることができません。(勝手にmonが展開されます。)
自動でやってくれるのはありがたいのですが、今回はノード毎に役割を決めているので無効化します。cephadm shell ceph orch apply mon --unmanaged ceph orch apply mgr --unmanagedsamba
cephFSをファイルサーバのように使うためには以下段階を踏む必要があります。
1.cephFSをマウントする
2.マウントしたcephFSを共有するcephFSをマウントするために必要になるパッケージです。
epel-releaseを入れてないと依存関係のエラーでうまく入りませんでした。
上記sshpassのところで入れてない場合はここで入れる必要があります。yum -y install ceph-commonマウントしたcephFSを共有フォルダとして公開するためのパッケージです。
yum -y install sambaおわりに
monノードに必要な作業は以上です。ブートストラップを実行する最初の1台のみの作業の方が多いですね。
2台目以降のmonノードはブートストラップではなく、ceph orchコマンドで追加していくことになります。
cephFSマウントの方法やsambaの設定は別の記事に投稿します。
- 投稿日:2021-01-20T11:16:24+09:00
通信とネットワーク
勉強の記録
通信とネットワーク 1/20
勉強した内容
- 通信方法について(回線交換方式・パケット交換方式)
- tcpdump コマンド(パケットの内容を見るコマンド)
- ping コマンド
- IPアドレスについて
何をベースに勉強してるか
内容の詳細
- インターネットの仕組み? 実際どのように通信が行われているか
- TCP・UDPやIPアドレスなどなど
わかったことについて
- ネットゲームでpingって知っていたけど、より一層分かった気がする。
- IPアドレスがバージョン移行していこうとしてると知りました。
- ただ単語として知っているだけだったものが、もう少し深く知れたような気がします。
むずかしかったよ
- 難しいというより、知ってる言葉でも知らないことだらけでした。
次回やる予定のこと
- 次回もネットワーク関連の授業みたいです!
- 投稿日:2021-01-20T08:54:27+09:00
CentOS8君、日次の再起動前にゴリラアップデートをしてくれたまえ(dnfコマンド)
再起動はあくまで再起動だけ
CentOS8を毎日定時に再起動させたいんだよなあ の記事でCentOS8君を毎日再起動させる環境を作りました。
でも一つ気づいたことがありました。
あ、この子、再起動しかしてないわ…
そりゃそうだよね。。再起動でパッケージまで自動更新されたら面倒な場合もあるもんね。。
(依存関係とか宗教上の理由とかで あえてパッケージの更新をさせていない のが崩れちゃう)ということでパッケージ更新のスクリプトを日次の再起動に組み込むことにしました。
まずはどんな更新が来ているか確認
下記ね。
dnf check-updateということで、
dnf
コマンドでパッケージの更新まわりのあれやこれやを操作できます。ゴリラアップデート
ゴリラアップデートとは…
何でもいいから来てるの全部アップデートしろや!後のことは何とかしてやるぜ!
という強者のみに許された力強い更新方法です。ゴリラアップデートコマンドdnf upgrade -y --allowerasing
- 普通は
upgrade
の後にパッケージ名を指定するのですが、それを書かないことで 全てのパッケージ を対象にできます。-y
のオプションを付けることで『実行していいですか?』の確認のステップをすっ飛ばします。--allowerasing
のオプションを付けることで『依存関係解決の為にインストール済パッケージの削除も辞さない覚悟』をCentOS8君に伝えています。(これが無いと依存関係解決の必要が出た時に『これどうします?』的なエラーになり、アップデートが走りません)オランウータンアップデート
オランウータンアップデートとは…
セキュリティとか重要な更新だけはひとまず自動更新!それ以外は『ちょ、まてよ!』で更新しない
という賢者的な更新方法です。オランウータンアップデートコマンドdnf upgrade-minimal -y --security
upgrade-minimal
を付けることで 重要な更新のみ に限定しています。--security
を付けることでセキュリティ更新が必要なパッケージのみに絞り込みしています。--allowerasing
を付けていないので、依存関係解決の必要が出たらアップデートは走りません。蛇足
お家サーバーとか開発サーバーなら、下記のような使い方がバランスが取れていいかなと思います。
- セキュリティや重要なものは自動で更新。
- 上記以外は更新内容をテキストに書き出す or メール等で通知して、更新するかどうかは個別に検討。
参考サイトさん
https://qiita.com/yasushi-jp/items/0dc7f413632927f92286
https://www.atmarkit.co.jp/ait/articles/2001/09/news018.html
https://www.atmarkit.co.jp/ait/articles/2002/06/news010.html
https://blog.luispc.com/entry/2019/12/05/214513バージョン
CentOS Linux release 8.3.2011