ネットワークの接続は問題ないのに、Chromeが詰まったように遅くなる瞬間がある。
その時はたいてい画面の下に「プロキシスクリプトをダウンロードしています」と出ている。
原因はないはずのプロキシの自動設定を見に行っているためである。
ネットワーク接続はコマンドラインから一発で呼び出すべし。
コマンドプロンプトで以下のコマンドを打ち込む。
inetcpl.cpl
接続タブを選択して、LANの設定を押す。「設定を自動的に検出する」のチェックを外す。
ネットワークの接続は問題ないのに、Chromeが詰まったように遅くなる瞬間がある。
その時はたいてい画面の下に「プロキシスクリプトをダウンロードしています」と出ている。
原因はないはずのプロキシの自動設定を見に行っているためである。
ネットワーク接続はコマンドラインから一発で呼び出すべし。
コマンドプロンプトで以下のコマンドを打ち込む。
inetcpl.cpl
接続タブを選択して、LANの設定を押す。「設定を自動的に検出する」のチェックを外す。
/var/log/secureにrefused connect fromと出ることがある。
これは/etc/hosts.allowに記載されているアドレス以外からのアクセスを拒絶したというメッセージだ。
Failed password for xxxxと出ていたら、SSHが解放されているということなのでSSHのアクセス制限を検討しないとだめである!
条件式に使う変数は定義済みでなければいけないが、定義してあればタスクを実行したいという時にいちいち変数を定義するのは面倒くさい。
そんな時は変数が定義されていれば、その値を評価するという記述ができる。
- name: test shell: echo "only done when hoge == 'hoge'" when: hoge is defined and hoge == 'hoge'
DN2820FYKHにCentOS7をインストールしてみたが、どうにもSSHで外部接続ができない状況。
さらにはCentOS7はいろいろ変わりまくっているので、なれたCentOS6に戻ってもう一度インストール。
minimalインストールのつもりでisoをUSBブートにしたのだが、なぜかネットワークインストールのisoだった模様。
しょうがないのでネットインストールで進める。
ネットワークは優先であれば自動で認識してくれるのでDHCPにして、
さてCentOSのネットワークインストールの難点は、ダウンロード先のURLを選択リスト形式にしてくれればよいものを直接入力形式である。
というわけで以前の自分のブログから以下を指定すればよいことが判明。
ftp://ftp.riken.go.jp/Linux/centos/6/os/x86_64/
CentOS7のネットワークインストールでは6を7に変えればよいのではないか?
ダウンロードに10分ほど時間がかかったが、ぶじインストール完了かと思いきや
「GPTブートディスクを非EFI環境のシステムでお使いです。おそらく、これはBIOSがGPTディスクからの起動をサポートしていないため動かないでしょう。」
という警告通り、インストール後起動しない・・・・
よくわからないが既存のUEFIブートパーティションを残したままやろうとしたのが、よくないのか?
HDDを全部消して入れなおしたら、今度は成功したとさ。
なお、BIOSでUEFIモードを有効にして、さらに起動時にBIOSインストールではなくUEFIモードでインストールすることを選択すると上記の「GPTブートディスクを非EFI環境のシステムでお使いです。おそらく、これはBIOSがGPTディスクからの起動をサポートしていないため動かないでしょう。」はでなくなるとのこと。
Ansibleで外部変数ファイルの読み込み時に
デフォルトを用意しつつ、OS独自の設定も読み込みたい場合に使える技。
vars_files:
- "vars/common.yml"
- [ "vars/{{ ansible_os_family }}.yml", "vars/os_defaults.yml" ]
このように書いておくと、先のファイルが見つかった場合は先のファイルを読み込んでくれて、見つからない場合はos_defaults.ymlを読み込んでくれる。
以下のように定義して、タスクを実行すると必ずSkipされてしまうという謎現象に遭遇していた。
#変数定義 SOME_FLG: True #実施タスク -name: SOME_FLG=Trueの時のみ実行 when: SOME_FLG == "True"
原因は変数定義のTrueの後にスペースが一文字入っていたという凡ミス。
こういったハマリを防ぐためにも、文字列はきちんとダブルクォーテーションで囲うべし。
巨大なインポートデータの時に発生したエラー。どうやらバッファが不足しているらしい。
Webで調べたとおり/etc/my.cnfの設定を変更。
[mysqld]セクションにmax_allowed_packetの列を追加した。
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd # ここを追加 max_allowed_packet = 1280M
mysqlを再起動して以下のコマンドで確認する。
mysql> SHOW VARIABLES LIKE 'max_allowed_packet'; +--------------------+------------+ | Variable_name | Value | +--------------------+------------+ | max_allowed_packet | 1073741824 | +--------------------+------------+ 1 row in set (0.00 sec)
Windows系のファイルの改行コードはCRLFなので、これをLinuxのviで開くと^Mという記号が目障りである。
viの変換を使ってもいいのだが、便利なコマンドがあるのでそれを入れてしまう。
yum install dos2unix dos2unix 変換したいファイル名
何も指定しないとファイルを直接書き換えてしまうので注意。
逆にWindowsのCRLFに変換するにはunix2dosを使うこと。
MySQLもAnsibleから操作できるのだが、pythonのモジュールが必要だと怒られてしまった。
msg: the python mysqldb module is required
AmazonLinuxならばMySQL-pythonパッケージをインストールすればよい。
しかし、pip-2.7経由でansibleを使っていたのでこれでもダメだったようだ。
次はpip-2.7を使ってインストール
pip-2.7 install MySQL-python
You are using pip version 6.0.8, however version 7.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting MySQL-python
Downloading MySQL-python-1.2.5.zip (108kB)
100% |################################| 110kB 4.0MB/s
sh: mysql_config: コマンドが見つかりません
mysql-develをインストールして再実施。今度はgccがなくてエラー・・
無事コンパイル成功したけど、まだmysqldb moduleがないとのエラー・・・・
pip-2.7 freeze | grep -i mysql You are using pip version 6.0.8, however version 7.0.3 is available. You should consider upgrading via the 'pip install --upgrade pip' command. MySQL-python==1.2.5
ちゃんとインストールされているのに!よくわからないので撤退しかかるが、
ここで公式ドキュメントに
「Note
Requires the MySQLdb Python package on the remote host. For Ubuntu, this is as easy as apt-get install python-mysqldb. (See apt.)」
なんとリモート側にインスールが必要だとさ!頑張って操作する方に入れていたという・・・あほかい!
Tomcat8の実行にはJDK7以上が必要となっている。
AmazonLinuxの2015/05現在の最新バージョンであればOpenJDKのランタイムが入っているので、以下のコマンド打ち込めばTomcat8インストールと起動までできる。
yum install tomcat8 /etc/init.d/tomcat8 start
ついでにOpenJDK1.8を入れてみたけど、こちらでも問題なく起動。
Tomcat8ならではの機能は全く使っていないのだが!