MovableType 9リリースと当ブログのプラグイン対応状況

October 22,2025 11:55 PM
Category:[9.0]
Tag:[MovableType]
Permalink

MovableType 9が2025年10月22日にリリースされました。

Movable Type 9 の提供を開始

シックスアパートのみなさま、リリース作業おつかれさまでした!

ということで、小粋空間でリリース中のプラグイン対応状況です(MT-9.0.4で動作確認済)。

対応済のプラグイン

  • CSVDataImExpoter
  • ListingFieldEditor
  • PowerEditContentData
  • PowerListingFieldEditor
  • PublishDraft
  • Trash
  • Vote ※
  • Workflow

※mt-data-api.js の同梱が終了したため、引き続き使用する場合は、
https://github.com/movabletype/mt-data-api-sdk-js/tree/master/mt-static/data-api
からのダウンロードおよび設定が必要です。

対応予定のプラグイン

  1. CSVAssetDataImExporter
  2. CSVAuthorDataImExporter
  3. EntryConverter
  4. SaveWithoutRebuild

詳細は、各プラグインの販売ページでお知らせしていく予定ですので、お待ちください。

Comments [0] | Trackbacks [0]

CentOS Stream release 9にImageMagickとPerlMagickをインストール

October 19,2025 11:55 PM
Category:[ImageMagick]
Tag:[]
Permalink

CentOS Stream release 9にImageMagickとPerlMagickをインストールしてみました。

1.はじめに

ある環境のMovableType 8でImageMえます。

注:2025年9月現在、記事アセットおよびカスタムフィールドに対しての機能追加はありません。

2-1.エクスポート機能(コンテンツデータ一覧画面)

コンテンツデータ一覧画面の「アクション」に「 コンテンツデータのエクスポート・アセットダウンロードつき(ZIP) 」というメニューを追加しました。

コンテンツデータ一覧画面の「アクション」

この項目を選択してCSVをエクスポートすると、ZIP形式でのダウンロードとなり、ZIPファイルの内容は次のようになります。

export-001-002-20250816152706.zip
├─ export-001-002-20250816152706.csv   ← CSVファイル
└─ ASSET_DIR/  ← アセット格納用フォルダ
      ├─ assets/
      │    └─ 2025/
      │          └─ 09/
      │               ├─ file1.jpg
      │               └─ file2.jpg
      ├─ images/
      │    └─ file2.webp
      └─ s-l960.pdf

また、CSVのアセットフィールドには、下記のように「パス+ファイル名」で設定されます(赤字部分)。

content_type,id,label,author_id,identifier,authored_on,modified_on,unpublished_on,status,名前,画像1,画像2
商品,1,テスト1,1,2b909dd37403b295ff80f6f46d23fd72cebf41d5,2025/8/6 0:58,2025/8/22 23:06,,2,テスト1,assets/2025/09/file1.jpg,s-l960.pdf
商品,2,テスト2,1,f46d23fd72cebf41d5295ff80f6f4609dd37403b,2025/8/6 0:58,2025/8/22 23:06,,2,テスト2,assets/2025/09/file2.jpg,images/file2.webp

2-2.エクスポート機能(エクスポート画面)

エクスポート画面にも「アセットダウンロードつき(ZIP) 」というメニューを追加しました。

エクスポート画面

チェックすればすべてのコンテンツデータにひもづくアセットをダウンロードします。

注:サーバ環境やアセット数・合計サイズによって正常にエクスポートできない可能性があります。

3.インポート機能

インポート画面に「ZIPファイルのアセット 」というメニューを追加しました。

インポート画面

基本動作は、ZIPファイルを指定してインポートすれば、CSVのアセットフィールドに記載されたパス・ファイル内を使って、ZIPのASSET_DIR配下に存在するアセットをアップロードしながら、コンテンツデータのアセットフィールドとひもづけていきます。

そのため、すでに同一パス・ファイルのアセットがサイトに存在する場合の挙動を追加したメニューで指定します。

  • アップロードをスキップして既存アセットにひもづけ:アップロードをスキップして、既存のアセットにひもづけます
  • 既存アセットを上書きアップロード:アップロードして、既存アセットを上書きします
  • アセットをリネームしてアップロード:リネームして既存アセットとは異なるアセットとしてアップロードし。コンテンツデータとひもづけます

