これまでの作業で CentOS 7 の仮想マシンがインストールできたので,CentOS を利用する準備ができました.しかし,Web サーバやその他の開発環境などが一切インストールされていないので,ここでは各種のソフトウェアのインストールと設定を行います.ただ,一つひとつソフトウェアをインストールするのは大変な作業です.よって,ここでは,必要なソフトウェアを自動的にインストール・設定するための Ansible を使うことにします.
Ansible による自動インストールのスクリプトファイルを GitHub から Windows にダウンロードし,ダウンロードしたファイルを Cyberduck を使って仮想マシンにアップロードする.(Github のユーザ登録が完了して,公開鍵を Github に登録している場合は,git clone
コマンドでも可能です.)
GitHub の https://github.com/rinsaka/centos7ansible を開く.「Code」から「Download ZIP」をクリックし,ZIP 形式でローカルの Windows PC にダウンロードする.
ダウンロードした ZIP ファイルを右クリックして「すべて展開」する.
展開先は適当な場所でよい.
次は,Cyberduck を使って,仮想マシンのホームフォルダ 「/home/vagrant/」にアップロードする.Windows のエクスプローラからフォルダごとドラッグ&ドロップすれば良い.
アップロードできれば次のような画面が表示される.この画面は閉じて良い.
仮想マシンの「/home/vagrant/」以下にフォルダごとコピーされた.
ここからはコマンドプロンプトで作業する.Ansible のスクリプトがコピーされたので,そのフォルダに移動する.
C:\Users\Rinsaka\MyVagrant\MyCentOS>vagrant ssh ⏎ # Last login: Wed Mar 24 06:42:26 2021 from 192.168.33.1 [vagrant@localhost ~]$ pwd ⏎ # /home/vagrant [vagrant@localhost ~]$ ls ⏎ centos7ansible-master [vagrant@localhost ~]$ cd centos7ansible-master/ ⏎ [vagrant@localhost centos7ansible-master]$ ls ⏎ 00-ntp.yml 05-mongodb.yml 10-pdftotext.yml httpd.conf.custom password-auth-ac.custom 01-apache.yml 05-mysql.yml 10-tesseract.yml ldap_work php.ini.custom 02-ldapclient.yml 06-php.yml 11-nfs-server.yml main.yml README.md 02-ldapserver.yml 07-laravel.yml 12-bind-utils.yml mongodb-org-4.2.repo.custom run.sh 03-ldif.yml 08-ruby.yml 13-siege.yml mongod.conf.custom system-auth-ac.custom 04-mecab.yml 09-python-anaconda.yml bash_profile.custom nsswitch.conf.custom work [vagrant@localhost centos7ansible-master]$
コピーされたファイルの一つ,run.sh には実行権限が付与されていないので,chmod
コマンドで実行権限を付与する.(ファイルの属性が -rw-rw-r-- ではなく -rwxrwx--- になるように x (eXecutable) のフラグを立てる)
[vagrant@localhost centos7ansible-master]$ ls -l ⏎ total 208 -rw-rw-r--. 1 vagrant vagrant 252 Mar 24 07:07 00-ntp.yml -rw-rw-r--. 1 vagrant vagrant 413 Mar 24 07:07 01-apache.yml -rw-rw-r--. 1 vagrant vagrant 1058 Mar 24 07:07 02-ldapclient.yml -rw-rw-r--. 1 vagrant vagrant 540 Mar 24 07:07 02-ldapserver.yml -rw-rw-r--. 1 vagrant vagrant 1012 Mar 24 07:07 03-ldif.yml -rw-rw-r--. 1 vagrant vagrant 2373 Mar 24 07:07 04-mecab.yml -rw-rw-r--. 1 vagrant vagrant 489 Mar 24 07:07 05-mongodb.yml -rw-rw-r--. 1 vagrant vagrant 1309 Mar 24 07:07 05-mysql.yml -rw-rw-r--. 1 vagrant vagrant 861 Mar 24 07:07 06-php.yml -rw-rw-r--. 1 vagrant vagrant 934 Mar 24 07:07 07-laravel.yml -rw-rw-r--. 1 vagrant vagrant 2693 Mar 24 07:07 08-ruby.yml -rw-rw-r--. 1 vagrant vagrant 1300 Mar 24 07:07 09-python-anaconda.yml -rw-rw-r--. 1 vagrant vagrant 381 Mar 24 07:07 10-pdftotext.yml -rw-rw-r--. 1 vagrant vagrant 305 Mar 24 07:07 10-tesseract.yml -rw-rw-r--. 1 vagrant vagrant 368 Mar 24 07:07 11-nfs-server.yml -rw-rw-r--. 1 vagrant vagrant 242 Mar 24 07:07 12-bind-utils.yml -rw-rw-r--. 1 vagrant vagrant 963 Mar 24 07:07 13-siege.yml -rw-rw-r--. 1 vagrant vagrant 374 Mar 24 07:07 bash_profile.custom -rw-rw-r--. 1 vagrant vagrant 34418 Mar 24 07:07 httpd.conf.custom drwxrwxr-x. 2 vagrant vagrant 149 Mar 24 07:07 ldap_work -rw-rw-r--. 1 vagrant vagrant 978 Mar 24 07:07 main.yml -rw-rw-r--. 1 vagrant vagrant 200 Mar 24 07:07 mongodb-org-4.2.repo.custom -rw-rw-r--. 1 vagrant vagrant 854 Mar 24 07:07 mongod.conf.custom -rw-rw-r--. 1 vagrant vagrant 1714 Mar 24 07:07 nsswitch.conf.custom -rw-rw-r--. 1 vagrant vagrant 1325 Mar 24 07:07 password-auth-ac.custom -rw-rw-r--. 1 vagrant vagrant 67161 Mar 24 07:07 php.ini.custom -rw-rw-r--. 1 vagrant vagrant 726 Mar 24 07:07 README.md -rw-rw-r--. 1 vagrant vagrant 1220 Mar 24 07:07 run.sh -rw-rw-r--. 1 vagrant vagrant 1323 Mar 24 07:07 system-auth-ac.custom drwxrwxr-x. 2 vagrant vagrant 6 Mar 24 07:07 work [vagrant@localhost centos7ansible-master]$ chmod 770 run.sh ⏎ # [vagrant@localhost centos7ansible-master]$ ls -l ⏎ total 208 -rw-rw-r--. 1 vagrant vagrant 252 Mar 24 07:07 00-ntp.yml -rw-rw-r--. 1 vagrant vagrant 413 Mar 24 07:07 01-apache.yml -rw-rw-r--. 1 vagrant vagrant 1058 Mar 24 07:07 02-ldapclient.yml -rw-rw-r--. 1 vagrant vagrant 540 Mar 24 07:07 02-ldapserver.yml -rw-rw-r--. 1 vagrant vagrant 1012 Mar 24 07:07 03-ldif.yml -rw-rw-r--. 1 vagrant vagrant 2373 Mar 24 07:07 04-mecab.yml -rw-rw-r--. 1 vagrant vagrant 489 Mar 24 07:07 05-mongodb.yml -rw-rw-r--. 1 vagrant vagrant 1309 Mar 24 07:07 05-mysql.yml -rw-rw-r--. 1 vagrant vagrant 861 Mar 24 07:07 06-php.yml -rw-rw-r--. 1 vagrant vagrant 934 Mar 24 07:07 07-laravel.yml -rw-rw-r--. 1 vagrant vagrant 2693 Mar 24 07:07 08-ruby.yml -rw-rw-r--. 1 vagrant vagrant 1300 Mar 24 07:07 09-python-anaconda.yml -rw-rw-r--. 1 vagrant vagrant 381 Mar 24 07:07 10-pdftotext.yml -rw-rw-r--. 1 vagrant vagrant 305 Mar 24 07:07 10-tesseract.yml -rw-rw-r--. 1 vagrant vagrant 368 Mar 24 07:07 11-nfs-server.yml -rw-rw-r--. 1 vagrant vagrant 242 Mar 24 07:07 12-bind-utils.yml -rw-rw-r--. 1 vagrant vagrant 963 Mar 24 07:07 13-siege.yml -rw-rw-r--. 1 vagrant vagrant 374 Mar 24 07:07 bash_profile.custom -rw-rw-r--. 1 vagrant vagrant 34418 Mar 24 07:07 httpd.conf.custom drwxrwxr-x. 2 vagrant vagrant 149 Mar 24 07:07 ldap_work -rw-rw-r--. 1 vagrant vagrant 978 Mar 24 07:07 main.yml -rw-rw-r--. 1 vagrant vagrant 200 Mar 24 07:07 mongodb-org-4.2.repo.custom -rw-rw-r--. 1 vagrant vagrant 854 Mar 24 07:07 mongod.conf.custom -rw-rw-r--. 1 vagrant vagrant 1714 Mar 24 07:07 nsswitch.conf.custom -rw-rw-r--. 1 vagrant vagrant 1325 Mar 24 07:07 password-auth-ac.custom -rw-rw-r--. 1 vagrant vagrant 67161 Mar 24 07:07 php.ini.custom -rw-rw-r--. 1 vagrant vagrant 726 Mar 24 07:07 README.md -rwxrwx---. 1 vagrant vagrant 1220 Mar 24 07:07 run.sh -rw-rw-r--. 1 vagrant vagrant 1323 Mar 24 07:07 system-auth-ac.custom drwxrwxr-x. 2 vagrant vagrant 6 Mar 24 07:07 work [vagrant@localhost centos7ansible-master]$
自動インストールの準備が整ったので,./run.sh
を実行する.なおこの処理にはかなりの時間(20分またはそれ以上)を要します.
[vagrant@localhost centos7ansible-master]$ ./run.sh ⏎ #
which: no ansible-playbook in (/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/vagrant/.local/bin:/home/vagrant/bin)
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.tsukuba.wide.ad.jp
* extras: ftp.tsukuba.wide.ad.jp
* updates: ftp.tsukuba.wide.ad.jp
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution
(中略)
PLAY [localhost] *******************************************************************************************************
TASK [Gathering Facts] *************************************************************************************************
ok: [localhost]
TASK [download siege-4.0.5.tar.gz] *************************************************************************************
changed: [localhost]
TASK [unarchive siege-4.0.5.tar.gz] ************************************************************************************
[WARNING]: Consider using the unarchive module rather than running 'tar'. If you need to use command because unarchive
is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get
rid of this message.
changed: [localhost]
TASK [configure siege] *************************************************************************************************
changed: [localhost]
TASK [make siege] ******************************************************************************************************
changed: [localhost]
TASK [make install siege] **********************************************************************************************
changed: [localhost]
TASK [delete siege source dir] *****************************************************************************************
changed: [localhost]
TASK [delete siege source file] ****************************************************************************************
changed: [localhost]
PLAY RECAP *************************************************************************************************************
localhost : ok=8 changed=7 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[vagrant@localhost centos7ansible-master]$
設定した内容を反映させるコマンドも入力する.(または一旦ログアウトしてログインしなおす.)
[vagrant@localhost centos7ansible-master]$ exec $SHELL -l ⏎ [vagrant@localhost centos7ansible-master]$
MongoDB を使う場合は,管理者パスワードを(hogehoge
の部分を適当に変更して)設定しておくと良い.
[vagrant@localhost centos7ansible-master]$ mongo ⏎ MongoDB shell version v4.2.13 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("1e24dd4a-8ff3-49c9-a168-cef62fd0285d") } MongoDB server version: 4.2.13 Welcome to the MongoDB shell. For interactive help, type "help". For more comprehensive documentation, see https://docs.mongodb.com/ Questions? Try the MongoDB Developer Community Forums https://community.mongodb.com > use admin ⏎ switched to db admin > db.createUser({user:"root", pwd:"hogehoge", roles:["root"]}) ⏎ Successfully added user: { "user" : "root", "roles" : [ "root" ] } > quit() ⏎ [vagrant@localhost centos7ansible-master]$
なお,MySQL を使う場合はここで管理者パスワードを設定しておくとよい(コマンドがややこしいので,コピー&ペーストがおすすめです).パスワードは大文字,小文字,記号,数字などを含んだものでなければ設定できません.
[vagrant@localhost centos7ansible-master]$ tmp_password=$(sudo grep 'A temporary password' /var/log/mysqld.log | sed -e 's/^.*: //') ⏎ [vagrant@localhost centos7ansible-master]$ sudo mysqladmin -u root --password="${tmp_password}" password ⏎ mysqladmin: [Warning] Using a password on the command line interface can be insecure. New password: (新しいパスワード) ⏎ Confirm new password: (新しいパスワード) ⏎ Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety. [vagrant@localhost centos7ansible-master]$
この作業によって,Apache(Web サーバ),MySQL(データベースサーバ)などのサーバや,PHP,Laravel,Ruby,Python などの開発環境,Mecab(日本語の形態素解析),Groonga/Mroonga(MySQLで日本語検索を行うためのストレージエンジン)などがインストールされた.