Githubアクションでレンタルサーバーにデプロイさせる話.
2024.09.20
おはようございます.将軍が米エミー賞を受賞しましたね、これを機会に自分はディズニープラスを契約してウォーキングのときに将軍をみています、これは田舎だから出来る特権かと思います💁.
さてGithubアクションでレンタルサーバーにデプロイ(アップロード)させる方法を書いていきます.まず前提条件としてIDとPASSでの認証ではなくて鍵での方法です.事前に公開鍵をレンタルサーバーに登録しとく必要があります.
では最初に対象となるリポジトリのセッティングから下記の順にクリックしてください.
次、アクションシークレットに必要な値を登録します(SSH_PRIVATE_KEYやSERVER_USERNAMEなどです)
最後にアクションの設定(yml)を行えば完了です.完了ですがレンタルサーバーによっては海外IPアドレスをブロックするように設定しているレンタルサーバーがあります.なので、海外IPを解除する必要があります.GithubのIPアドレスはこちらを参照して設定ください.
https://api.github.com/meta
※ルート直下をデプロイ対象すると.gitもアップロードされ大変危険ですので対策を取るか、直下をアップロードしないようにするか等が必要なります.
name: sakura
on:
push:
branches: [ "main" ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa_sakura
chmod 600 ~/.ssh/id_rsa_sakura
- name: Deploy Files via rsync
run: |
rsync -avz -e "ssh -i ~/.ssh/id_rsa_sakura -o StrictHostKeyChecking=no" ./path ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.SERVER_DEPLOY_DIR }}
これでメインにプシュしたものはレンタルサーバーにアップロード(Deploy)されるようになります.
簡略化した説明なので分からない方もいると思います.そんな方は生成AIやググると何とかなるかと思いますので諦めずにトライしてみてください.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
actions, branches, deploy, echo, git, github, jobs, path, push, quot, run, sakura, SSH, steps, StrictHostKeyChecking, ubuntu-latest, uses, yml, デプロイ,
お名前レンタルサーバーRS?
2024.05.23
おはようございます、お名前レンタルサーバーRSに全て移行しようと思ったけど無理だった件についてのお話です.お名前ではレンタルサーバーを契約するとそこで契約していたドメイン代(お名前ドットコムで契約した)は永続無料で使用できるサービスがあります.
それを使用すればかなりの固定費が浮くので、そちらに移行しようと試みたのが先日のことです.実際、移行しようと思って試して分かったことは下記になります.
この二点が厄介.
・ドメインを登録するとドメイン毎にディレクトリが勝手に作られる.
・ルートディレクトリにファイルやディレクトリがFTPからは作れないみたい.
確認はしていないけれども、事前にSSHなどでルートディレクトリにディレクトリを作ってもドメイン登録をコンパネで行うとディレクトリ内の内容が空になる可能性があるのでSCPなどのコマンドで一括移行が出来ない、または以前の階層を引き継げない可能性があります.
そういうことで移行することは時間をかければ可能かもしれないけど、あまり他社から乗り換えるには適していないサーバーなのかもしれないと判断しました.
良いところは、管理画面が初心者には優しい作りになっているところかなと思います.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
FTP, SCP, SSH, お名前レンタルサーバーRS, コマンド, コンパネ, サーバー, ディレクトリ, ディレクトリ内, ドメイン, ドメイン代, ドメイン毎, ファイル, みたい., ルートディレクトリ, レンタルサーバー, 一括移行, 厄介., 永続無料, 階層,
ssh:複数のgithubを使いたい人へ.熨斗🚧.
2024.04.29
おはようございます、githubを複数持っている方、例えば仕事用と個人開発用を分けたい方などもいると思います.恐らくそういう人はPCのアカウントを分けて使用しているひとが一般的だと思います.自分もそんな感じです.ただ、自分の場合は、もともと個人用で使っていたものを職場環境にしていて過去のリポジトリとかが残っている.それを切り離したいなって思って先日、パブリック以外は個人開発用に移行しました.
その手順を記載します.
前提条件として、アカウントは2つもしくは複数持っていることを前提とし公開鍵暗号、秘密鍵が作れる設定できることを前提条件とします😌.
- ~/.ssh/configに下記のように設定します[OSにより参照部分は変えてください]
- バッチでgitを切り替えるようにしておく.
- クローンなどでsshを使用する場合は下記のようにしてクローンする.
Host github.com.yamada123
HostName github.com
User git
Port 22
IdentityFile c:\Users\yamada\.ssh\yamada123\id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
Host github.com.yamada456
HostName github.com
User git
Port 22
IdentityFile c:\Users\yamada\.ssh\yamada456\id_rsa
TCPKeepAlive yes
IdentitiesOnly yes
#yamada123とyamada456それぞれバッチファイルを作成.
git config --global user.name "yamada123" #githubのアカウント名
git config --global user.email "mail123@example.com" #githubのメールアドレス
git clone git@github.com.yamada123:yamada123/RepositoryName.git .
トイウコトデ、説明はあまりしていませんがこれで切り替えて取り扱いが可能です.因みにもともと使用していたRepositoryを移行するにはこれだけではうまく行きませんがエラーに答えが書いています.ので、そのコマンドを打ってください.まずは現在の/.git/を削除して・・・割愛.
明日へ続く.
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
config, git, git clone git@github.com, github, global user.email, global user.name, Host github.com, HostName github.com, quot;mail123@example.com", Repository, RepositoryName.git, SSH, sshyamada123id_rsa, sshyamada456id_rsa, Usersyamada, クローン, トイウコトデ, バッチ, リポジトリ, 割愛,
さくらVPSの仕様なのか、分からないけど。
2022.10.14
おはようございます、昨日は暖かい陽気でしたね🫠。
さて、昨日ドハマリして数時間、時間を費やしてしまった問題が有りました。結論から言えばOSのバージョンの関係で上手くいかなかった。さくらの中の人(開発者)、OSバージョンアップした際の挙動を確認して無さそうな気がします。
どんなトラブルになったのかと言えば、こんな感じ。
作業用VPSサーバーを設置してWEBのコントロールパネルからssh鍵の設定して作業に取り掛かろうとテラターム(ローカル)でログインした所、エラーが出る。
何度、トライしてもパーミッションが駄目だよと弾かれるので、ウインドウズでユーザーの設定なんかを変更したりしたのだけど駄目だった。
リナックスやMacからだとログインできるだよね、なのでコレはWindowsの問題だと思っていた、パーミッション原因だと思っていたのだけど、前サーバーはssh鍵付きでログイン出来てたので変だなと思い、前サーバーのssh鍵を変更してみたら、こちらはすんなりとログイン出来てしまった。
ここで何が違うかと言えば、OSのバージョンだけ8系と9系の違いでログイン出来なくなる。恐らくこちら側の設定がどうこうではなく、何か・・・の接続時のデータ送受信で変になっている気がします。
この事象をさくらVPSに問い合わせしていないので、原因は分からないだけど恐らくOSのバージョンの違いで今のところ発生している問題だと思います。
著者名 @taoka_toshiaki
※この記事は著者が40代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Mac, OS, SSH, VPS, web, Windows, アップ, ウィンドウズ, エラー, コレ, コントロール, サーバー, さくら, ターム, テラ, ドハマリ, トライ, トラブル, バージョン, パーミッション, パネル, ユーザー, リナックス, ローカル, ログイン, 中, 人, 仕様, 何度, 作業, 原因, 問題, 変, 変更, 感じ, 所, 挙動, 数, 昨日, 時間, 気, 確認, 結論, 設定, 設置, 鍵, 鍵付き, 開発者, 関係, 陽気, 際, 駄目,
Linuxでプロセス残すなら!
2019.11.08
Linuxでプロセス残すなら【nohup コマンド &】を使おう。
以前、仮想ウィンドウを開いて行う方法を記載しましたが
こちらのほうが断然らくです。
ちなみにこれを使用すると、 nohup.out というファイルが作成されます。
node.jsやPythonとかで使用する機会が多いかもしれません。
例えばこんな感じで
nohup Python index.py &
過去記事:プロセス残してSSHログアウトする方法。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
amp, index, JS, Linux, node, nohup, out, py, Python, SSH, ウィンドウ, こちら, コマンド, これ, ファイル, プロセス, ログアウト, 以前, 仮想, 作成, 使用, 感じ, 方法, 機会, 記事, 記載, 過去,
Tera Termで自動ログインする方法:秘密鍵有り無し対応
2019.09.14
秘密鍵有り自動ログイン
connect 'ホスト名:22 /ssh /2 /auth=publickey /user=ユーザー名 /passwd=パスワード /keyfile=秘密鍵'
wait '#'
sendln 'ls'
sendln 'cd /var/www/html'
秘密鍵無し自動ログイン
connect 'ホスト名:22 /ssh /2 /auth=password /user=ユーザー名 /passwd=パスワード'
wait '#'
sendln 'ls'
sendln 'cd /var/www/html'
上記の内容をテキストファイルにコピペしてホスト名、ユーザー名、パスワード、
秘密鍵(場所)をそれぞれ変更し任意の名前で保存。
保存後、拡張子をTTLへ変更。
Tera TermでTTLを呼び出すようにする方法に
ついては割愛します(ググってください)。
ちなみにこの記事、過去に書いています。
(過去記事は別のブログに移転しています)
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
2, 22, auth, cd, connect, html, keyfile, ls, nbsp, passwd, password, publickey, sendln, SSH, Tera, Term, TTL, user, var, wait, くだ, コピペ, それぞれ, テキスト, パスワード, ファイル, ホスト, ユーザー, ログイン, 上記, 任意, 保存, 内容, 割愛, 名前, 場所, 変更, 対応, 拡張子, 方法, 有り無し, 秘密, 自動, 鍵,
プロセス残してSSHログアウトする方法。
2018.11.11
screenっていうコマンドを使用するとプロセス残してSSHログアウトする事ができます。ちなみにscreenというコマンドは仮想ウィンドが立ち上げる機能です。
まずscreenをインストールし、実行したいコマンドを実行します。
実行すると仮想ウィンドが立ち上がります。
立ち上がっている画面の確認はlsで確認することが可能。
その画面を読み込むときは-r を使用します。
lsで表示されているプロセスID(PID)を記入してコマンドを実行することで再接続することが可能となります。
追記:こんな方法もあります。
Linuxでプロセス残すなら!
yum -y install screen
screen php test.php
screen -ls
screen -r PID
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
-r, -y, ID, install, Linux, ls, php, PID, screen, SSH, test, yum, インストール, ウィンド, こと, コマンド, とき, プロセス, ログアウト, 事, 仮想, 使用, 可能, 実行, 接続, 方法, 機能, 画面, 確認, 表示, 記入, 追記,
SSH.NETでSFTPとSSHの接続を確立させるまでの過程。
2016.12.11
SSH.NETでSFTPとSSHの接続を確立させるまでの過程。
ソースコードは下記です、あくまでも触りなのでココからご自分で考えて作り変えてください。ちなみにSSH.NETのライブラリを入手するには拡張機能からNuGet Package Managerという拡張機能を追加するとツールのNuGetパッケージマネージャーが現れるので、ソリューションのNuGetパッケージ管理からSSH.NETと検索しインストールすることによりライブラリが使用できます。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using Renci.SshNet;
using Renci.SshNet.Common;
using Renci.SshNet.Sftp;
namespace ftp
{
public partial class Form1 : Form
{
String Host = "168.192.11.1";
int Port = 22;
String RemoteFileDIR = "/root/";
String LocalDestinationDIR = "C:\\Users\\hoge\\Documents\\BACKUP\\";
String Username = "admin";
String Password = "hogehoge";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ssh_cmd();
}
private void dl(string filename) {
using (var sftp = new SftpClient(this.Host, this.Port, this.Username, this.Password))
{
sftp.Connect();
using (var file = File.OpenWrite(this.LocalDestinationDIR + filename))
{
sftp.DownloadFile(this.RemoteFileDIR + filename, file);
}
sftp.Disconnect();
}
}
private void ssh_cmd() {
SshClient ssh = new SshClient(this.Host, this.Username, this.Password);
ssh.Connect();
string command = "cd /root && ls";
string[] str_result;
string str_results;
char ptn ='\n';
int i =0;
var result = ssh.RunCommand(command);
//MessageBox.Show(result.Result);
str_results = result.Result;
str_result = str_results.Split(ptn);
ssh.Disconnect();
for ( i = 0; i < str_result.Length; i++) {
//MessageBox.Show((str_result[i]));
if (str_result[i] != "")
{
dl(str_result[i]);
}
}
}
}
}
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Collections, ComponentModel, data, Drawing, Generic, Linq, Manager, net, NuGet, Package, SFTP, SSH, System, Tasks, Text, Threading, using, インストール, コード, ココ, こと, ご自分, ソース, ソリューション, ツール, パッケージ, マネージャー, ライブラリ, 下記, 使用, 入手, 拡張, 接続, 検索, 機能, 確立, 管理, 追加, 過程,
CURLでページを抽出するのは簡単なのだけど・・・POSTして
2015.05.13
curlでページを抽出するのは簡単なのだけど、いま自分がやりたいことはSSLのサイトにデータをPOSTしてその結果を加工して表示させたいわけなのですが・・・。どうもPOSTする際にデータがうまく渡せてなくてエラー結果のページが表示されるのです。未だ問題が解決せず・・・・。うまく行かない・・・時間だけが流れてしまうので今日のトコロはやらない方法ですが、うまく行けばそのサイトを公表します。結構便利なサイトになるかと思っているのですが当分、無理な感じがします。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
1, curl, POST, POSTする際, SSH, SSL, エラー結果, サイト, データ, トコロ, ページ, 当分, 方法, 時間, 未だ問題,
さくらのVPSを使ってみた。標準OSインストールは初心者におすすめ。
2015.04.04
さくらVPSを使ってみた。さくらVPSをレンタルして標準OSインストールしてみました。インストール後、root権限でログインしてApacheをインストール(yum install httpd )してみたら、そのままの状態でWEBが表示された・・・・。ポートの開放とかの設定はしなくても良かったです。標準OSのセキュリティの設定でゴニョゴニョされていて特にWEBで使う分にはiptablesを触らなくても良さそうでした。インストール後、phpをインストールしてhttpdのconfig設定を変更して再起動すればphpが実行できる環境になりますから、あとはMysqlをインストールしたい方は、インストールしてゴニョゴニョ設定するだけでWEB環境を整います。あとは、ftpを使用したい方はインストール(yum install vsftpd)すれば良いだけです。FTP経由かSSH経由でコードをアップロードすればサイトを構築できてしまいます。
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
Apache, config, FTP, httpd, install, iptables, MYSQL, OS, php, root, SSH, VPS, vsftpd, web, yum, アップロード, あと, いま, インストール, おすすめ, コード, ゴニョゴニョ, サイト, さくら, さくらの, セキュリティ, そのまま, ポート, レンタル, ログイン, 使用, 再起動, 分, 初心者, 変更, 実行, 方, 構築, 標準, 権限, 状態, 環境, 経由, 表示, 設定, 開放,