2016-04-14 6 views
3

私はSaltStackを学ぶための小さなstudy awsインフラストラクチャを作成しました。すでに実行中の3つのec2インスタンスがあります。 (マスターと2人のミニオン)。 1人のミニオンはiam-role-lessで、1人のミニオンはec2とs3のアクションにアクセスできるような役割を持っています。 (役割の設定は、テストの目的のみです)salt-master/salt-minionのためのawsサービスへのアクセスの設定

salt-master(またはsalt-minion?)を設定する方法は、awsサービスにアクセスできるようにすることです。今のところ、私はSSHで2番目のミニオンにアクセスでき、boto3を使ってec2とss3にアクセスできます。しかし、salt-master => salt-minionからboto_ec2実行モジュールを使用すると、アクセスエラーが発生します。私は、/etc/salt/cloud.providers/etc/salt/cloud.profilesの設定が必要であることを知っています。私が見たほとんどの例は、塩分が塩で作られることを期待していたので、私は既存の例でそれをどうやって行うのかちょっと混乱しています。

「マスターとミニオンがboto_ec2モジュール(または他のもの)をソルトマスターとオーケストレーションのミニオンを使用できるように設定する正しい方法と正しい方法は何ですか? )どの設定ファイルを変更/追加する必要がありますか、どのコマンドを実行する必要がありますか?インスタンスは既に起動しています。

私は、このリンクを発見した:https://salt-cloud.readthedocs.org/en/latest/topics/aws.htmlしかしそこにそれが言うところ、以下のとおりです。

"The following settings are always required for EC2:" 

# Set the EC2 login data 
my-ec2-config: 
    id: HJGRYCILJLKJYG 
    key: 'kdjgfsgm;woormgl/aserigjksjdhasdfgn' 
    keyname: test 
    securitygroup: quick-start 
    private_key: /root/test.pem 
    provider: ec2 

は、しかし、この設定があるべき場所、それは言われていません。マスター/ミニオンで?どのファイルですか? コマンドを実行したとき:

# salt '*142*' boto_ec2.exists Master 
: 'boto_ec2' __virtual__ returned False 
ERROR: Minions returned with non-zero exit code 

これは機能しません。

+0

トピックの可能性があります。 – mootmoot

+0

どういう意味ですか? – Divisadero

+0

あなたが直面している現実の問題とこれまでに何をしたのかを記述してください。問題は、オープンエンドのように聞こえる。 – mootmoot

答えて

2

雲のサポートが塩ストック内にしっかりと組み込まれていないことに注意してください。

既存のインスタンスで行う方法。 EC2インスタンスが3つあるとします。 S1(ソルトマスター)、M1 & M2は、塩ミニオンを展開したい場所です。

方法1:それが動作するかどうか指交差

# filename : /etc/cloud.providers.d/sality-driver.conf 
aws-saltify: 
    minion: 
    master: <ip_address_of_your_salt_master> 
    driver: saltify  

# filename : /etc/cloud.profiles.d/salt-minion.conf 
minion1: 
    ssh_host: <M1-ip> 
    ssh_username: <your_aws_instance_user_name> 
    key_filename: "<full private_key_file path use to connect to minion>" 
    provider: aws-saltify 

minion2: 
    ssh_host: <M2-ip> 
    ssh_username: <your_aws_instance_user_name> 
    key_filename: "<full private_key_file path use to connect to minion2>" 
    provider: aws-saltify 

# run the command to saltify those host 

sudo salt-cloud saltify -p minion1 <minion1-host-name> 
sudo salt-cloud saltify -p minion2 <minion2-host-name> 

saltifyメソッドを使用し、あなたの塩のマスターの内側に塩クラウドをインストールします。

**方法2:**

IMPORTANT NOTE塩のsshを使用します。salt.state.boto_ec2は(2016年3月)2015年8月8日の下で完全なものではありません。だからあなたは本当にboto_ec2を使ってそれらのマシンにsalt-minionをデプロイすることはできません。おそらく、boto_lcに新しい機能を試すか待つかもしれません。

#Create a folder just for salt-ssh deployment 
mkdir ~/saltme 

# master file for salt-ssh ~/saltme/master 
file_roots: 
    base: 
    # Replace the "~" with you $HOME full path. 
    - ~/saltme/master 

#create a roster file ~/saltme/minion-roster 
my-bare-M1: 
    host: <to-be-minion-1-host-ip-address> 
    user: <ami-default > 
    sudo: True 

my-bare-M2: 
    host: <to-be-minion-2-host-ip-address> 
    user: <ami-default > 
    sudo: True 

# create your top file ~/saltme/top.sls 
base: 
    '*': 
    - saltify-minion 

# create the state file ~/saltme/saltify-minion.sls 
salt-minion: 
    pkg.installed 


# Now , inside the ~/saltme , run this against each to-be-minion-ec2 
salt-ssh --roster-file roster --config-dir $HOME/saltme -i --priv saltminion-1.pem 'my-bare-M1' state.highsatte 

salt-ssh --roster-file roster --config-dir $HOME/saltme -i --priv saltminion-1.pem 'my-bare-M2' state.highsatte 
#Now accept the salt-minion key 
sudo salt-key -A 
+0

メソッド3があります。salt-minionをsalt-masterに追加してからboto_lc.presentを使用しますが、どのように状態が既存のEC2インスタンスを識別しているかわかりません。私はsalt-cloudがインスタンスを識別するためにタグ名を使用していることを知っていますが、boto_lcについての手掛かりはありません。 – mootmoot

関連する問題