いろいろ備忘録

雑記です。

syslog用にELKスタックを構築するときに参考にしたリンク

Docker-composeをインストールする

https://docs.docker.com/engine/install/centos/

 

Docker-composeでELKを構築する

https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

https://github.com/deviantony/docker-elk

 

ELKのJVMなどとの互換性について

https://www.elastic.co/jp/support/matrix#matrix_jvm 

 

ELKの基本的な操作について

https://www.elastic.co/guide/jp/kibana/current/index.html

https://gato.intaa.net/archives/11808

 

syslog用の設定をする

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-syslog.html

https://community.emc.com/community/support/japanese/blog/2018/03/05

 

注意点:

・ホスト及びゲストのファイアウォール、ポートフォワーディングの設定

・docker-compose up を実行するときにdockerサービスが実行されていること

・日本語設定はエラーが出るので注意

Kasperskyを使っているとkibanaで「Request has been forbidden by antivirus」というエラーが出る

【問題】

カスペルスキー インターネットセキュリティを使っていると

kibanaで下記のようなエラーメッセージが表示されることがあります。

Unable to load index_pattern fields Request has been forbidden by antivirus

 

【解決策】 

カスペルスキーのウィンドウを開き、

設定>プロテクション>Webトラッキング防止>カテゴリと除外リスト>除外リスト>追加

そして、対象のホスト名など(ex.localhost)を追加。

Apresia AEOSにNetmikoからTelnetでコマンドを送る

コードは以下です。

 

import netmiko

net_connect = netmiko.Netmiko(host='IPアドレス', username='ユーザ名', device_type='apresia_aeos_telnet')

※パスワードは適宜追加してください

 

接続で気をつけること

プロンプトが出るまでコマンド出力を待つ仕組みなので、terminal length 0がrunning-configに含まれていることをログイン時に確認し、なければ投入する動作になっています。(---more---が出力されるとタイムアウトになる)

AEOSではshow running-configは特権モードで実行するため、特権ユーザでなければモード遷移に失敗し、接続できません。

また、接続時の引数にallow_auto_changeが入っていない場合、ter len 0 がコンフィグに含まれていなくても、ter len 0の投入を行いません。

 

特権ユーザ以外でログインしたい場合は、ApresiaAeosBaseクラスの
disable_pagingメソッドをpassするように書き換えればとりあえず動きます。

(もっと適切なやり方がある筈なので知っている方居たら教えて下さい)

 

追記:

netmikoは特権ユーザでログインするのが必須要件のようです。

requestsに信頼する証明書を設定する

基本はこのリンクの通りです。

Advanced Usage — Requests 2.22.0 documentation

 

今回、バイナリ形式のcerファイルを設定したのですが、

読み込んでくれなかったので、cer→pemに変換したら読み込んでくれました。

RSA鍵、証明書のファイルフォーマットについて - Qiita

 

この変換はopensslコマンドを使うのが一般的なようですが

今回はopensslコマンドが使えない状況だったので

ssl.DER_cert_to_PEM_certで変換しました。

ssl --- ソケットオブジェクトに対する TLS/SSL ラッパー — Python 3.7.3 ドキュメント

 

以上で読み込み完了です。良かったですね。

AWXでkintoneを定期的にフェッチしてCloudFormationを実行する

このセミナーに影響を受けています。

20171006_lightwell_AnsibleSeminer.pdf - Google ドライブ

 

簡単なPlaybookはこちら。

VPC名を必要とするCFnテンプレートと、kintoneから未作成のレコード一覧を検索して順番に作成するPlaybookです。

続きを読む

ec2の鍵ペア生成→インスタンス生成playbook

なぜかcopyモジュールだけうまく動かない

どうしたもんか

 

- name: make a keypair

 hosts: localhost

 gather_facts: False

 become: yes

 tasks:

   - name: create mykey

     ec2_key: name={{keypair_name}} region=ap-northeast-1

     register: keypair

 

   - name: create target dir.

     file: path=/home/ec2-user/auth state=directory

 

   - name: write the key to a file

     copy:

       dest: "/home/ec2-user/auth/{{keypair_name}}.pem"

       content: "{{ keypair.key.private_key }}"

     when: keypair.changed

 

   - name: dump var

     debug: var=keypair

 

   - name: start the instances

     ec2:

       region: "ap-northeast-1"

       image: "ami-08847abae18baa040"

       instance_type: "t2.micro"

       key_name: "{{keypair_name}}"

       group: [launch-wizard-1]

       instance_tags: { Name: ansiblebook, type: web, env: production }

AWXをEC2のLinux2 AMIにインストールする

sudo yum update -y
sudo yum install -y git
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum --enablerepo=epel install ansible
curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python
sudo pip install docker-py
git clone https://github.com/ansible/awx
cd awx/installer/
(ここで、ローカルのplaybookを使う場合はinventoryのproject_data_dir のコメントアウトを外す)
sudo ansible-playbook -i inventory install.yml

 

以下はPlaybookがローカルにある場合

sudo mkdir -p /var/lib/awx/projects/project_a
cd /var/lib/awx/projects/project_a
touch playbook_1.yml