このオプションはアセット単位に適用されるので、たとえば、

 aaa.jpg
 bbb.jpg
 ccc.jpg

の3つの画像をZIPでインポートする場合、bbb.jpgという画像がすでに存在すれば、bbb.jpgにのみオプションが適用され、aaa.jpgとccc.jpgは自然体でアップロードとアセット登録およびアセットフィールドとのひもづけが行われます。

注:サーバ環境やアセット数・合計サイズによって正常にインポートできない可能性があります。

4.オプション

サイト別プラグイン設定画面に「ZIP形式でアセットをインポートする場合のルートパス」を追加しました。

サイト別プラグイン設定画面

サイトパス直下にアップロードするようにしますが、assetsやimagesなど共通のパスが存在する場合、必要に応じて本項目を設定してください(デフォルト:設定なし)。

また、アップロードしたZIPファイル(/tmp上の一時ファイル)はインポート終了辞に削除する処理を追加しましたが、デバグ用として、一時ファイルを残すオプションをシステム管理画面に追加しました。

システムプラグイン設定画面

5-1.ユースケース1:CSVによる運用

これまでのコンテンツデータのアセットフィールドと、アセットファイルのひもづけは、

 ①サーバに画像をアップロード(MT機能や他のプラグイン利用)
 ②CSVファイルにファイルのフルパスを記入
 ③CSVファイルをインポート

という手順で実施が必要でしたが、

 ①ユーザーがローカルPCに画像を配置
 ②CSVファイルにファイルのパスを記入
 ③ZIPファイルをインポート

という手順で作業を行えるため、サーバーのアップロード作業を個別に行う手間がなくなります。

5-2.ユースケース2:画像の差し替え

任意のコンテンツデータのアセットの差し替えは、該当のコンテンツデータをエクスポートして、ASSET_DIR内の画像を置き替えてZIPを再作成し、インポートのオプションで「既存アセットを上書きアップロード」を選択・実行すれば差し替えが可能です。

5-3.ユースケース3:ホームページの引っ越し

通所のCSVエクスポート→インポートではアセットIDでひきつがれてしまうため、アセットの再ひもづけが大変ですが、アセット込みでエクスポート→インポートを実施すれば、アセットのひもづけを考える必要がなくなります。

6.プラグインについて

CSVDataImExporterプラグインの詳細は下記のページよりご覧いただけます。

CSVDataImExporterプラグイン

確認用サイトもご用意しておりますので、試用をご希望される方はお問い合わせのページよりお申し込みください。

Comments [0] | Trackbacks [0]

AWSでIAMユーザーを作成する方法

May 18,2025 12:03 AM
Category:[AWS]
Tag:[AWS]
Permalink

AWSでIAMユーザーを作成する方法を紹介します。

1.はじめに

AWSに久しぶりにアクセスしてみると、ログイン画面が「アカウントID」と「IAMユーザー」に変わっていました。

ログイン画面

IAMユーザーというものをそもそも作っていなかったので、本記事で作成方法を紹介します。

なお、アカウントIDは後述するルートユーザーでログイン後、右上のユーザー名をクリックすれば「アカウントID」が表示されます。

2.AWSでIAMユーザーを作成する

AWSマネジメントコンソールにアクセス。

「持っていませんか?」のリンクをクリックすればルートユーザーでログインできる画面に切り替わるので、ルートユーザーでログインします(詳細は省略)。

ログイン画面

ログイン後、左上の「IAM」を選択

コンソール

「ユーザー」をクリック。

「ユーザーの作成」をクリック。

任意のユーザー名を設定して、「ユーザータイプ 」から「IAM ユーザーを作成します」を選択。パスワードの作成方法は任意。

すべて設定後「次へ」をクリック。

今回は1ユーザーで、ユーザーグループを作成しないので、「ポリシーを直接アタッチする」を選択。

作成するユーザーにすべての権限を与えたいので、「AdministratorAccess」のみをチェック。その下の「許可の境界を設定」はスキップします。

すべて設定後「次へ」をクリック。

