20210120のLinuxに関する記事は7件です。

Python環境構築

OS Windows10 Pro
Vagrant 2.2.14
Ubuntu 16.04.4 LTS

Dockerで今後管理したいため、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.


無事インストールできました。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux (CentOS) をUSBメモリを使ってPCにインストールする

概要

Linuxを勉強するために使っていないPCにCentOSをインストールしようと思いました。しかし、PCに光学式ドライブが付属していなかったため、USBを使用してインストールしました。

※細かい説明などはしていません

CentOSのISOファイルをダウンロード

こちらのサイトからCentOSのバージョンを選択してISOファイルをダウンロードします。

USBメモリにISOファイルを移動する

ダウンロードしたISOファイルをUSBメモリに移動します。

USBメモリをブートUSBにする

BIOSから起動できるようにするためにブートUSBにする必要があります。
そのためにRefusというソフトを使用します。

Refusをダウンロード&起動します。
以下のように設定してスタートし終わるまで待ちます。

image.png

起動順を変更

BIOSのブート設定でブートUSBを一番最初に起動するように設定します。

完了

起動するとCentOSのインストール画面が開くはずです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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!とすることができました。

まとめ

エラー解決をしていると、全然できないことがたくさんあるのですが、ほとんどがタイポだったりするので、注意深く確認していくようにします。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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 rsa

shellscriptを使って各作業を自動化したいので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.asc

cephadm(ceph-mon01のみ)
yum -y install cephadm
cephディレクトリ作成(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
01.PNG
mdsもしくはosdとしてノードを設定したときのdocker image
02.PNG
また、今回は閉域環境で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-pull
mon及びmgrの自動展開を無効にする(ceph-mon01のみ)

この後、作成されたクラスタに各ノードを追加していくのですが自動展開を無効にしておかないとノードに意図した役割を持たせることができません。(勝手にmonが展開されます。)
自動でやってくれるのはありがたいのですが、今回はノード毎に役割を決めているので無効化しておきます。

cephadm shell
  ceph orch apply mon --unmanaged
  ceph orch apply mgr --unmanaged

samba

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の設定は別の記事に投稿します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Ceph(Octopus)の構築(設定編 monノード)

はじめに

この記事では、タイトルのとおり現時点(2021.01)で最新であるceph(octopus)の構築を目的としています。
また、自分で構築した手順の備忘録を兼ねているので、細かいところで間違いなどあるかもしれません。

基本的には公式のDOCUMENTATIONが必要なことを全て網羅しているので一読しておくことをお勧めします。
Linuxの知識もある程度必要になるので他サイトや書籍などで事前に基本は押さえておくとよいでしょう。

準備編等は関連記事を参照してください。

関連記事

Ceph(Octopus)の構築(準備編 ハードウェア)
Ceph(Octopus)の構築(準備編 ソフトウェア)
Ceph(Octopus)の構築(設定編 共通)
Ceph(Octopus)の構築(設定編 monノード) この記事

SSH

monノードから各ノードを設定するため、sshキーを生成しておきます。

ssh-keygen -t rsa

shellscriptを使って各作業を自動化したいので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.asc

cephadm(ceph-mon01のみ)
yum -y install cephadm
cephディレクトリ作成(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
01.PNG
mdsもしくはosdとしてノードを設定したときのdocker image
02.PNG
また、今回は閉域環境で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-pull
mon及びmgrの自動展開を無効にする(ceph-mon01のみ)

この後、作成されたクラスタに各ノードを追加していくのですが自動展開を無効にしておかないとノードに意図した役割を持たせることができません。(勝手にmonが展開されます。)
自動でやってくれるのはありがたいのですが、今回はノード毎に役割を決めているので無効化します。

cephadm shell
  ceph orch apply mon --unmanaged
  ceph orch apply mgr --unmanaged

samba

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の設定は別の記事に投稿します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

通信とネットワーク

勉強の記録

通信とネットワーク 1/20

勉強した内容

  • 通信方法について(回線交換方式・パケット交換方式)
  • tcpdump コマンド(パケットの内容を見るコマンド)
  • ping コマンド
  • IPアドレスについて

何をベースに勉強してるか

内容の詳細

  • インターネットの仕組み? 実際どのように通信が行われているか
  • TCP・UDPやIPアドレスなどなど

わかったことについて

  • ネットゲームでpingって知っていたけど、より一層分かった気がする。
  • IPアドレスがバージョン移行していこうとしてると知りました。
  • ただ単語として知っているだけだったものが、もう少し深く知れたような気がします。

むずかしかったよ

  • 難しいというより、知ってる言葉でも知らないことだらけでした。

次回やる予定のこと

  • 次回もネットワーク関連の授業みたいです!
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

CentOS8君、日次の再起動前にゴリラアップデートをしてくれたまえ(dnfコマンド)

再起動はあくまで再起動だけ

CentOS8を毎日定時に再起動させたいんだよなあ の記事でCentOS8君を毎日再起動させる環境を作りました。

でも一つ気づいたことがありました。
あ、この子、再起動しかしてないわ…
そりゃそうだよね。。再起動でパッケージまで自動更新されたら面倒な場合もあるもんね。。
(依存関係とか宗教上の理由とかで あえてパッケージの更新をさせていない のが崩れちゃう)

ということでパッケージ更新のスクリプトを日次の再起動に組み込むことにしました。

まずはどんな更新が来ているか確認

下記ね。

dnf check-update

こんな感じね。何か来てますね。
image.png

ということで、 dnf コマンドでパッケージの更新まわりのあれやこれやを操作できます。

ゴリラアップデート

ゴリラアップデートとは…
何でもいいから来てるの全部アップデートしろや!後のことは何とかしてやるぜ!
という強者のみに許された力強い更新方法です。

ゴリラアップデートコマンド
dnf upgrade -y --allowerasing
  • 普通は upgrade の後にパッケージ名を指定するのですが、それを書かないことで 全てのパッケージ を対象にできます。
  • -y のオプションを付けることで『実行していいですか?』の確認のステップをすっ飛ばします。
  • --allowerasing のオプションを付けることで『依存関係解決の為にインストール済パッケージの削除も辞さない覚悟』をCentOS8君に伝えています。(これが無いと依存関係解決の必要が出た時に『これどうします?』的なエラーになり、アップデートが走りません) image.png

オランウータンアップデート

オランウータンアップデートとは…
セキュリティとか重要な更新だけはひとまず自動更新!それ以外は『ちょ、まてよ!』で更新しない
という賢者的な更新方法です。

オランウータンアップデートコマンド
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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む