・resolv.confで複数DNSサーバを指定した場合、もし最初のDNSサーバが落ちてたら2番目のDNSサーバにクエリを出すが、もし最初のDNSサーバが落ちてなくてかつ、検証用に立てたDNSサーバでfowardersとか再帰クエリとかちゃんと設定してなくて、インターネット上に実在するドメインやFQDNなどのリソースが引けなくなってた場合、リゾルバはエラーを返すのか?
それともresolv.confの2番目のDNSサーバにクエリを出してくれるのか?
tag:DNS
・resolv.confで複数DNSサーバを指定した場合、もし最初のDNSサーバが落ちてたら2番目のDNSサーバにクエリを出すが、もし最初のDNSサーバが落ちてなくてかつ、検証用に立てたDNSサーバでfowardersとか再帰クエリとかちゃんと設定してなくて、インターネット上に実在するドメインやFQDNなどのリソースが引けなくなってた場合、リゾルバはエラーを返すのか?
それともresolv.confの2番目のDNSサーバにクエリを出してくれるのか?
tag:DNS
・ミドルウェアやアプリを実際に認証、認可してみる
・レプリケーション設定(active-active)
・各コンポーネント(ケルベロス、sssd、ldapなど)をFreeIPAから切り離してそれぞれ単独で使った場合との違いについて考察する
・Linuxのローカルな名前解決(nss,dns)、認証(pam)、認可との違い
・ADとの比較
・ADとの協調設定
・他のSSOプロトコル(OAuth、SAML)との比較
・FreeIPAの展望
④日本語ドキュメント(2.9_ja)
※Ansibleをインストールしてplaybookを作って実際にapacheをインストールするまでの手順を紹介している
・ansibleはコントロールノードと呼ばれる1台のサーバにインストールする
・ansibleはエージェントレスでコントロールノードで実行したansibleからssh鍵認証でコントロールする対象ノード(ターゲットノード)にアクセスしてリモートコマンドを実行する
・ansibleはデーモンではなく使うときだけ実行して使い終わったら落とすソフトウェア
※上記④の中の
⑤インストール(2.9_ja)
⑥要件(2.9_ja)
python2かpython3が必要で、/usr/bin/pythonで実行しようとする
※/usr/bin/pythonはcentos7のデフォルトでは/usr/bin/python2のシンボリックリンクになってる。
[centos7copy]$ iptables -F
[centos7copy]$ setenforce 0
centos7の場合はansibleパッケージはepelリポジトリから取ってくる
※ここからも取ってこれる。
epelリポジトリがyumリポジトリに登録未済なら下記で登録する。
yum install epel-release
すでにepelリポジトリが登録済みなら、
[centos7copy]$ cd /etc/yum.repos.d/
[centos7copy]$ cp -p epel.repo epel.repo.org
[centos7copy]$ vi epel.repo
---(編集)---
[centos7copy]$ diff epel.repo.org epel.repo
6c6
< enabled=0
---
> enabled=1
centos7copy]$ yum install ansible -y
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 6.8 kB 00:00:00
* base: ftp-srv2.kddilabs.jp
* epel: download.nus.edu.sg
* extras: ftp-srv2.kddilabs.jp
* updates: ftp-srv2.kddilabs.jp
epel | 4.7 kB 00:00:00
(1/2): epel/x86_64/updateinfo | 1.0 MB 00:00:08
(2/2): epel/x86_64/primary_db | 6.9 MB 00:00:36
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.9.14-1.el7 will be installed
--> Processing Dependency: python-httplib2 for package: ansible-2.9.14-1.el7.noarch
--> Processing Dependency: python-jinja2 for package: ansible-2.9.14-1.el7.noarch
--> Processing Dependency: python-paramiko for package: ansible-2.9.14-1.el7.noarch
--> Processing Dependency: python2-jmespath for package: ansible-2.9.14-1.el7.noarch
--> Processing Dependency: sshpass for package: ansible-2.9.14-1.el7.noarch
--> Running transaction check
---> Package python-jinja2.noarch 0:2.7.2-4.el7 will be installed
--> Processing Dependency: python-babel >= 0.8 for package: python-jinja2-2.7.2-4.el7.noarch
--> Processing Dependency: python-markupsafe for package: python-jinja2-2.7.2-4.el7.noarch
---> Package python-paramiko.noarch 0:2.1.1-9.el7 will be installed
---> Package python2-httplib2.noarch 0:0.18.1-3.el7 will be installed
---> Package python2-jmespath.noarch 0:0.9.4-2.el7 will be installed
---> Package sshpass.x86_64 0:1.06-2.el7 will be installed
--> Running transaction check
---> Package python-babel.noarch 0:0.9.6-8.el7 will be installed
---> Package python-markupsafe.x86_64 0:0.11-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=========================================================================================================
Package Arch Version Repository Size
=========================================================================================================
Installing:
ansible noarch 2.9.14-1.el7 epel 17 M
Installing for dependencies:
python-babel noarch 0.9.6-8.el7 base 1.4 M
python-jinja2 noarch 2.7.2-4.el7 base 519 k
python-markupsafe x86_64 0.11-10.el7 base 25 k
python-paramiko noarch 2.1.1-9.el7 base 269 k
python2-httplib2 noarch 0.18.1-3.el7 epel 125 k
python2-jmespath noarch 0.9.4-2.el7 epel 41 k
sshpass x86_64 1.06-2.el7 extras 21 k
Transaction Summary
=========================================================================================================
Install 1 Package (+7 Dependent packages)
Total download size: 20 M
Installed size: 115 M
Downloading packages:
(1/8): python-markupsafe-0.11-10.el7.x86_64.rpm | 25 kB 00:00:02
(2/8): python-jinja2-2.7.2-4.el7.noarch.rpm | 519 kB 00:00:02
(3/8): python-babel-0.9.6-8.el7.noarch.rpm | 1.4 MB 00:00:02
(4/8): python-paramiko-2.1.1-9.el7.noarch.rpm | 269 kB 00:00:03
(5/8): ansible-2.9.14-1.el7.noarch.rpm | 17 MB 00:01:23
(6/8): sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00:00
(7/8): python2-httplib2-0.18.1-3.el7.noarch.rpm | 125 kB 00:00:00
(8/8): python2-jmespath-0.9.4-2.el7.noarch.rpm | 41 kB 00:00:01
---------------------------------------------------------------------------------------------------------
Total 237 kB/s | 20 MB 00:01:25
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : sshpass-1.06-2.el7.x86_64 1/8
Installing : python2-httplib2-0.18.1-3.el7.noarch 2/8
Installing : python-babel-0.9.6-8.el7.noarch 3/8
Installing : python2-jmespath-0.9.4-2.el7.noarch 4/8
Installing : python-paramiko-2.1.1-9.el7.noarch 5/8
Installing : python-markupsafe-0.11-10.el7.x86_64 6/8
Installing : python-jinja2-2.7.2-4.el7.noarch 7/8
Installing : ansible-2.9.14-1.el7.noarch 8/8
Verifying : python-markupsafe-0.11-10.el7.x86_64 1/8
Verifying : python-paramiko-2.1.1-9.el7.noarch 2/8
Verifying : python2-jmespath-0.9.4-2.el7.noarch 3/8
Verifying : python-babel-0.9.6-8.el7.noarch 4/8
Verifying : python2-httplib2-0.18.1-3.el7.noarch 5/8
Verifying : ansible-2.9.14-1.el7.noarch 6/8
Verifying : sshpass-1.06-2.el7.x86_64 7/8
Verifying : python-jinja2-2.7.2-4.el7.noarch 8/8
Installed:
ansible.noarch 0:2.9.14-1.el7
Dependency Installed:
python-babel.noarch 0:0.9.6-8.el7 python-jinja2.noarch 0:2.7.2-4.el7
python-markupsafe.x86_64 0:0.11-10.el7 python-paramiko.noarch 0:2.1.1-9.el7
python2-httplib2.noarch 0:0.18.1-3.el7 python2-jmespath.noarch 0:0.9.4-2.el7 sshpass.x86_64 0:1.06-2.el7
Complete!
リポジトリ設定をdisableに戻す
[centos7copy]$ mv epel.repo.org epel.repo
mv: overwrite ‘epel.repo’? y
落ちてきたのはpython2のライブラリなので念のため確認
[centos7copy]$ ll /usr/bin/python
lrwxrwxrwx. 1 root root 16 Nov 9 01:51 /usr/bin/python -> /usr/bin/python2
[centos7copy]$ rpm -ql ansible | wc -l
17308
すげえ多い。
[centos7copy]$ rpm -ql ansible | grep "/usr/lib/python2.7/site-packages" | wc -l
17243
[centos7copy]$ rpm -ql ansible | grep "/usr/lib/python2.7/site-packages" | head
/usr/lib/python2.7/site-packages/ansible
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info/PKG-INFO
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info/SOURCES.txt
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info/dependency_links.txt
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info/not-zip-safe
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info/requires.txt
/usr/lib/python2.7/site-packages/ansible-2.9.14-py2.7.egg-info/top_level.txt
/usr/lib/python2.7/site-packages/ansible/__init__.py
/usr/lib/python2.7/site-packages/ansible/__init__.pyc
[centos7copy]$ rpm -ql ansible | grep "/usr/lib/python2.7/site-packages" | tail
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-gcp.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-hcloud.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-opennebula.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-openshift.kubeconfig.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-scaleway.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-tower.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-vcenter.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/cloud-config-vultr.ini.template
/usr/lib/python2.7/site-packages/ansible_test/config/inventory.networking.template
/usr/lib/python2.7/site-packages/ansible_test/config/inventory.winrm.template
[centos7copy]$ rpm -ql ansible | grep -v "/usr/lib/python2.7/site-packages" | grep -v "/usr/share"
/etc/ansible
/etc/ansible/ansible.cfg
/etc/ansible/hosts
/etc/ansible/roles
/usr/bin/ansible
/usr/bin/ansible-2
/usr/bin/ansible-2.7
/usr/bin/ansible-config
/usr/bin/ansible-connection
/usr/bin/ansible-console
/usr/bin/ansible-console-2
/usr/bin/ansible-console-2.7
/usr/bin/ansible-doc
/usr/bin/ansible-doc-2
/usr/bin/ansible-doc-2.7
/usr/bin/ansible-galaxy
/usr/bin/ansible-galaxy-2
/usr/bin/ansible-galaxy-2.7
/usr/bin/ansible-inventory
/usr/bin/ansible-playbook
/usr/bin/ansible-playbook-2
/usr/bin/ansible-playbook-2.7
/usr/bin/ansible-pull
/usr/bin/ansible-pull-2
/usr/bin/ansible-pull-2.7
/usr/bin/ansible-test
/usr/bin/ansible-vault
/usr/bin/ansible-vault-2
/usr/bin/ansible-vault-2.7
[centos7copy]$ vi /etc/yum.repos.d/epel.repo
----(編集)----
[centos7copy]$ cat /etc/yum.repos.d/epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
----(略)----
[centos7copy]$ yum install -y python-argcomplete
----(略)----
Installed:
python2-argcomplete.noarch 0:1.7.0-4.el7
Complete!
[centos7copy]$ rpm -ql python2-argcomplete
/etc/bash_completion.d/python-argcomplete.sh
/usr/bin/activate-global-python-argcomplete
/usr/bin/python-argcomplete-check-easy-install-script
/usr/bin/python-argcomplete-tcsh
/usr/bin/register-python-argcomplete
/usr/lib/python2.7/site-packages/argcomplete
/usr/lib/python2.7/site-packages/argcomplete-1.7.0-py2.7.egg-info
/usr/lib/python2.7/site-packages/argcomplete-1.7.0-py2.7.egg-info/PKG-INFO
/usr/lib/python2.7/site-packages/argcomplete-1.7.0-py2.7.egg-info/SOURCES.txt
/usr/lib/python2.7/site-packages/argcomplete-1.7.0-py2.7.egg-info/dependency_links.txt
/usr/lib/python2.7/site-packages/argcomplete-1.7.0-py2.7.egg-info/not-zip-safe
/usr/lib/python2.7/site-packages/argcomplete-1.7.0-py2.7.egg-info/top_level.txt
/usr/lib/python2.7/site-packages/argcomplete/__init__.py
/usr/lib/python2.7/site-packages/argcomplete/__init__.pyc
/usr/lib/python2.7/site-packages/argcomplete/__init__.pyo
/usr/lib/python2.7/site-packages/argcomplete/bash_completion.d
/usr/lib/python2.7/site-packages/argcomplete/bash_completion.d/python-argcomplete.sh
/usr/lib/python2.7/site-packages/argcomplete/compat.py
/usr/lib/python2.7/site-packages/argcomplete/compat.pyc
/usr/lib/python2.7/site-packages/argcomplete/compat.pyo
/usr/lib/python2.7/site-packages/argcomplete/completers.py
/usr/lib/python2.7/site-packages/argcomplete/completers.pyc
/usr/lib/python2.7/site-packages/argcomplete/completers.pyo
/usr/lib/python2.7/site-packages/argcomplete/my_argparse.py
/usr/lib/python2.7/site-packages/argcomplete/my_argparse.pyc
/usr/lib/python2.7/site-packages/argcomplete/my_argparse.pyo
/usr/lib/python2.7/site-packages/argcomplete/my_shlex.py
/usr/lib/python2.7/site-packages/argcomplete/my_shlex.pyc
/usr/lib/python2.7/site-packages/argcomplete/my_shlex.pyo
/usr/share/doc/python2-argcomplete-1.7.0
/usr/share/doc/python2-argcomplete-1.7.0/README.rst
/usr/share/licenses/python2-argcomplete-1.7.0
/usr/share/licenses/python2-argcomplete-1.7.0/LICENSE.rst
上記のrpmパッケージを利用してインストールした場合は、
/etc/ansible/ansible.cfg
Ansible では、環境変数を使用した設定も可能です。 これらの環境変数が設定されている場合、設定ファイルから読み込まれる設定よりもこちらのほうが優先されます。
「Ansible Configuration Settings 」から利用可能な環境変数の詳細な一覧を取得できます
コマンドラインにすべての設定オプションが存在するわけではありません。最も便利で一般的と思われるものだけが存在します。 コマンドラインでの設定は、設定ファイルおよび環境を介して渡される設定よりも優先されます。利用可能なオプションの詳細な一覧は
ansible-playbook および ansible で入手できます。
[centos7copy]$ wc -l /etc/ansible/ansible.cfg
490 /etc/ansible/ansible.cfg
[centos7copy]$ cat /etc/ansible/ansible.cfg
----(略)----
109 # logging is off by default unless this path is defined
110 # if so defined, consider logrotate
111 #log_path = /var/log/ansible.log
----(略)----
156 # by default, if a task in a playbook does not include a name: field then
157 # ansible-playbook will construct a header that includes the task's action but
158 # not the task's args. This is a security feature because ansible cannot know
159 # if the *module* considers an argument to be no_log at the time that the
160 # header is printed. If your environment doesn't have a problem securing
161 # stdout from ansible-playbook (or you have manually specified no_log in your
162 # playbook on all of the tasks where you have secret information) then you can
163 # safely set this to True to get more informative messages.
164 #display_args_to_stdout = False
----(略)----
210 # by default callbacks are not loaded for /bin/ansible, enable this if you
211 # want, for example, a notification or logging callback to also apply to
212 # /bin/ansible runs
213 #bin_ansible_callbacks = False
----(略)----
268 # prevents logging of task data, off by default
269 #no_log = False
270
271 # prevents logging of tasks, but only on the targets, data is still logged on the master/controller
272 #no_target_syslog = False
----(略)----
本でも読めや