Python
以前はpyenvを使ってPython実行環境をセットアップしたりしてたが、Pythonをビルドするところから始めるために必要なdev系パッケージが必要だったり、そのために管理者権限が必要だったりするので、もっと他に手軽な方法が無いか調べたところ、asdfやmiseが…
よく使うけとすぐ忘れるので。 JavaScript 基本構文 例:httpステータスチェック Python 基本構文 例:httpステータスチェック 辞書の場合 集合(追記) JavaScript includesを使う。 developer.mozilla.org 基本構文 array.include(item); 例:httpステータス…
Ansibleクックブックの「2-3-3 パスワードをハッシュ化する」にも載っているpassword_hashフィルターで発生したエラーについて簡単にまとめ。 docs.ansible.com Ansible10 (ansible-core 2.17)の場合 Ansible9 (ansible-core 2.16)の場合 どういうこと? 環…
Ansibleで「指定日時の5分後」みたいな時刻加減算をやる機会があったけど、ちょうど良い機能が見当たらなかったのでいろいろ試した話。 だいぶ面倒なことをやってるので「〇〇すればシュッとできるよ」とか情報があれば教えてください。 Pythonの場合の日時の加…
"2023-09-27T12:43:39.123456Z" のようなISO 8601拡張形式の文字列をPythonでdatetimeオブジェクトとして扱ったり、JSTのYYYY/mm/dd HH:MM:SS文字列に変換するサンプルコードについて。 最小限の環境で動くように、標準ライブラリで実装している。(pip insta…
普段はいつもvenvを使って環境構築するんだけど、OSアップグレードしてPythonバージョンが更新されると、venv作成時のPythonバージョンと差異が発生して環境がおかしくなってしまうので、Python自体をインストールするpyenvを試してみた。 github.com venvが…
本記事は「Ansible Advent Calendar 2022」の5日目のエントリとなります。 ちょっと前にやらかしたインベントリファイルの行中コメントについて、詳しく調べてみた。 playbookのYAMLに埋め込まれてる変数定義をインベントリファイルに単に移すと動く変数と動…
KubernetesドキュメントサイトではHugoというサイトジェネレータを使ったのですが、似たようなツールにMkDocsというものがあり、試してみた。 (そのうちGitHub Pagesに置きたい) www.mkdocs.org 大まかな流れとしては、Markdown形式でドキュメントを指定のパ…
コントロールノードでなくターゲットノードで(pipで追加パッケージが必要などの理由で)venvを使いたい場合の方法について。 といっても、venvの中にあるPythonインタプリタのパスをinterpreter_pythonなどで指定すればOK。 Python2/Python3の切り替えでイン…
NetBoxの機能でまだリリースはされていないけどfeatureブランチには実装済みの新しい機能を試してみたい場合、feature版のコンテナイメージは用意されてないためOS上に素で構築する必要があるが、それよりはfeature版コンテナイメージを手元でビルドした方が…
playbook内のtask定義にtagを設定しておくことで、指定tagのtaskのみ実行したり、逆に指定tagのtaskを除外してansible-playbookを実行することができます。 開発中のtaskのみピンポイントで実行したい場合や、逆に、共有のDBのデータを更新したりするtaskは…
AnsibleでWed Feb 10 09:17:08 JST 2021という表記の文字列をdatetimeオブジェクトに変換するには、to_datetimeフィルターを使う。 使用例はフィルターのページの「Handling dates and times」に使い方が載っているのでここに書かれている通り。 内部実装はP…
Pythonでは日付を表す文字列からdatetime型のオブジェクトへの変換にstrptime()を使用できる。 例えば'Thu Feb 11 17:01:34 2021'という文字列があった場合、'%a %b %d %H:%M:%S %Y'というフォーマット文字列を用意することでオブジェクトにできる。 なお、A…
Ansibleのcli_parseモジュールで、PythonのTTP(Template Text Parser)とテンプレートファイルを使ったテキスト解析を試してみた。 ttp.readthedocs.io cli_parseは、2.10時点で標準のansible.netcommon.cli_parseと、Ansible 3(3.0.0b1)に新たに標準に含まれ…
年末くらいから、メインの作業用Linuxマシン(この1台のみ)にVS CodeのRemote DevelopmentでSSHアクセスすると一定時間高負荷状態が続いていたので、なんとかならないかと原因調査した結果。 なお、クライアント側のVS CodeはどのPCから接続しても、特定の接…
いきなりサンプルコード。 import paramiko # 接続 client = paramiko.SSHClient() client.load_system_host_keys() client.connect("192.168.0.20", username='zaki', key_filename="/home/zaki/.ssh/id_rsa_nopass") stdin, stdout, stderr = client.exec_…
結論から言うと「inventoryでconnection=local指定してローカル接続してinterpreter_python指定でPython2で動かす」しかないかもしれない。 環境 Pythonバージョンとyum/dnf AnsibleのPythonバージョンとパッケージマネージャ Python2を使用する設定 interpr…
CI/CDや、Ansibleのインストールが難しいオフライン環境とかで使えるかな、と思って、試しに作ってみた。 Ansibleバージョン ベースイメージ 失敗作 Dockerfile build push Docker Hub イメージのpush お試し実行 ansible pingモジュール実行 修正版 Dockerf…
インターネットに繋がらないホストでpip installするには、パッケージファイル指定インストールかローカルPyPIサーバを用意する。 普通にやっても [zaki@centos1 ~]$ pip install pypdf2 Collecting pypdf2 Retrying (Retry(total=4, connect=None, read=Non…