Ubuntu 14.04 で GoogleDrive 同期

Ubuntu 14.04 で GoogleDrive 同期

Google Drive のクライアントアプリは
Windows と Mac ではあっても
Linux 系はないため、かわりに同期するアプリを使います

今回は
Grive Tools をインストールします

まず
Ctrl + Alt + t で端末を開きます

次に

sudo add-apt-repository ppa:thefanclub/grive-tools

でリポジトリを追加します

次に

 sudo apt-get update

でリポジトリを更新します

そして

sudo apt-get install grive-tools

でインストールします

インストールが終わったら
画面左上のダッシュボードから
grive で検索し
Grive setup をクリックします

grive

すると設定画面になるので
次 をクリックします

grive2

すると
Grive が アクセス許可を求めてくるので
許可をクリックし
次のページで
Google Drive コードが表示されるので
それを入力し、次をクリックします

grive3

するとインストールが完了となり
現在Google Drive にあるファイルとの自動同期が行われます

grive4

USBを経由したりする必要がなく
Macとの同期も簡単にできるので
おすすめです

Mac に Google Drive インストール

Mac に Google Drive インストール

Android 関連を使うのなら
Google アカウントは持っているし
Gmail などでも使うことが多いので
今回は Google Drive を  Mac にいれます

今後 Ubuntu でも使えるようにする予定です

まず
https://tools.google.com/dlpage/drive?hl=ja
から

Mac用を選んでダウンロード

スクリーンショット 2016-01-24 17.28.59

つぎに
ダウンロードしたファイルを
ダブルクリックすると
ドラッグ&ドロップするようにでるので
ドラッグ&ドロップ

スクリーンショット 2016-01-24 17.40.50

その後 Applications アイコンをクリックすると
一覧がでるので
google Drive をクリック

スクリーンショット 2016-01-24 17.43.00

すると Google Drive の設定開始画面になるので
開始するをクリック

スクリーンショット 2016-01-24 17.43.54

つぎにログイン画面になるので
Google アカウントのパスワードを入力

つぎに解説がでるので
そのままつぎへをクリック

スクリーンショット 2016-01-24 17.46.49

つぎにスマホやタブレットのアプリの紹介がでるけど
次へをクリック

スクリーンショット 2016-01-24 17.47.04

そして他のユーザとの共有の解説がでるけど
次へをクリック

スクリーンショット 2016-01-24 17.48.10

すると設定完了画面になるので
完了をクリックすれば設定完了です

スクリーンショット 2016-01-24 17.48.28

パーマリンク設定変更でリンクエラーになるときの対処

パーマリンク設定変更でリンクエラーになるときの対処

ubuntu14.04 64bit で wordpress をインストールし
パーマリンクの設定を変更後
リンクをしているか調べたけど動作していないので
設定確認

まず mode_rewrite の有効化

 sudo a2enmod rewrite

Module rewrite already enabled

ですでに有効化されているので問題なし

次に設定ファイルへの追記

 sudo vim /etc/apache2/sites-available/000-default.conf 

で設定ファイルを開き

<Directory /var/www/html/wp/>
        AllowOverride All
        Order allow,deny
        allow from all
</Directory>

を最後に追記

設定反映のため apache2 再起動

これでもまだだめなので
.htaccess を wordpress をインストールしたディレクトリに作成

cd /var/www/html/wp/wordpress/
touch .htaccess

書き込み権限がOKなら
これで終わりだけど、権限がないため
ダッシュボードでパーマリンクの設定で

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/wordpress/index.php [L]
</IfModule>

を追記するようにでているので

vim .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/wordpress/index.php [L]
</IfModule>

を追記して保存

これで無事に記事のリンクが可能になります

mac にAnsible をインストール

mac にAnsible をインストール

出先でも開発ができるように
仮想マシンに vagrant + virtualbox は入れたので
今回は Ansible をインストールします

これでサーバ構築や開発環境を簡単に作成できるようになります

まず
Homebrew を使えるようにします

つぎに
Homebrew で Ansible が使えるか確認します

これはターミナルを起動して行います

brew search ansible

すると結果が

homebrew/emacs/ansible-doc		homebrew/versions/ansible18
homebrew/versions/ansible14	homebrew/versions/ansible19

