URAMIRAIKAN

1020のなれの果て (since 2005.6.19)

MariaDB 10.3から10.4へのアップグレード

 MariaDB 10.4が出てから結構時間が経ってしまいましたが、ようやくここのサイトのデータベースをアップグレードしました。
 基本的には10.3へアップグレードしたときと同じなのですけどね。

 ただ、同じ事をやるのもつまらないので、今回はその手順をAnsibleで実行しました。
 使ったPlaybookはこんな感じ。

--- - name: MariaDB Upgrade hosts: localhost remote_user: operator become: yes gather_facts: yes vars: temp_dir: /tmp/maria-upd db_admin: root db_pwd: password tasks: - name: Create temp directory file: path: '{{ temp_dir }}' state: directory owner: root group: root mode: 0755 - name: Backup MariaDB current configuration shell: \cp -pf /etc/my.cnf {{ temp_dir }}/ - name: Backup MariaDB current configuration shell: \cp -prf /etc/my.cnf.d {{ temp_dir }}/ - name: Backup Postfix current configuration shell: \cp -prf /etc/postfix {{ temp_dir }}/ - name: Backup fail2ban current configuration shell: \cp -prf /etc/fail2ban {{ temp_dir }}/ - name: Update all packages yum: name: '*' state: latest - name: Stop services systemd: name: '{{ item }}' state: stopped daemon_reload: no enabled: no with_items: - mariadb.service - postfix.service - fail2ban.service - name: Remove old MariaDB packages yum: name: - MariaDB-* - galera state: absent - name: Replace MariaDB repository copy: src: ./files/MariaDB.repo dest: /etc/yum.repos.d/MariaDB.repo owner: root group: root mode: 0644 - name: Install new packages yum: name: - MariaDB-server - MariaDB-client - MariaDB-backup - postfix - fail2ban state: latest - name: Restore MariaDB configuration shell: \cp -pf {{ temp_dir }}/my.cnf /etc/ - name: Restore MariaDB configuration shell: \cp -prf {{ temp_dir }}/my.cnf.d /etc/ - name: Start MariaDB services systemd: name: mariadb.service state: started daemon_reload: yes enabled: yes - name: Upgrade databases shell: mysql_upgrade -u{{ db_admin }} -p{{ db_pwd }} - name: Restore Postfix configraion shell: \cp -prf {{ temp_dir }}/postfix /etc/ - name: Start postfix services systemd: name: postfix.service state: started daemon_reload: yes enabled: yes - name: Restore fail2ban configuration shell: \cp -prf {{ temp_dir }}/fail2ban /etc/ - name: Start fail2ban services systemd: name: fail2ban.service state: started daemon_reload: yes enabled: yes - name: Delete temp directory file: path: '{{ temp_dir }}' state: absent

 実際にはリモートで実行しているから"hosts"や"remote_user"とかは変更しています。
 あと、使っている"MariaDB.repo"はMariaDBのサイトで生成したものを用意。
 相変わらずうちの環境では"postfix"と"fail2ban"が依存性でアンインストールされてしまうので、作業前に設定ファイルを待避して後で戻しています。

 それはそうとして、とりあえず時間も手間もかけずに手順を置き換えただけなので冪等性とか考慮してないし、"shell"モジュールばかりであまり良いものではないですね。
 ちょっと時間があるときにでも、よりAnsible的なPlaybookに修正しようかと思います。


    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

プロフィール

1020@管理人

都内を彷徨っているインフラエンジニアとかいう雑用係。いつだって眠い…。

最近のつぶやき

@umkn1020 (07/03-18:57)
RT @kamo_hiroyasu: 「人口の1割は複文が処理できないのだから、そのつもりで行動しろ」と助言することが時々あるのですが、「何もしなければ、42万人死亡する」を「42万人死亡する」と誤読して「外した」と煽る人がわらわらと湧いてきたことで、説得力が増しました。
@umkn1020 (07/03-18:49)
RT @taijijiji: 外資企業が日本市場でhiring難しいとは聞いていましたがこれほどとは。。日本人の転職の心理的ハードルの高さ、英語ポジションへの苦手意識が伺える。。英語は実質的な語学スキルよりも「やっていける自信がない」「怖い」「どうせ落とされる」というメンタリテ…
@umkn1020 (07/03-13:03)
RT @yuutosi_hiyuu: 声だして笑った https://t.co/EjqAUuT3z0
@umkn1020 (07/02-16:02)
Smart LifeでIFTTT使えなくなっていたのか…
@umkn1020 (07/01-17:23)
RT @rioriost: だーかーらー、HAクラスタをすぐ組もうとしない!w オンプレの発想をそのまま持ってくるんじゃなく、クラウドに合ったやり方を学びましょうよ。 できるよ、IaaSでHAクラスタも組めるよ。 でも、スタンバイノードのコストを払い続けるの、なんかおかし…

エントリーリスト

カテゴリーリスト

タグ