centos 7 入門

31
CentOS 7 入門 新しく生まれ変わったCentOS

Upload: shinichiro-ohhara

Post on 08-Jun-2015

9.856 views

Category:

Software


1 download

DESCRIPTION

勉強会の資料です。 塩尻インキュベーションプラザ、松本ソフト開発センター、にてオープンな勉強会を実施しています。

TRANSCRIPT

Page 1: CentOS 7 入門

CentOS 7 入門

新しく生まれ変わったCentOS

Page 2: CentOS 7 入門

自己紹介

大原 慎一郎 https://twitter.com/ohhara_shiojiri

(有)トラストネットワークス 塩尻インキュベーションプラザ108号室

・長野県塩尻市に活動拠点を置く、市内プログラマー有志による団体・「オープンな環境でオープンな活動を目指す」を合言葉に集う・CoderDojo Shiojiri 開催 ・小学生高学年向けRuby教室開催・IT技術書をリブライズで貸し出し、また市立図書館と協力

http://shiojiri-osslabo.com/

Page 3: CentOS 7 入門

アジェンダ

● CentOSについて

● RHEL 7 について

● LAMP環境について

● インストールについて

● 検証環境

● systemd● NetworkManager● iproute2

Page 4: CentOS 7 入門

CentOSについて

● Red Hat Enterprise Linux(RHEL)クローン

他に学術向けにScientific Linux

● RHELから商標や商用のパッケージを除外

● Community ENTerprise Operating System

● Red Hat社の有償サポートを必要としない用途

● 2014年1月Red Hat社が支援表明

● RHELと高い互換性

Page 5: CentOS 7 入門

RHEL 7 について

● 2014年6月10日リリース

● 10年間サポート 2024年6月30日まで

● Fedora19をベース

● カーネルバージョン 3.10

● 64bitのみ x86_64/ppc64/s390sサポート

● ext4 → xfs 最大500TBサポート

● GRUB Legacy → GRUB2 UEFIサポート

Page 6: CentOS 7 入門

LAMP環境について

● LAMP環境としてのCentOS○ 従来システムとの互換性と安定性を重視して、標準パッ

ケージのバージョンは古いままでした。○ 古いバージョンのサポートが続々と終了している。○ 性能向上、機能向上、セキュリティ向上が求められる。○ RHEL7(CentOS7)から新しいバージョンを採用!

● CentOS6.5のLAMP環境○ Apache → 2.2.15 開発終了 新版移行を推奨○ MySQL → 5.1.73 開発終了 新版移行を推奨○ PHP → 5.3.3 開発終了 新版移行を推奨○ Perl → 5.10.1○ Python → 2.6.6

Page 7: CentOS 7 入門

LAMP環境について

● CentOS7のLAMP環境○ Apache → 2.4.6 最新機能の安定版○ MySQL → MySQL5.5互換のMariaDB 5.5.37○ PHP → 5.4.16 最新のPHPは5.6.0○ Perl → 5.16.3 最新のPerlは5.20.0○ Python → 2.7.5 最新のPythonは3.4.1○ 各バージョンは2014年9月10日時点です。

● CentOS6.5でLAMP環境の新バージョン構築は大変面倒なので、CentOS7を利用しましょう。

● CentOS6.5からCentOS7への移行が公式サポートされています。

Page 8: CentOS 7 入門

インストールについて

● 従来通りISOファイルが用意されています。○ http://www.centos.org/download/○ 標準で3.9GB 最大のEverythingで6.6GB!○ 最小のminimalで566MB○ 高速ネット環境があれば、Netinstallで362MB

● インストーラーのanaconda○ 従来はインストールの順を追ってオプションを設定してい

たが、予めオプションを選択してからインストール実行が

出来るようになった。

Page 9: CentOS 7 入門

インストールについて

● クラウド環境用のイメージを予定しています。○ AWS等のパブリッククラウド○ OpenStack等のプライベートクラウド○ Docker

● クラウド利用者を想定して、VagrantのBOXファイルにて今回は学習して行きます。

Page 10: CentOS 7 入門

検証環境

● VirtualBox 4.3.16(2014/09/11時点)○ https://www.virtualbox.org/wiki/Downloads○ CPUの仮想マシン支援機能が必要(BIOS設定)○ Windowsの場合、システムのPATH設定が必要

■ 4.2系 C:\Program Files\Oracle VM VirtualBox■ 4.3系 C:\Program Files\Oracle\VirtualBox

Page 11: CentOS 7 入門

検証環境

● Vagrant 1.6.5(2014/09/05時点)○ http://www.vagrantup.com/downloads.html○ Windowsの場合、システムのPATH設定が必要

■ C:\HashiCorp\Vagrant\bin■ C:\HashiCorp\Vagrant\embedded\mingw\bin