設定した内容の確認画面が表示されるので、問題なければ「ユーザーの作成」をクリック。

「ユーザーが正常に作成されました」が表示されれば完了です。コンソールサインインURLやパスワードも表示されます。

なお、これまでルートユーザーで作成したものは、別ユーザーなので一切表示されないようです。

Comments [0] | Trackbacks [0]

ansibleで同名のroleを複数回実行する方法

April 25,2025 11:55 PM
Category:[ansible]
Tag:[ansible]
Permalink

ansibleで同名のroleを複数回実行する方法を紹介します。

1.問題点

次のroleを作成しました。

roles/test/tasks/main.yml

- name: コマンド実行
  shell:
    cmd: hostname
  register: result
 
- name: 結果出力
  debug:
    msg: "{{ result.stdout_lines }}"

このroleを実行するplaybook(test.yml)は下記です。

- hosts: localhost
  connection: local
  roles:
    - role: test
    - role: test
    - role: test

inventoryは省略しますので適宜用意してください。

このplaybookを実行すると、roleは一度しか実行されません。

(ansible) [hoge@server ~]$ ansible-playbook -i inventory test.yml
 
PLAY [localhost] ********************************************************************************************************************
 
TASK [Gathering Facts] **************************************************************************************************************
ok: [localhost]
 
TASK [test : コマンド実行] **********************************************************************************************************
changed: [localhost]
 
TASK [test : 結果出力] **************************************************************************************************************
ok: [localhost] => {
    "msg": [
        "hoge-server"
    ]
}
 
PLAY RECAP **************************************************************************************************************************
localhost                  : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

2.原因

これは、Ansibleが「ロールの重複適用」を避ける設計になっているためです。

3.対処

いくつか方法はあるようですが、ここではplaybook内で「tags」を付与する方法を紹介します。

下記のように、roleごとにtagsを追加して、ユニークな値を設定します。

test.yml

- hosts: localhost
  connection: local
  roles:
    - role: test
      tags: "1"
    - role: test
      tags: "2"
    - role: test
      tags: "3"

これで同名のroleでも期待通り実行されます。

(ansible) [hoge@server ~]$ ansible-playbook -i inventory test.yml
 
PLAY [localhost] ********************************************************************************************************************
 
TASK [Gathering Facts] **************************************************************************************************************
ok: [localhost]
 
TASK [test : コマンド実行] **********************************************************************************************************
changed: [localhost]
 
TASK [test : 結果出力] **************************************************************************************************************
ok: [localhost] => {
    "msg": [
        "hoge-server"
    ]
}
 
TASK [test : コマンド実行] **********************************************************************************************************
changed: [localhost]
 
TASK [test : 結果出力] **************************************************************************************************************
ok: [localhost] => {
    "msg": [
        "hoge-server"
    ]
}
 
TASK [test : コマンド実行] **********************************************************************************************************
changed: [localhost]
 
TASK [test : 結果出力] **************************************************************************************************************
ok: [localhost] => {
    "msg": [
        "hoge-server"
    ]
}
 
PLAY RECAP **************************************************************************************************************************
localhost                  : ok=7    changed=3    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages
toto Cancer toto Malukutoto login situs toto toto macau toto 4d Malukutoto slot maxwin MALUKU TOTO situs toto Malukutoto login Maluku toto cancertoto toto depo 5k ilmu bet slot gacor malukutoto
maluku toto toto Malukutoto Malukutoto CANCER TOTO situs slot cancertoto toto CANCERTOTO ilmubet Cancertoto toto toto cancertoto
situs toto SLOT GACOR SLOT GACOR HARI INI situs toto
cancer toto malukutoto Maluku toto cancer toto CANCERTOTO SITUS SLOT GACOR MALUKU TOTO toto toto macau maluku toto slot gacor slot gacor cancer toto malukutoto situs depo 5k situs toto cancertoto cancertoto CANCER TOTO cancertoto toto toto toto 4d 4d 4d
slot gacor slot gacor slot gacor slot slot slot slot gacor hari ini slot gacor hari ini slot gacor hari ini situs slot situs slot situs slot situs slot situs slot situs slot slot slot slot slot gaocr slot gaocr slot gacor