エンジニア的な技術的なブログ

webエンジニアの開発の知見を書きます。PHP、javascript、postgres、mysql、あと多少のインフラ周りとか。

エンジニアなら週2、3日から働ける!時短ワークで転職より幸せなフリーランスに!

フルタイムで正社員、安定していていいですがせっかくエンジニアになったなら、
週2~3日だけ働く楽チンなワークスタイルにも憧れますよね


じつは今、そういった時短案件を中心に扱っている仲介エージェントがいます。
人脈がなかったり営業先がなくてもそんなエージェントに登録するだけでエンジニアなら簡単に理想の週3日のワークスタイルが実現します。



有名どころだとITプロパートナー、ミッドワークス、Flexy、レバテック・フリーランスなどがあります。

登録は無料なので、まずは気軽に登録してみてくださいね!

ansibleのシンタックスチェック、デバッグとか|開発効率上げる

修正したらまずはこれ|シンタックスチェック
ansible-playbook -i --syntax-check


実行前にタスクに抜け漏れがないか確認
ansible-playbook -i --list-tasks


ミスが許されない場面に使いたいdry run
ansible-playbook -i --check --diff

diffを使って、変更内容まで確認しよう!


わかるとは思うけど、hostsにはインベントリファイルでplaybook.ymlには実行するプレイブックです。

ansibleでscpする|逆にリモートファイルをコピーする

ansibleでstructure as codeのために開発に着手しだしたのでメモ

まず、公式サイトをメモっておく

http://docs.ansible.com/ansible/

 


リモートサーバのファイルをリモートにコピーする

ポイントは remote_src=True
これにしとくとsrc=のパスでリモートサーバを探しに行く
defaultはFalseだから、これやらないとlocalのパスを検索にいくよ


yaml形式なのでスペースに注意

- hosts: test

  become: yes

  become_method: sudo

  vars:

   user_name: vagrant

   src_file: /home/vagrant/tmp.csv

  tasks:

    - user: name={{ user_name }}

    - name: copy httpd file

      copy: src={{ src_file }} remote_src=True dest=/home/{{ user_name }}/tmp2.csv


逆にSCPにしたいならremote_srcをなくせばいいわけです


ansibleってモジュール覚えきれねー
shellモジュールでゴリ押ししたくなるよね、、、、

webDAVにcurlからファイルDLとかアップロード(書き込み)する方法

いまどきDAVなんて使うかよ...
と思いますが、連携相手がそれしかできないっていうならしょうがない


ファイルをゲットする方法
curl --user [user_name]:[pass] -k --proxy http://10.40.xxx.xxx:3128 -O https://100.xxx.xxx.xxx/regist/path/up.file.txt




ファイルを作ってから、それを指定してアップロードする。
一旦ファイルを作んないといけない

curl --user [user_name]:[pass] -k --proxy http://10.40.141.49:3128 -T up.fie.txt -O https://100.xx.xx.xx/path/up.file.txt

 忘れがちなnmapの使い方メモ

たまーにしか使わないので、nmapを忘れる。
いちいちググるのが面倒なので役立つブログをリスト化しておく

まぁ -sT -POあたりを知ってれば良いといえば良いけど。

このブログを読んだ人はnmapをアタックに使っちゃダメよ
ホワイトハッカーであれ。

基本のコマンド集。
itpro.nikkeibp.co.jp

変化球の使い方[悪用厳禁]
orebibou.com


↑な内容ネットに載せていいのか?
このブロガーの人は攻めてるな、個人的には好きだけど。

プロキシサーバの設定(squid)

とあるデータセンターに申請するIPアドレスを1本にしないといけなくなった。

複数台あるサーバからアクセスする必要があるんだけど、そこはプロキシを経由させて解決しよう!
っていうアルアルな手段

でも初めてプロキシサーバの構築ってやるから記念にメモ

使ったのはsquid
今回はコンテンツのキャッシュとかしないけど、ネット上にドキュメントが多いから採用。
nginxとかでもできるらしい。


環境
linux centOS7.x


手順
1.yumでインストール
2. squid.confを書き換え
3.初期化
4. squidを起動
5. firewallに穴あける


まずはインストールする
yum install squid


次はconfの設定
vi /etc/squid/squid.conf


ローカルネットワークからだけのアクセスなのか、外部アクセスなのかによっても設定は変わる
外部からアクセスするなら、設定の追記が必要だよ

ex) 以下squid.confの中身

                                                                                                                                                                  • -

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl hld src xxx.xxx.xxx.xxx <= ここに通したい外部アクセス元のIPを入れる

~省略


#許可を追加する。ほかのhttp_accessよりも前のほうに書いておくと確実かも。
http_access allow hld


#listenポートの指定。squidのデフォは下記らしい
http_port 3128

                                                                                                                                                                  • -


これはテスト用に外部からのアクセス許可しているけど、本当は踏み台にされて危ないのでやめようね。
やるならちゃんと設定しようね。


squidを初期化(何をしているのかはよく分かってない。。。)
squid -z



squidを起動
systemctl start squid


centOS7だと、起動失敗してもエラー出ません!
プロセスみて確認しよう
ps aux | grep squid



デーモンがいればOK


あとはfirewallなんだけど、今回はフュージョンクラウドを使うことになったので、ファイヤーウォールグループというやつを設定。
3128に穴を開ける

この辺はawsと同じ!




これでまたスキル幅がひとつ広がったよ。

linuxにswapファイル作成方法と、swaponの自動起動を安全にやる方法

最近、フュージョンクラウドを使い始めたんだけど
一番低スペックなmicroだとなんとswap領域がありません!

ちなみにメモリは〜500MB(〜ってなに?と思う)


これはなんだ?もっと高スペックを使えというフュージョン側のしわざだな


スペックなんてあげない。俺は低価格のままでいくの。

centOS 6.7


swapファイル作成

まずはswap領域にswapファイルを使いましょう。

qiita.com


作り方は、他のサイトに頼っちゃう。
これでOKってことにはなりません。

サーバ起動時に自動でswaponする方法

これだとサーバ起動時に手動で

# swapon /swapfile



をしないといけません。



サーバ起動と同時にswaponするためには、本来ならfdiskに書き込む必要があります。



しかしfdiskは記述を失敗するとサーバが2度と立ち上がらなくなる恐怖のやつ。



だから、今回はfdiskを使わずして設定する方法です。



今回の見えている事として、mysqlを立ち上げる前にswaponができれば問題ない事までは判明していました。



だから、mysqlの自動起動をoffにして

chkconfig mysqld off



起動時の自動スクリプトから起動させる。

vi /etc/rc.d/rc.local



 swapon /swapfile

 /etc/init.d/mysqld start





これでOK。

fdiskをやる必要なく設定できました。



/etc/init.d/mysqldのstart直前に書けばいいじゃん!とか思っている人あまいですぜ
どうやらchkconfigの自動起動のときにはmysqldを叩いてないから(たぶんmysqld_safeを直接実行してる?)これだとダメ。

まぁもしかしたら/usr/bin/mysqld_safeに書けばいいのかもしれないけどね。
自動起動が何をしているのか分かんないし、調べるのは時間かかるからrc.localに書いた方が早いじゃんと思った感じです。

このへん、詳しい方でしたらコメントとかで教えてもらえるとめちゃ嬉しいですー