○ コマンドプロンプトの代わりにmingw32が使用できる。■ C:\HashiCorp\Vagrant\embedded\mingw\mingw32env.cmd

● BOXファイル CentOS 7○ https://dl.dropboxusercontent.com/s/w3lbekm7eunrskm/centos-7.0-x86_64.box○ CentOS7.0 x86_64 minimal + Puppet + VirtualBoxGuestAddtions 4.3.14

Page 12: CentOS 7 入門

検証環境

● Vagrantfileを編集してIPアドレスを割り当てたノードで起動させます。

● Vagrant入門の資料を参照して下さい。○ http://www.slideshare.net/ShinichiroOhhara/solavagrantver2

Page 13: CentOS 7 入門

Virtual Box 環境

検証環境

クライアント側Ubuntu 14.04

ホストPC

ルーター192.168.33.1

サーバー側CentOS7

192.168.33.70

Page 14: CentOS 7 入門

systemd

● サービス管理がsystemdへ変更になりました。○ システムの起動時、シャットダウン時など、サービスプロ

セスの管理システムが新しくなりました。

● 従来はUNIX由来のinitにて管理○ UNIXのinitには、SystemV系とBSD系がある○ RHEL5(CentOS5)まではSysVinit○ /etc/inittabに設定されたランレベルで管理○ RHEL6(CentOS6)からubuntuと同じUpstart○ /etc/init/以下の設定ファイルで管理○ UpstartはSysVinit互換○ 互換性のあるシェルスクリプトで動作を設定

Page 15: CentOS 7 入門

systemd

● initより変わったこと○ Upstartより並列度の高い高速な起動と終了○ シェルスクリプトではなく設定ファイルによる管理○ サービスプロセス起動が様々な方法で柔軟に出来る○ cgroupsによるサービスプロセスのリソース管理

● Unit○ サービスプロセスの設定ファイル○ systemdがUnitの設定で処理する。○ 他のUnitと連携(依存と起動順)して処理が出来る。○ 拡張子によって様々なUnitの種類がある。○ 設置場所は、/etc/systemd/system○ インストール初期設定は、/usr/lib/systemd/system

Page 16: CentOS 7 入門

systemd

● コマンド○ systemctl オプション Unit名○ 従来と同じserviceも使用できます。

● サービスプロセスの起動と停止○ Unitの拡張子は、「.service」○ sytemctl [start/stop/restart] Unit名○ reloadオプションはUnitに定義されている場合のみ

● Unit設定の変更○ Unit設定を変更した時は、systemdへ反映させます。○ systemctl daemon-reload

● プロセスの状態確認○ systemctl status Unit名

Page 17: CentOS 7 入門

systemd

● 自動起動の設定○ systemctl [enable/disable] Unit名○ Unitの連携(依存)設定が変更されます。

○ Unit設定ファイルで指定した「WantedBy=」ディレクトリ

へのシンボリックリンク

● Wants○ 連携(依存)するUnitを設定します。○ Unit設定ファイルの「Wants=」○ ディレクトリ「Unit名.wants」へシンボリックリンクを作成

● Requires○ WantsはUnit間の同時起動が失敗しても再実行します。

○ RequiresはUnit間の同時起動が失敗したら終了しま

す。

Page 18: CentOS 7 入門

systemd

● 自動起動の確認○ systemctl list-unit-files --type=service○ enabled → 「Wants=」記載あり、有効○ disabled → 「Wants=」記載あり、無効○ static → 「Wants=」記載無し

● 現在のUnit状態の確認○ systemctl list-units --type=service○ list-unitsオプションを省略出来る。

● Unitの連携関係の確認○ systemctl list-dependencies○ ツリー表示で連携(依存と起動順)関係を表示する。

Page 19: CentOS 7 入門

systemd

● target○ 複数のUnitをまとめて、グループ化できる。○ Unitの拡張子は、「.target」○ 関係する複数のUnitの連携(依存と起動順)を管理。○ target自体は実行しない。

○ 従来のランレベルが無くなり、Unitのtargetに変わりまし

た。○ 従来のランレベル0から6と違い、自由に設定出来る。

● システムの起動状態の変更方法○ /etc/systemd/system/default.target○ シンボリックリンク先を変更することで、ランレベル相当

を実現しています。

Page 20: CentOS 7 入門

systemd

● 従来のランレベルとの対比○ runlevel0からrunlevel6のシンボリックリンクもある。

従来のランレベル targetファイル名 状態内容

runlevel 0 poweroff.target 停止

runlevel 1 rescue.target シングルユーザーモード

runlevel 2 multi-user.target マルチユーザーモード

runlevel 3 multi-user.target マルチユーザーモード

runlevel 4 multi-user.target マルチユーザーモード

runlevel 5 graphical.target GUIマルチユーザーモード

runlevel 6 reboot.target 再起動

