ansibleでCentOS8 にmariadbインストールし、rootパスワードを変更しようとしたらはまるの巻
ちょっとphp8も出たし、CentOSも8への移行が進むだろうしとうことで、
最新のテスト環境つくれるようにしとこうとansibleのスクリプトをいじってたところ、
いままで普通にできてた、mariadbのインストール時にパスワードを変更するのにハマった。
fatal: [php8]: FAILED! => {"changed": false, "msg": "unable to connect to database, check login_user and login_password are correct or /root/.my.cnf has the credentials. Exception message: (1698, \"Access denied for user 'root'@'localhost'\")"}
root でログインできないよ!って言われる。
あれやこれや試した後、
CentOS8で、ansibleが使うライブラリが変更になっていた件を思い出した。
もともと、MySQL-python をつかっていたのだけど、CentOS8からはパッケージがなく、
python3-PyMySQL 変更していたのだった。
すると、こういう記事があり、どうもPyMySQLだとsocket接続じゃなく、TCP接続を優先するとのことで、 login_unix_socket を使ってみてという記述があった。
えー、と思いつつ設定したら通った。
普段からやってないと、色々とハマるなーとおもった暑い日でした。
yumでインストールするremi-php74パッケージ名が実は色々変更になっている件
いつものように、digitaloceanで、vagrant provision すると
なぜか、php-pecl-zip がインストールできず、php-pecl-jsonc はそんなパッケージない!と怒られた。
うーん、うーんと、頭を悩ませていると、こういうことらしい。
Ex:
* json => php-pecl-json => php-pecl-jsonc (PHP 5.x) => php-json (PHP 7.x) => php-common (PHP 8.x)
* mysqli => php-mysqlnd
* xmlwriter => php-xml
* redis => php-pecl-redis => php-pecl-redis4 => php-pecl-redis5
* zip => php-pecl-zip
* sodium => php-pecl-libsodium => php-pecl-libsodium2 => php-sodium
* etc
コピペだと気づかないけど、気をつけようっと。
Macで スタンドアローンでswfファイルを再生する
結論から言うと、普通にadobeのサイトから落としても、スタンドアローン版はインストールされない。
下記のデバッグダウンロードから、
Download the Flash Player projector
を選択して別途インストールすればいけました。
小一時間悩んだので。。。
BacklogとJenkinsおじさんをくっつけたくて・・・
BacklogのGitにpushした時に、自動的にテストサイトに反映させたくて、
webhookを使ってみました。
そのために、
1. Jenkins1.5系だったので、2系最新にアップデート
2. Generic WebHook Triggerプラグインを追加
3. BacklogのGitにpushしてテスト
してみました。
まず、1でアップデートがうまくいかず四苦八苦。
結果Jenkins2だと、AJPサポートが廃止されたようで、
/etc/sysconfig/jenkinsを変更したり、
不要な起動オプションを削除したり、
cacheファイルを削除したりといろいろ試行錯誤してようやくJenkins2にアップデート
最初、下記のプラグインでjenkinsを叩こうと思ったが、tokenは設定下にも関わらずうまく動かず認証エラーがでて断念。
Authentication required
<!--
You are authenticated as: anonymous
Groups that you are in:Permission you need to have (but didn't): hudson.model.Hudson.Read
... which is implied by: hudson.security.Permission.GenericRead
... which is implied by: hudson.model.Hudson.Administer
--></body></html>
https://wiki.jenkins.io/display/JENKINS/Build+Token+Root+Plugin
そこで Generic WebHook Trigger を使ってみたところ、あっさり通った。
ビルドトリガの設定で、Generic Webhook TriggerにチェックをいれTokenを指定するだけです。
私の場合、すでにsshを設定してあったので、
テストサーバにJenkinsからsshログインしてpull checkoutする形をとりました。
次に、Backlogのgitに変更をPUSHするだけ.
あとはJenkinsサーバにIP制限をかけていたので、許可をするだけです。
以上!
アプリ作成編 〜Google G SUITE appmakerを使ってみた 〜
社内のインベントリ情報の検索ツールを作ってみた。
CRUDツールである。
おおまかな手順は下記の通り
- GCP上で、データソースとなるSQLインスタンスを作成
- G Suiteの管理画面で、Google Cloud SQL インスタンスの設定を行う
- インスタンスにappmaker からアクセスできるようにGCPのAIMでCloud SQL 管理者として、appmaker-maestro@appspot.gserviceaccount.com を追加
- appmakerでアプリを作成し、データ→モデルを作成→Google Cloud SQL を選択
- 初期データがあれば左上にあるIMPORT DATA FROM SHEET からデータを投入(モデル作るときにインポートできるようにしてくれればいいのに!)
- ページ・UIを作成
- デプロイ
あとは、触りながら、下記のアクションの方法を参照にしながら作れば
なんとか形になるはずです。
Google App Maker ー デフォルトアクションの一覧 - Qiita
ちょっとしたTIPSなど
1. SQLインスタンスをGCPに作成する時は、us-central1 で作成すべし
良かれと思って、日本のリージョンに作ったけど、us-central1に作れと怒られましたw
2. プレビューとデプロイは別データ
初期データなどをインポートするときにわかることですが、previewとデプロイには別々にデータを投入する必要があります。
3. 共通する処理はSCRIPTSに書け
例えばデータを検索するロジックなどは、client script(javascript)を書き
検索ボタンのonClickイベント時にCustom Action で指定して発火させます。
function useQueryBuilder() {
var text = app.pages.index.descendants.FilterText.value;
if (text === null) {
app.datasources.account.query.where ='';
} else {
app.datasources.account.query.where = '(target contains :Value) or (login contains :Value) or (note contains :Value)';
app.datasources.account.query.parameters.Value = text;
}
app.datasources.account.load();
}
4. ちゃんと権限設定しよう
appmaker のアプリに対する権限設定がわかりづらいので理解の足しになれば。
権限設定編 〜Google G SUITE appmakerを使ってみた 〜
共有ディスクをNASから、Google Drive に移行したのに合わせて
社内用ツールをapp maker を使って作ってみたお話です。
以前は、アプリケーションフレームワークのscaffoldを使って、簡単なCRUDアプリを作ってましたが、
サーバーとして使ってたPC壊れるし、VM取り出したり、再セットアップするの疲れるし、ということで、せっかく使えるようになったGoogle appmaker を使ってみることにしました。
使ってみた感想としては、
英語なのと、UIというか権限の仕組みがちょっとわかりづらい。
というか、自動で保存されたり、SAVEボタンを押さないと保存されなかったり、
UIが統一されておらずそれも混乱の元になっていたりします。
使うにあたって行なった設定は下記
で新規にアプリを作成後アプリのアクセス権限を設定します
1. ロール作成
右上にある歯車アイコンをクリック
APP SETTING→Security → User's accountを選択→Roles →組織用のロールを追加
※この時点で組織用のロール名は好きにつけて追加すればいいだけ。
2. ごにょごにょアプリを作成
この辺りは後でアプリ作成編で解説
3. デプロイを行う。
右上にある歯車アイコンをクリック
DEPLOYMENTS→PUBLISH NEW DEPLOYMENTS→Users with role access: XXXX
XXXXに1で作成したロールが表示されているはず。
そこに、Google のユーザや、グループを追加すると、そのデプロイへのアクセス権限が得られるというわけ。
ここで1点注意点がありました。
会社だとグループで管理するのが便利ですが、どうやらグループを入れ子で持つグループは対応していないようです。
例えば、everyone@example.com グループがあったとして、
everyone の中に、system@, directors@, designers@ といった子グループが入っている場合、everyoneを指定しまうと、アクセス権限を持てませんでした。
ただ、直接ユーザを含んだグループだと権限がちゃんと振られたので一安心。
appmakerはデプロイ毎に権限を管理する仕組みのようです。
macbook pro をmojave にアップグレードしたらバッテリーの減りが早いし、ファンが回り続ける
対処したこと。
- SMCリセット
でも多分これが原因ではなさそうだった。
- configd と internet sharing
アクティビティモニターをみると、
configdというプロセスが80%以上CPUを食っていた。
その下にinternet sharing のプロセスがありそれも、20-30%と
なんで?というぐらいCPUを消費していた。
そこで、インターネット共有をオフにしてみた。
- 結果
ファンが静かになりました!
おそらくバッテリーの減りスピードも改善されていることでしょう・・・
- 参考ページ