# 実装の参考資料 - https://soudai.hatenablog.com/entry/2022/11/11/110825 # 類似の登壇内容の動画 - https://www.youtube.com/watch?v=PXy6I-AeI-I
![マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy](https://cdn-ak-scissors.b.st-hatena.com/image/square/87b7dd4fefa4820d3a4ae6c57defd9290715de79/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F87ac3bf86711462b9e32a9ce457316da%2Fslide_0.jpg%3F29278009)
みなさんこんにちは。@ryuzeeです。 スクラム実践者のバイブルとなるのがスクラムガイドです。 本文は、日本語版の場合で12ページと分量は少ないですが、多くの人のフィードバックを受けて何度も改訂しているだけあって必要なことが凝縮されています。 チームで定期的に読み合わせをすると学びがあって良いのではないかと思います(安定の角さん翻訳で読みやすさも抜群です)。 一方で、スクラムでは責任とイベントと作成物が密接な関係を持つため。どの順番に説明しようとしても、まだ説明していない他の要素に依存したり、説明が分散したりします。 これは構造上仕方がないことですが、初学者にとってはとっつきにくさもあるかもしれません。 例えば、スプリントレビューの内容に関する記述は、スクラムガイド日本語版では、7ページ、10ページ〜11ページ、13ページに分散しています。 10ページから11ページがスプリントレビューそ
AAPやAWXでジョブ実行に必要なExecution Environments(EE)を作るために通常はAnsible Builderを使ってコンテナイメージをビルドするが、要件を満たせばDockerfileを直接書いて自前でビルドしても動くのでは…と思ったので確認してみた。 結論としては、以下が入っていれば最低限動作した。 Ansible Core プラス必要なAnsible Collection Ansible Runner SSHクライアント sshpass (パスワード認証の場合) Ansible BuilderではRHEL系コンテナしか使えない(夏にv3対応したときにいろいろ試したがRHEL系以外はダメだった)が、お試しでDebian系…もいいかと思ったけど、せっかくなのでAnsible利用時にあまり使われず(個人の感想)、イメージサイズがより小さいAlpine Linuxでビル
3月も半ばになり、暖かい日も増えてきました。これだけ暖かくなってくると、ちょっとしたアプリで少し特殊なネットワークフレームを流したり、普段使わないネットワークプロトコルを試したくなりますよね。でも本番環境でそれをやってしまうと、変質者としてしかるべき場所に通報されてしまいます。そこで今回は他人に迷惑をかけずに隔離されたネットワークテスト環境を構築できる「mininet」を使って、お縄にかからないようにしてみましょう。 Open vSwitchとネットワーク名前空間で気軽にテスト環境を構築する Linuxカーネルには「ネットワーク名前空間(netns)」という機能があります。これはホストや他のコンテナから隔離された環境でネットワークインターフェースを作成し、操作できるようになる仕組みで、特にLinuxのコンテナ系ツールで使っている基礎技術のひとつです。 Ubuntuだと「ip netns」コ
はじめに 前回 と 前々回 のエントリでは、Ansible AWX 周辺の最近の機能として、Execution Environment や、さらにその周辺の Ansible Runner、Ansible Builder の OSS 版での動きを追いかけました。今回は、Private Automation Hub のアップストリーム版である Ansible Galaxy NG の周辺を見ていきます。 が、現時点でサポートされている構成はホスト OS への直接のインストールのみで、開発用には Docker Compose ベースの手順もあるものの、いずれにせよ総じて取り回しが少々不自由です。そんなわけで本エントリでは、現時点で気軽に Galaxy NG を試せる方法 として、次の 3 パタンでの実装手順 と、簡単な動作確認 を取り扱います。 なお、いずれも Galaxy NG のドキュメントに
from ansible.plugins.callback import CallbackBase from ansible.utils.color import stringc class CallbackModule(CallbackBase): CALLBACK_VERSION = 2.0 CALLBACK_TYPE = 'aggregate' CALLBACK_NAME = 'changed_tasks_and_hosts_summary' CALLBACK_NEEDS_WHITELIST = True def __init__(self): super(CallbackModule, self).__init__() self.changed_tasks = {} self.current_task_name = None def v2_playbook_on_task_star
もし、あなたが自分のAnsible Playbookに何か物足りなさを感じるとすれば、それは恐らくキモさが欠けているのだろう。なにせYAMLでモジュールにパラメータを渡すだけなので個性が出しづらい。 ここでは僭越ながら私が積み重ねてきた稚拙な工夫を少しばかりだが紹介したい。あなたの書いたPlaybookが同僚から「え、なにこれ・・・」と困惑される一助となれば幸いだ。 1. インベントリファイルを作成しない あなたがこれまでの人生で食べてきたパンの枚数を覚えていないのと同様に、私もこれまでの人生で構築してきたサーバの台数を覚えていない。そんな私にとって構築したサーバの一覧を書き連ねなくてはいけないインベントリファイルは非常に煩わしい存在だ。 以下の例はPlaybook実行時に特定の条件を満たすAWS EC2インスタンスを選んでインベントリに追加して処理を実行する。サーバを毎日大量に作成や削除
Ansibleは、多数のサーバーや複数のクラウドインフラを統一的に制御できるオープンソースの構成管理ツールである。一般に人気のあるPuppetやChefなどを置き換えられる構成管理ツールとして、最近は採用する企業が増えている。 Ansibleでは、PlaybookというYAML形式のテキストファイルに定型業務をタスクとして記述し、それをAnsibleで実行させることで多様な処理を実現する。タスクはモジュールと呼ばれる処理プログラムと紐付いており、サーバーの構成管理だけではなく、ネットワークやロードバランサ、クラウドインフラなどの制御も可能だ。 Ansibleでの一連の処理はPlaybookという単位にまとめられている。Playbookは一般的なYAML形式のテキストファイルで記述されるので、プログラミング言語を用いる他の構成管理ツールと比べ、可読性が高く、学習が容易というメリットがある。
本エントリは、Ansible Advent Calendar 2023の6日目の記事になります。 AWXのセットアップがDocker ComposeからKubernetes環境になって手を出しづらくなったとか、インストール方法がわかりづらいなどの声を観測範囲で聞くことがあったので、ローカル環境で簡単に始められる手順についてまとめた。 大まかな手順の流れは以下の通り。 Kubernetesの準備 AWX Operatorのデプロイ AWXのデプロイ (追記) ちなみに2と3は手順としては1回にまとめられる(後述) 本編は解説用に分けてデプロイしている。 Kubernetesの準備 K3sを使ったKubernetesのセットアップ VMに直接インストールする場合 Docker上にインストールする場合 kind / Minikubeの場合 AWXのデプロイ AWX Operatorのデプロイ A
Ansible AWX(Tower)の便利ツール「awxkit」をオンライン、オフラインのそれぞれの環境でインストールする方法を解説します。 環境 インストールを行う環境構成になります。 OS:AlmaLinux8.4(Windows10のVirtualBox上に構築したもの)ミドルAnsible AWX 15.0.1Python 3.6.8 オンライン環境でのインストール方法 オンライン環境でインストールする方法を説明します。 オンライン環境でのインストール方法は簡単で、pip3コマンドを実行すれば自動的にインストールされます。 [root@localhost ~]# pip3 install awxkit WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 i
概要 git hookでcommit時にtypoを確認し、typoが確認された場合commitを中止する機能を実装する。 動作環境 Windows 10 Home git 2.32.0 typos-cli 1.5.0 git hookとは? git hookはgitのバージョン管理システム内でgit特有のアクションが発生した際に、予め作成していたスクリプトを実行できる機能です。 例えば、commitやpush時に特定の条件を満たしていない場合はcommitやpushを中止するなどが挙げられます。 これはデフォルトで、git initをした際に作成される.gitに対して.git/hooksの中に作成されます。 typoを検知するためtyposの準備 typoを検知するためにRust製のtyposを使用します。 Rustの実行環境がある場合はRustからインストールできますが、今回はRustの
Ansible のどのバージョンで、どのバージョンの Python をサポートしているか、ぱっと出てきますでしょうか。それはマネージドノード側の話でしょうか、コントロールノード側の話でしょうか。 私は、ansible-core 2.11 をよく触ってる時期があって、Python 3.6 で使ってると「次(ansible-core 2.12)からコントロールノード上で Python 3.8 以上が必要になるよ」という警告を目にすることがあったので、この点はやけに覚えています。ですが、それ以外は覚えていません。Ansible のバージョンを横断して調べるとなると少し苦労するかもしれません。 ありがたいことに最近、公式ドキュメントに一通りまとまった表が作成されました(現状 develブランチのみ)。 とてもわかり易いです。 Pythonバージョン対応表 docs.ansible.com [202
この記事は Ansible Advent Calendar 2022 23日目の記事です。 はじめに 2022年もAnsible関連で様々なリリースがありました。ansible-core や AAP も予定通りバージョンアップされてきました。 ansible-rulebook(developer preview)もインパクトがありました。ネットワーク的には paramiko から ansible-pylibssh へ以降するの流れがでてきました。 個人的にポイントだと思ったものをまとめます。 2021年版はこちら 2022年3月 ansible-lint 6.0.0 リリース ansible 2.9 のサポート終了 Python 3.6、3.7 のサポート終了 設定ファイル .config/ansible-lint.yml を読み込むように 検出だけなく一部修正も changelog Re
- vars: ansistrano_deploy_from: "{{ playbook_dir }}" # Where my local project is (relative or absolute path) ansistrano_deploy_to: "/var/www/my-app" # Base path to deploy to. ansistrano_version_dir: "releases" # Releases folder name ansistrano_current_dir: "current" # Softlink name. You should rarely changed it. ansistrano_current_via: "symlink" # Deployment strategy who code should be deployed to
Ansistranoとは CapistranoライクにデプロイできるAnsibleロール。 yamlファイルにデプロイフローを書くことで簡単にデプロイができます。 AnsistranoはAnsible Galaxyから入手可能です。 ※Ansible Galaxyとは Ansible GalaxyとはAnsibleのロールを共有できるホスティングサービスのこと。 色々なデプロイ方法に対応 アプリケーションをデプロイする方法を色々提供しています。 scp rsync git svn hg HTTPダウンロード S3 get バージョン管理を行える アプリケーションのバージョンを指定した数まで保持することができます。これにより、過去のバージョンへの切り戻し(ロールバック)が簡単に行えます。 また、アプリケーションのバージョン数が指定した数を超えると、最古のバージョンのものが削除されていきます。
渡辺です。 Ansibleのwit_itemsのループは単一タスクしか繰り返すことができません。 今日は、複数のタスクをループさせる場合に役立つincludeとloop_varを紹介します。 with_itemsは単一タスクしかループできない 例えば、複数のシステムユーザを作成する時、ユーザ毎にタスクを作成したならば、ユーザ数のタスクが必要です。 可読性が悪いだけでなく、コピペの弊害は修正作業に大きな影響を与えます。 - debug: msg: "user=user1" - debug: msg: "user=user2" このような場合、Ansibleでは with_itemsを使うことでタスクを複数回実行できます。 - debug: msg: "user={{ item.name }}" with_items: - user1 - user2 ところが、with_itemsは単一タスク
インフラエンジニアの長田です。 今回は、Ansibleのテスト支援ツールであるMoleculeの実践例について記事にしたいと思います。MoleculeはDockerやPodmanでコンテナを起動し、その中でAnsibleロールのテストを簡潔に行うことができる便利なツールですが、Ansibleで実行したいロールの中にはgrub2のようなブートローダのコンフィグやカーネルパラメータの変更、ネットワーク機器の操作など、コンテナ上でのテストが困難であるケースも存在します。そこで、Moleculeのdelegatedドライバを用いてOpenStack上にインスタンスを構築し、これらのテストを実現したいと思います。 以下、各ツールのバージョンについて、Ansibleは 2.9.9 を、Moleculeは 3.0.4 を前提としています。 OpenStackインスタンスの作成・削除 Moleculeのd
sumirenです。 技術顧問やSREをしています。 背景 2024年現在、OpenTelemetryが盛り上がっており、ベンダへの依存度を下げてテレメトリを収集・送信することがトレンドになってきているように思います。多くの企業様で、OpenTelemetry対応のオブザーバビリティバックエンドを選定されているのではないでしょうか。 一方で、E2E自動テストツールなどもそうですが、デベロッパーツールは画面やUXの情報がパブリックな情報として出回ることが少ないように思います。オブザーバビリティバックエンドの場合、シグナル3種に関してOpenTelemetryベースでもフルに機能が活用できるのかという疑問もあります。 そうしたこともあり、オブザーバビリティバックエンドは実際にトライアルしてみないと選定しづらいです。監視など狭義のオブザーバビリティ外の機能や、OpenTelemetryの範囲外の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く