てくなべ (tekunabe)

ansible / network automation / 学習メモ

python

「Pythonとネットワークの自動化基礎検定」を受験してきました

はじめに 周囲のエンジニアは息を吸うように色々受験(そして合格)されているようなのですが、私はしばらく何もやっていませんでした。確か直近は、4年前の DevNet Associates(失効)。 久々に、なにかやってみとうと思っていたところ「Pythonによるネット…

pip install コマンドの --dry-run コマンドで、インストール予定のパッケージを確認する

、# はじめに たまたまですが、pip install コマンドに --dry-run オプションが有ることを知りました。 連想できる通り、指定したパッケージを実際にはインストールせずに、依存パッケージ含めて何がインストールされる予定かを教えてくれるオプションです。…

[ansible] ansible-core 2.14 でコントロールノードで Python 3.9 以上が必要になる模様

こんな変更がありました。 github.com コントロールノードで Python 3.9 以上を必要とするようになるようです。これまでは 3.8 以上でした。 devel ブランチへのマージのみです。おそらくこのまま行けば、2022年11月リリース予定の ansible-core 2.14が、こ…

Red Hat Enterprise Linux 9.0 の Python 環境を少し探ってみた

はじめに Red Hat Enterprise Linux 9.0 を、GUIでない方のサーバーとしてインストールしました。 [2022/05/19追記] Red Hat Enterprise Linux 9.0 正式版がリリースされたため、ベータだった箇所を正式版で確認した内容に更新しました。 Python 周りがどう…

[Python] システムワイドのパッケージを利用できるように venv を作成するオプション --system-site-packages

はじめに venv はデフォルトでは、システムワイド(グローバル、OSレベル)な Python 環境を参照しません。 venv 作成時に --system-site-packages オプションを参照するようになります。 これにより、venv にないパッケージでもシステムワイドに入っていれ…

CentOS 8.2 で dnf install python38 すると Python 3.8 がインストールできる

はじめに Red Hat Enterprise Linux 8.2 リリースノートに、yum install python38 で Python 3.8 がするっとインストールできる旨の記述をみかけました。 access.redhat.com 新しいモジュール python38 が導入されました。 先日、CentOS 8.2 もリリースされ…

[nornir] NETCONF で Cisco IOS XE 機器のコンフィグや状態の情報を取得する

はじめに Python 製自動化フレームワーク nornir は、接続方法として netmikoや、NAPALM の他に、NETCONF にも対応しています。 この記事では NETCONF 経由で、Cisco IOS XE 機器の runnin-config、インターフェース、ルーティングテーブを取得するサンプル…

[Python] 2つファイルの内容をリストにして差分を表示する

はじめに こちらの記事を拝見し、紹介されている Python のコードの別解を考えてみます。 fugulog.hatenablog.com 動作確認環境 Python 3.6.7, 3.7.5 やっていること 背景はここでは割愛しますが、docker イメージ名がリスト化された2つのファイル checklist…

ネットワーク自動化Pythonライブラリ netmiko、NAPALM が Python 2系サポートの最終バージョンをリリース

はじめに ネットワーク自動化Pythonライブラリである、netmiko、NAPALMが、Python 2系 サポートの最終バージョンをリリースしました。それぞれ、netmiko 2.4.2、NAPALM 2.5.0 です。 次回のリリースからは Python 3.6 以降のみのサポートととしています。 バ…

[Ansible] CentOS 8 に Ansible をインストールする(Python 3 + venv + pip)

■ はじめに CentOS 8 では、システムで利用する Python が Python 3 になったり、デフォルトでは python コマンドが利用できなかったりと、CentOS 7 とは Python 事情が異なります。そのため、Ansible を pip でインストールする場合も、CentOS 7 とは少し手…

[Ansible] 利用する Python をタスクごとに切り替える方法(ansible_python_interpreter をタスク変数で指定)

■ はじめに Ansible では、ターゲットノード(SSH接続先)で利用する Python を ansible_python_interpreter という変数で明示的に指定できます。 この変数は、インベントリ変数や host_vars の他にも、タスク変数としても指定できます。そのため、タスクご…

CentOS 7.7 で リポジトリ追加なしで Python 3 を yum でインストールする

はじめに CentOS 7.7 (1908) がリリースされました。 リリースノートの「5. Major Changes」には以下のように記載があります。 Python 3 is now available. Installing the python3 package gives you the Python 3.6 interpreter. IUS Community Project と…

ネットワークのテスト自動化に利用できそうなツールまとめ

はじめに サーバーのテスト自動化といえば、 Serverspec や Testinfra 、infrataster などが有名ですが、ネットワークのテスト自動化については、みんなが口をそろえて名前を出すものがないような印象です。一方で、リスクの観点から設定変更の自動化より先…

[Python] venv で作成した仮想環境を --clear オプションで初期状態にクリアする

python -m venv --clear 対象の仮想環境ディレクトリ

[VS Code] デフォルトで読み込む venv/virtualenv 環境のパス

■ はじめに VisualStudio Code (以下、VS Code)は Python の仮想環境 venv/vitualenv にも対応しています。特に設定で指定しなくても特定のディレクトリ配下の仮想環境を読み込みます。この記事ではそのパスの確認をします。 環境 macOS High Sierra 10.13.6…

[Python] pyenv と pipenv による python 仮想環境を構築する(CentOS 7 ほぼ初期状態から)

■ はじめに Python の仮想環境は、いままで virtualenv/venv のみ利用していたのですが 「2018年のPythonプロジェクトのはじめかた」という記事を見て、pyenv や pipenv 試してみようと思いました。 この記事では、準備、仮想環境の作成と復元を試したときの…

ネットワーク自動化 Python ライブラリ NAPALM 2.3.3 リリース、公式 Docker イメージ追加など

■ NAPALM 2.3.3 リリース github.com 2018/10/15 にネットワーク自動化 Python ライブラリである NAPALM 2.3.3がリリースされました。詳細は 2.3.3 CHNGELOG に記載があります。 この記事では、個人的に気になった Docker イメージの追加と、モックの利用法…

ネットワーク自動化の勉強会を開催します(Ansible/SaltStack/Netmiko/NAPALM)

7月と8月にネットワーク自動化の勉強会を開催しますのでご案内いたします。(2回とも同一内容です。) 実施概要 近年、APIに対応していないネットワーク機器でも自動化できる方法が増えてきました。 一方で、「興味はあるけど、試してみる時間も環境もない!…

Python 3 エンジニア認定基礎試験に合格しました

2017/06/09 に「Python 3 エンジニア認定基礎試験」が開始されました。 www.pythonic-exam.com 6/10に受験して合格しましたので、感想や自分の勉強方法を書きたいと思います。 試験の感想 特にクセもなく、素直な問題が多く、基礎試験という名の通りとだ感じ…

Netmikoで 「TELNET」経由のネットワーク機器自動化を試す

■ はじめに Netmiko とは、Cisco IOS や Juniper Junos などのネットワーク機器にSSHでログインして操作するのを助けてくれるPythonのライブラリです。 例えば、ログインやコンフィギュレーションモードへの移行、ログアウトなどの操作は関数として抽象化さ…