となります

つぎに brew info でパッケージの情報を調べます


brew info ansible

を実行すると


ansible: stable 1.9.3 (bottled), HEAD
Automate deployment, configuration, and upgrading
http://www.ansible.com/home
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb
==> Dependencies
Required: libyaml ✘, openssl ✘

という結果になり、


ansible: stable 1.9.3 

の結果から安定版は1.9.3 ということがわかります

これで情報が得られたので

つぎに brew install で ansible をインストールします


brew install ansible

これでインストールされているかを確認するには
Ansible のバージョンを確認します
[she]]
ansible —version
[/shell]

今回は結果として 1.9.3 となりました

ansible 1.9.3
  configured module search path = None

Ansible wait_for

Ansible wait_for

wait_for モジュールを使うと
port が開くまでとか
ファイルが作成されるまで
という条件での動作設定ができる

使い道としては
ssh が使えるようになるまで、とか
インストールログで complete が表示されるまで
というように設定することになる

もし、動作ではなくて時間だけ指定するのなら
command モジュールで sleep を指定する

tasks:
-name: 8000ポートが開くま10秒間隔でチェック
wait_for: port=8000 delay=10

-name: /var/log/foo.log が作成されるまで
wait_for: path=/var/log/foo.log

-name: lock ファイルが消えるまで
wait_for: path=/var/lock/file.lock state=absent

-name: install.log中に “completed”という文字が現れるまで
wait_for: path=/var/foo/install.log search_regex=completed

これらを元にメモすると
ファイルを指定するときには
wait_for: path=対象のパス
で指定

そして、対象ファイルの削除を条件にするなら
state=absent
を指定

検索する文字列を条件にするのなら
search_regex=対象文字列

ポートを間隔で監視したいのなら
port=対象ポート番号 delay=間隔秒数

というかんじになる

wordpress CSSファイルの設定

wordpress CSSファイルの設定

wordpress のCSSファイルを作成します

@charset "UTF-8";
/*
Theme Name: snowcorp
Description: snowpool theme test
Author: snowpool
Author URI: https://wp.developapp.net/
Version: 1.0
*/
body{
  margin: 0;
  font-family: 'メイリオ', 'Hiragino Kaku Fothic Pro',sans-serif;
  line-height: 1.5;
}

とします

コメントアウト部分はテーマに関する情報になります
この部分はダッシュボードでテーマの情報として
出力されます

Theme Name はテーマの名前
Description はテーマの説明
Author は製作者
Author URI は製作者のURL
Version はテーマのバージョンになります

なお css の記述には emmet を入れて
http://docs.emmet.io/cheat-sheet/
にあるようなチートシートをみながら記述すると効率的です

次に常に最新のCSSを読み込むようにします
これはキャッシュの影響でCSSが最新ではない
ということを防ぐためです

    <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>">

に追記します

?ver=<?php echo date('U'); ?>

を加えることでURLが別のファイルと認識するようになります

    <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>?ver=<?php echo date('U'); ?>">

として保存します

次に関数を書くファイルを作成します

functions.php を作成し
内容は php 開始タグだけにします

<?php

閉じタグを付けないのは、トラブル防止のためです

せっかくなので、これも github に保存します

git add style.css 
git add functions.php
git commit -m "style.css functions.php 追加"
git push origin master

これで保存できました

wordpress テンプレファイル作成

wordpress テンプレファイル作成

ベースとなるテンプレファイルを作成し
これを元にテンプレを作成します

header.php

<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <title>
      <?php wp_title('|', true, 'right'); ?>
      <?php bloginfo('name'); ?>
    </title>

    <meta name="viewport" content="width=device-width,  initial-scale=1.0">

    <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>">
    <?php wp_head(); ?>
  </head>
  <body <?php body_class(); ?>>

index.php と single.php は

<?php get_header(); ?>


<?php get_footer();  ?>

fotter.php は

<?php wp_footer(); ?>
</body>
</html>

としました

せっかくなので
github に保存しておくことにします

 git clone git@github.com:Snowpooll/wordpress_test.git
cd wordpress_test/

で移動します

