美容・飲食広告代理店 ホームページ制作 株式会社エークラウド

広告提案からWEB制作まで
プロによるご提案

BLOG ブログ

エークラウドメンバーによるローテーションブログ

2024.08.02

FTPアップロード作業を自動化した話

WEB制作 > WEBサービス・ツール

たかし システム / たかし

記事一覧を見る

現在のWEBアプリ系業界はCI/CDの考え方を取り入れてCircleCIやJenkins CI、GitHub Actions何かを取り入れ始めていますが、弊社ではまだこれ自体をあまり知らない人が多いです(僕も含めて)。


でもずっと同じ作業を繰り返していると、めんどくさがりであれば自然にそういう考え方に近寄ってくるとは思います。


そういうわけで、システム課でも試しにCIツールを導入しようと試みましたが、思っていたよりもハードルが高く(SREのお力が必要)、すぐに導入できなかったのでせめて単純作業だけでも自動化しようと作ったのが今回のFTPアップロード自動化ツールです。


以下がその全容です。


#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
------------------------------
セットアップ用
------------------------------
gitでのサイト更新を自動化
python /home/DIR/setup.py DIR
'''

'''
------------------------------
初期設定
------------------------------
'''
import sys
import os
import crypt

args = sys.argv

#ディレクトリ
DIR = None
#結果
RESULT = True

try:
"""ディレクトリ取得"""
DIR = args[1]
print("ディレクトリ取得: " + str(args[1]))
except:
print("ディレクトリ取得に失敗しました")
sys.exit()

'''
------------------------------
処理
------------------------------
'''

#gitクローン
#################
try:
print("gitクローン...")
rt = os.system("git clone git@〇〇.git /home/"+DIR+"/git_files")
print("git clone git@〇〇.git /home/"+DIR+"/git_files")
except:
RESULT = False
print(rt)
print("gitクローンに失敗しました")

#ディレクトリ削除
#################
dirArr = ["file1",'file2','file3']

for i, val in enumerate(dirArr):
try:
print(val+"削除...")
rt = os.system("rm -rf /home/"+DIR+"/"+val)
print("rm -rf /home/"+DIR+"/"+val)
except:
RESULT = False
print(rt)
print(val+"削除に失敗しました")

#gitフォルダ移動
#################
try:
print("gitフォルダ移動...")
rt = os.system("cp -r /home/"+DIR+"/git_files/* /home/"+DIR+"/")
print("cp -r /home/"+DIR+"/git_files/* /home/"+DIR+"/")
except:
RESULT = False
print(rt)
print("gitフォルダ移動に失敗しました")

#gitフォルダ削除
#################
try:
print("gitフォルダ削除...")
rt = os.system("rm -rf /home/"+DIR+"/git_files")
print("rm -rf /home/"+DIR+"/git_files")
except:
RESULT = False
print(rt)
print("gitフォルダ削除に失敗しました")

#権限変更
#################
try:
print("権限変更...")
rt = os.system("chown -R "+DIR+". /home/"+DIR+"/")
print("chown -R "+DIR+". /home/"+DIR+"/")
except:
RESULT = False
print(rt)
print("権限変更に失敗しました")

やることはただただ前のフォルダを削除してgitにある最新フォルダをアップロードし直すだけのテストも何も無いおもちゃみたいなツールですが、これが使ってみると想像以上に楽で、開発環境下で個人のテストサイトにアップロードする際は大変お世話になっています。


ちなみにDB側の更新は初期化されると色々困るのであえて設定してないですが、この方法であればそっちの自動化もちゃんとできます。


そして弊社で提供しているサイトのセットアップはこれを応用してほぼ自動化しているのですが、やっぱり素人が作ったコードなのでまだまだバグが多いのが現状です。 多分素直に夜に出回っているCIツールを使うのが無難なんでしょうね。

sample

この記事を書いた人

システム / たかし

WEB制作記事

FTPアップロード作業を自動化した話

2024.11.19

麻婆豆腐が貰った黄色い箱

WEB制作 > デザイン

麻婆豆腐 デザイナー / 麻婆豆腐

Read More

FTPアップロード作業を自動化した話

2024.11.11

使いどころのないプログラミング言語

WEB制作 > WEB制作全般

popuko システム / popuko

Read More

FTPアップロード作業を自動化した話

2024.10.25

最近すきになったもの

WEB制作 > デザイン

サトウ プロモーション / サトウ

Read More

FTPアップロード作業を自動化した話

2024.10.23

余興

WEB制作 > WEB制作全般

のじ デザイナー / のじ

Read More

WEB制作カテゴリ記事一覧

全カテゴリ一覧

WEB制作 [131]

ライフ [559]

エンタメ [201]

エークラウド [26]

メンバー

デザイナー[43]
システム[6]
運営[8]
レタッチャー[21]
営業[10]
ディレクター[8]
プロモーション[11]
ライター[16]
販促[5]
人事[2]
総務[3]
財務[2]

お客様の思い描くビジョンを明確な形に変えていく為に
全力でサポートさせて頂きます。
お問い合わせ・ご相談はこちらまでお気軽にご連絡ください。

お問い合わせはこちら

  • お電話でのお問い合わせ :03-5784-3113
  • 受付時間 10:30-18:30(土日祝除く)

CONTACT

WEB制作のお問い合わせはこちらから。

PAGETOP