2016-04-16 16 views
9

Câu hỏi đặt ra rất đơn giản: sự khác biệt giữa ansible_user (cựu ansible_ssh_user) và remote_user trong Ansible là gì, bên cạnh đó là người đầu tiên được thiết lập nếu tập tin cấu hình và một trong những thứ hai được thiết lập trong các vở kịch/vai trò? Làm thế nào để chúng liên quan đến -u/--user tùy chọn dòng lệnh?Ansible REMOTE_USER vs ansible_user

Trả lời

11

Cả hai dường như giống nhau. Hãy xem ở đây:

https://github.com/ansible/ansible/blob/devel/lib/ansible/playbook/play_context.py#L46

# the magic variable mapping dictionary below is used to translate 
# host/inventory variables to fields in the PlayContext 
# object. The dictionary values are tuples, to account for aliases 
# in variable names. 

MAGIC_VARIABLE_MAPPING = dict(
    connection  = ('ansible_connection',), 
    remote_addr  = ('ansible_ssh_host', 'ansible_host'), 
    remote_user  = ('ansible_ssh_user', 'ansible_user'), 
    port    = ('ansible_ssh_port', 'ansible_port'), 

Bên cạnh đó, ansible_user được sử dụng khi chúng ta muốn thể chỉ định sử dụng SSH mặc định trong host ansible nộp nơi như remote_user được sử dụng trong playbook ngữ cảnh.

Từ https://github.com/ansible/ansible/blob/devel/docsite/rst/intro_inventory.rst

ansible_user Giá trị mặc định tên người dùng ssh để sử dụng.

và đây là một ví dụ của việc sử dụng ansible_user trong ansible hosts file:

[targets] 

localhost    ansible_connection=local 
other1.example.com  ansible_connection=ssh  ansible_user=mpdehaan 
other2.example.com  ansible_connection=ssh  ansible_user=mdehaan 
+2

Thật buồn làm thế nào họ có những cái tên khác nhau cho cùng một lựa chọn và đó người dùng ssh để đăng nhập như không phải là ví dụ duy nhất. Vì bài học đầu tiên mà mọi người trong ngành học của chúng tôi học là không bao giờ "phá vỡ tính tương thích ngược" và không nghĩ về bản thân, những thứ như thế này sẽ chỉ chồng chất lên và khiến cộng đồng mất hàng giờ trong nỗ lực lãng phí để giải mã việc sử dụng sản phẩm. –