Page 21: CentOS 7 入門

systemd

● その他のUnit○ 「service」「target」の他にもUnitの種類があります。

● mount, swap○ /etc/fstabから自動作成されます。

● device○ デバイスが認識すると自動作成されます。

● path○ パスを監視して、ファイルに応じてサービスを起動。

● socket○ ソケットを監視して、接続に応じてサービスを起動。

Page 22: CentOS 7 入門

NetworkManager

● ネットワークデバイス設定○ /etc/sysconfig/network-scipts/にある設定ファイルを直

接編集するのではなく、NetworkManagerを使用する。○ 従来の設定ファイルも利用できる。

○ Ethernetインターフェースは標準では無効になってい

る。

● NetworkManagerフロントエンド○ GUIのGNOME環境で操作します。

● nmtui○ テキスト画面で対話的にネットワーク設定します。

Page 23: CentOS 7 入門

NetworkManager

● nmcli○ コマンドラインでネットワーク設定します。○ サーバー管理者向けに、ここではnmcliを学習します。

● ホスト名の変更○ nmcli general hostname ホスト名○ bmcli g ho ホスト名 と省略できる。○ /etc/hostnameファイルに設定される。

Page 24: CentOS 7 入門

NetworkManager

● nmcli device○ 物理デバイスの管理

● デバイスの一覧○ nmcli device○ nmcli d と省略出来る。

● デバイスの詳細○ nmcli device show デバイス名○ nmcli d s と省略出来る。

Page 25: CentOS 7 入門

NetworkManager

● nmcli connection○ 接続設定の管理

● 接続状況の一覧○ nmcli connection○ nmcli c と省略できる。○ nmcli --fields 項目 connection で検索表示も出来る。

● 接続の詳細○ nmcli connection show 名前もしくはUUID○ nmcli c s 名前もしくはUUID と省略できる。

○ 名前にスペースがあるときは、「”」ダブルクォーテーショ

ンで囲んで指定する。○ nmcli c s “Wired connection 1”

Page 26: CentOS 7 入門

NetworkManager

● 接続の有効化○ nmcli connection up 名前もしくはUUID

● 接続の無効化○ nmcli connection down 名前もしくはUUID

● 接続の動作確認○ nmcli c s 名前もしくはUUID でIPアドレスを確認○ ping で疎通を確認○ nmcli c d 名前もしくはUUID で無効化○ ping で疎通出来ないのを確認○ nmcli c u 名前もしくはUUID で有効化○ ping で疎通を確認

Page 27: CentOS 7 入門

NetworkManager

● 設定の変更○ nmcli connection modify 名前 項目 設定値○ nmcli c m と省略できる。

● IPアドレスとゲートウェイの変更○ DHCPを手動設定へ変更します。○ nmcli c m 名前 ipv4.method manual○ nmcli c m 名前 ipv4.addresses "IPアドレス/ネットマス

ク ゲートウェイ"○ 設定変更しただけでは、設定値は有効にならない。○ 接続をdown/upした後で設定値が有効になる。

Page 28: CentOS 7 入門

NetworkManager

● DNSの変更○ nmcli c m 名前 ipv4.dns "DNSサーバーのIPアドレス"

● 設定値の追加と削除○ 既存の値に追加する場合は、項目名の前に「+」を付け

る。

○ 既存の値から削除する場合は、項目名の前に「ー」を付

ける。○ nmcli c m 名前 +項目名 値○ nmcli c m 名前 -項目名 値

● DHCPの設定○ nmcli c m 名前 ipv4.method auto

Page 29: CentOS 7 入門

iproute2

● ネットワーク設定コマンドの変更○ デバイス名が「eth番号」から「en名称」へ変更になりまし

た。○ 従来のifconfig,route,arp,netstatコマンドは非推奨。○ 標準では使用できません。

○ 別途、net-toolsパッケージをインストールすれば使用出

来ます。○ yum install net-tools○ 新しいiproute2パッケージのコマンドを推奨します。○ 古いコマンドは忘れて新しいコマンドを学習しましょう。

Page 30: CentOS 7 入門

iproute2

● ip addr show○ ipconfigに相当するコマンド。○ デバイスのアドレスを表示する。○ 処理パケットの統計は表示されない。

● ip -s link○ ipconfigに相当するコマンド。○ 接続の処理パケットの統計を表示する。

● ip route○ routeに相当するコマンド。○ ルーティングテーブルを表示する。

Page 31: CentOS 7 入門

iproute2

● ip neigh○ arpに相当するコマンド。○ デバイスのMacアドレスを表示する。

● ipコマンド○ 各ネットワーク設定を変更することが出来ます。○ デバイスをdown/upする事無く、設定は即反映します。○ 設定値は保存されません。

● ss○ netstatに相当するコマンド。○ サービスの使用状況を表示する。