次にファイルを git add で追加します
複数あるので、これはスペース区切りで追加できますが
拡張子ですべて選択するほうが楽なので

cp ../*.php .
 git add *.php

としました

そして commit します

git commit -m "テンプレファイル追加"

そしてこれを

git push origin master 

で反映します

これで github に保存できました

playbook の解説メモ

playbook の解説メモ

playbook は大きくわけて3つに別れます

tartget セクション
これは実行対象の設定

vars セクション
これは変数の設定

tasks セクション
これは実行する taskの設定

target セクションは
hosts: 対象ホスト
remote_user: 対象ユーザ
sudo: sudo を使うならyes 使わないのなら no

の部分になります

vars セクションでは
変数の設定をしますが
vars_prompt:
を使うと
変数の値をユーザに入力させることができます
これはユーザ名とかパスワードを入力するときに使えます

実験として

vim add.yml

として内容を

    ---
    - hosts: all
      sudo: yes
    #  vars:
    #    username: snowpool
      vars_prompt:
        username: "Enter username"
      tasks:
        - name: add a new user
          user: name={{username}}

として

ansible-playbook add.yml -K

とするとユーザ名を入力するようになります

sudo password: 
Enter username: : 

となり

入力したユーザが追加されます

vagrant ではないので、実行時に -K オプションをつけて
sudo パスワードを入力するようにします

なお、
vars:

vars_prompt:
で設定した変数を使うときには
変数名を
{{}}で囲みます

今回なら
username が変数名なので
{{username}}
となります

ansible 設定ファイルの作成

ansible 設定ファイルの作成

毎回 -i オプションをつけるというのは
間違いやすいので
設定ファイルを作成し、指定せず実行できるようにします

vim ansible.cfg

でファイルを作ります

[defaults]
hostfile = ./hosts

として保存します

前回は

ansible all -i hosts -m command -a "uptime"

としましたが、
今回は -i hosts を省略して実行してみます

 ansible all -m command -a "uptime"

これで実行しても同じ結果になります

これで簡単にできるようになったので
次は playbook と呼ばれる処理を記述したものを作成
これを実行するようにします

今回はコマンドを実行しましたが
Ansible の場合
コマンドではなく
モジュールとよばれる動作をまとめたものを使えます

そして、このモジュールは
task
というモジュールに引数をまとめた設定として作成できます

playbook とは
このtask つまり行う処理をまとめたものです

コマンドをまとめていろいろ行う
シェルスクリプトのようなものです

この playbook は YAML 形式で書きます

YAML の書き方の詳細については
プログラマーのための YAML 入門 (初級編)


ドットインストールのYAML入門

が参考になります

書き方メモとしては
行頭に – を書くとシーケンスという配列になり

空白2つぐらいでインデントによるデータ階層構造になります
インデントにtab は使えないので注意

あとはマッピングといって半角スペースでインデントすると
キーと値のペアのハッシュになります

コメントアウトは # になりますので
このあたりはシェルスクリプトに似てます

playbook の項目としては
hosts: 対象ホスト名

sudo: 管理者権限について yes no を指定
必要なら yes

remote_user
実行ユーザ名

vars:
変数の指定

tasks: モジュールの指定
ここへ -name: をつけることで task の名前を指定できます
どちらかというと git のコメントのようなものです

モジュールについては
公式ドキュメントを見ます
http://docs.ansible.com/ansible/modules_by_category.html

この中からやりたいことに対応したモジュールを使います

例えば、
AnsibleをUbuntuのローカルで使う

のように git をインストールしたいのなら

apt – Manages apt-packages

を使用します

今回の場合
apt: pkg=

パッケージのビルド依存関係をインストール
となります

とりあえず git のインストールをしてみます

vim git.yml

として
内容を

---
 - hosts: develop
   user: snowpool
   tasks:
     - name: "apt-get install git"
       apt: pkg=git
       sudo: yes

として保存します

playbook を実行するには
ansible-playbook コマンドを使います

ansible-playbook git.yml -K

とすると
作成した git.yml を実行します

このとき -K をオプションでつけると
sudoのパスワードを要求するようになります
このKは大文字です
これを忘れると、そのまま止まったままになってしまうので
注意が必要です

なお、ansible.cfg で hosts ファイルを指定しているので
インベントリファイルの指定は必要ありません

ansible で ubuntu の設定(初期設定)

ansible で ubuntu の設定(初期設定)

最近、ノートパソコンでログインできなくなったため
今度開発環境などを設定するときに
効率的にできるように
Ansible で設定するようにします

まずはテストとして
Virtualbox で Ubuntu 14.04 6bit をインストール
これに実験していきます
ansible install

まずは Ansible をインストールするため

sudo apt-add-repository ppa:rquillo/ansible
sudo apt-get update
sudo apt-get install ansible

でインストール

Ansibleを使うには
インベントリファイル
対象ホストをまとめたもの

playbook
taskとよばれる操作をまとめたもの

ansible.cfg
Ansible の設定を記述したもの

この3つが必要

インベントリファイルは
ini形式で記述する

このファイル形式については
INIファイルの基礎知識

を参考に
コメントアウトは
行頭に ; で行うことになる

インベントリファイルができればとりあえずは実行はできる

ファイルをまとめてわかりやすくするため

mkdir ansible_test
cd ansible_test/

として、ファイルの置き場を作成しておきます

次に実験で Virtualbox にインストールした
仮想マシンへ行うけど
インストールしたばかりの ubuntu では
ssh での接続ができないため
virtualbox 側の ubuntu にログインし
端末を ctrl + Alt + t で起動し

sudo apt-get install openssh-server

で ssh 接続できるようにする

次にネットワーク設定を
NATから
ブリッジアダプターに変更

ansible

次に

ifconfig

でIPアドレスを確認

ansible2

次に ssh で実際に接続できるかを確認

ユーザ名が同じなら

ssh 192.168.128.178

というようにIPアドレスをいれれば
パスワードを聞かれるので、合っていれば接続できる

The authenticity of host '192.168.128.178 (192.168.128.178)' can't be established.
ECDSA key fingerprint is ce:92:27:fe:a3:9b:3b:bb:1d:df:89:7e:45:ae:e4:00.
Are you sure you want to continue connecting (yes/no)? 

と聞かれるので yes を入力

これでログインできれば成功なので
ctrl + d でログアウト

ssh での接続ができるのを確認できたので
公開鍵認証でインストールできるようにします

ssh-keygen -t rsa

を実行すると

Generating public/private rsa key pair.
Enter file in which to save the key (/home/snowpool/.ssh/id_rsa): 

となりファイル名を求められます
そのままだと id_rsa になります

今回は ansibleにします

次に

Enter passphrase (empty for no passphrase): 

となりパスワードを設定するのですが
空欄でもOKです
とりあえずパスワードは練習ということでなしです

すると

Enter same passphrase again: 

となり。確認のためもう一回いれてと言われますので
もう一回入力します

これで
ansible
ansible.pub
の2つのファイルが作成されます

この.pub がついている方を
仮想マシンに転送します

その前に、転送するときにIPを毎回うつのは面倒で
間違えやすいので

vim ~/.ssh/config

で設定ファイルを作成し

Host develop
 HostName 192.168.128.178

とすることで
IPアドレスではなく、develop でアクセスできるようにします

ssh-copy-id develop

とするとコピーできるのですが
このときにログインパスワードを求められます

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 2 key(s) remain to be installed -- if you are prompted now it is to install the new keys
snowpool@192.168.128.178's password: 

これで成功するとログインするときに

ssh develop

とするだけでパスワードなしでログインができるようになります

ログインできたら
ctrl + d でログアウトしておきます

次に接続に必要なインベントリファイルを作成します

vim hosts

でインベントリファイルを作成します

[develop]
;install ip address
192.168.128.178

というように
[グループ名]
というようにわけることができます

まずは実験で、システムの稼働時間を表示する
uptime コマンドを実行

uptime コマンドについては
http://cmd.misty.ne.jp/refference/uptime.html
を参考に

ansible all -i hosts -m command -a "uptime"

とすると
対象ファイル、今回なら
ubuntu 14.04 で uptime コマンドが
実行されます

-i hosts というようにインベントリファイルを
指定しないと
No hosts matched
と表示されるので注意

成功すると文字が緑色で表示されます

ansible3